v0.9.4 is live! — Read the latest technical documentation and migration guides.

El paquete docmd-assistant exporta la clase principal DocmdAssistantEngine, funciones auxiliares y definiciones de tipos TypeScript.

import {
  DocmdAssistantEngine,
  createStandardTools,
  DEFAULT_SYSTEM_PROMPT,
  ENGINE_VERSION
} from 'docmd-assistant';

Clase: DocmdAssistantEngine

Constructor

new DocmdAssistantEngine(options?: AssistantOptions)

Inicializa una nueva instancia del motor con la configuración especificada.

const assistant = new DocmdAssistantEngine({
  provider: 'openai',
  model: 'gpt-4o-mini',
  apiKey: process.env.OPENAI_API_KEY,
  systemPrompt: 'Usted es un guía asistente de IA para la documentación.'
});

Métodos Principales de Mensajería

sendMessage(content, overrideOptions?)

Añade un mensaje de usuario al historial, procesa la interacción conversacional y devuelve una promesa ChatResponse.

public async sendMessage(
  content: string,
  overrideOptions?: Partial<AssistantOptions>
): Promise<ChatResponse>

Parámetros:

Parámetro Tipo Descripción
content string Cadena de texto con el mensaje del usuario
overrideOptions Partial<AssistantOptions> Sobrescritura opcional de configuración para esta interacción

Valor de Retorno: Promise<ChatResponse>

interface ChatResponse {
  message: string;
  role: 'assistant';
  unconfigured?: boolean;
  unconfiguredData?: any;
  history: ChatMessage[];
  usage?: {
    promptTokens?: number;
    completionTokens?: number;
    totalTokens?: number;
  };
}

Métodos de Gestión de Herramientas

registerTool(tool)

Registra una herramienta en la instancia del motor.

public registerTool(tool: AssistantTool): this

unregisterTool(name)

Desregistra una herramienta por su nombre. Devuelve true si la herramienta fue encontrada y eliminada.

public unregisterTool(name: string): boolean

getTools()

Devuelve un arreglo con todas las herramientas registradas.

public getTools(): AssistantTool[]

getTool(name)

Devuelve una definición de herramienta específica por su nombre, o undefined si no está registrada.

public getTool(name: string): AssistantTool | undefined

executeTool(name, args)

Ejecuta manualmente una herramienta registrada especificando su nombre y argumentos.

public async executeTool(name: string, args: any): Promise<any>

Métodos de Configuración y Prompt del Sistema

updateOptions(newOptions)

Actualiza las opciones del motor dinámicamente.

public updateOptions(newOptions: Partial<AssistantOptions>): this

setSystemPrompt(prompt)

Reemplaza el prompt del sistema activo.

public setSystemPrompt(prompt: string): this

appendSystemPrompt(additionalPrompt)

Añade texto adicional al prompt del sistema existente.

public appendSystemPrompt(additionalPrompt: string): this

getSystemPrompt()

Devuelve la cadena del prompt del sistema activo actual.

public getSystemPrompt(): string

Métodos de Gestión del Historial

getHistory()

Devuelve una copia del arreglo del historial de conversación actual.

public getHistory(): ChatMessage[]

setHistory(history)

Reemplaza el historial de conversación actual.

public setHistory(history: ChatMessage[]): this

clearHistory()

Borra todos los mensajes del historial y emite un evento 'clear'.

public clearHistory(): this

addMessage(message)

Añade un objeto de mensaje directamente al historial.

public addMessage(message: ChatMessage): this

Métodos de Suscripción a Eventos

on(event, listener)

Asigna un oyente de eventos para el motor ('message', 'tool_call', 'tool_result', 'error', 'clear').

public on(event: AssistantEventType, listener: AssistantEventListener): this

off(event, listener)

Elimina un oyente de eventos registrado.

public off(event: AssistantEventType, listener: AssistantEventListener): this

Definiciones de Tipos Exportadas

Todas las interfaces TypeScript se exportan directamente desde docmd-assistant:

import type {
  AssistantOptions,
  AssistantTool,
  AssistantToolParameters,
  AssistantToolParameterProperty,
  ChatMessage,
  ChatResponse,
  SearchResultItem,
  AssistantEventType,
  AssistantEvent,
  AssistantEventListener
} from 'docmd-assistant';