appendSources ·
warmup() del retriever al arrancar ·
autoresponder de IA ·
coste y latencia
Requisitos
- Node.js 22.12 o superior.
- Una API key de Anthropic en la variable de entorno
ANTHROPIC_API_KEY(u otro proveedor de modelos, ver más abajo).
Tu FAQ
Guárdalo comofaq.md junto a bot.js. Cada sección ## es un pasaje que
el modelo puede citar.
El bot
Cómo funciona
- Recuperación en cada turno. Antes de cada respuesta el plugin llama a
retrieve(pregunta)y añade los pasajes al prompt de sistema como un bloque numerado, con instrucciones para responder a partir de ellos, citarlos como[n]y tratarlos como datos, no como instrucciones. - Citas. Con
appendSources: truela respuesta termina con las fuentes que citó el modelo. Si nada coincide, no se envía ningún pasaje y la persona hace que el modelo diga que no lo sabe en vez de adivinar. - Nunca rompe una respuesta. Si el retriever lanza un error o tarda más de
timeoutMs(10 s por defecto), el turno sigue sin contexto. - Arranque.
warmup()lee el archivo al arrancar el bot, así la primera pregunta no lo espera. - Bases de conocimiento más grandes. Cambia
markdownRetrieverpor una llamada a tu base de datos vectorial o a tu API de búsqueda: sirve cualquier objeto conretrieve(query)que resuelva pasajes{ text, citation?, score? }.
Retriever listo para usar:
@botmesh/ragEl paquete @botmesh/rag tiene loaders
(Markdown, texto, JSON, PDF), troceado, embeddings (local, OpenAI u Ollama) y un
índice persistente: rag: { retriever: createRag({ documents: ['./faq.md'] }), appendSources: true }.
Instálalo con npm install @botmesh/rag; ver
@botmesh/rag.Pruébalo
faq.md al
lado. El modelo sigue un guion en el test que ejecuta esta página
(packages/ai/tests/docs-examples-ai.test.ts), que además comprueba que al
modelo le llegó la sección correcta del FAQ; la recuperación y la línea de
fuentes son las reales.
Otros proveedores de modelos
Cambiar a OpenAI, Gemini o un modelo local de Ollama
Cambiar a OpenAI, Gemini o un modelo local de Ollama
Solo cambian las opciones del proveedor; Gemini (Ollama en tu máquina (sin paquete ni key; antes ejecuta
rag queda igual.OpenAI (npm install openai, key en OPENAI_API_KEY):npm install @google/genai, key en GEMINI_API_KEY):ollama pull llama3.1):Ejecutarlo en WhatsApp o Telegram
node bot.js muestra un código QR: escanéalo con WhatsApp (Dispositivos
vinculados). Para Telegram, instala @botmesh/telegram y arranca la fábrica
con new TelegramProvider({ token: process.env.TELEGRAM_TOKEN ?? '' }).
Siguientes pasos
- Guía de memoria y RAG: todas las opciones de
rag, y la memoria por usuario - Enrutador con IA: los pagos a un flujo determinista y lo demás a la IA
- Índice de ejemplos