stream) ·
estrategias por canal: borradores, ediciones, trozos ·
“escribiendo…” mientras genera ·
provider de Telegram ·
coste y latencia ·
probar streams con MockProvider
Requisitos
- Node.js 22.12 o superior.
- Un token de bot de Telegram de @BotFather en
TELEGRAM_TOKEN. - Una API key de Anthropic en
ANTHROPIC_API_KEY(u otro proveedor de modelos, ver más abajo).
El bot
Cómo funciona
-
Una opción.
streamhace que el autoresponder envíe la respuesta conctx.stream()mientras el modelo la genera. El mismo código elige la mejor estrategia para cada canal: -
cursorse muestra al final del texto mientras se escribe y nunca en el mensaje final.canStopañade al borrador el botón de parar de Telegram: pulsarlo aborta la petición al modelo, así dejas de pagarla. -
Escribiendo.
humanizeTyping(activo por defecto) muestra “escribiendo…” hasta que llegan las primeras palabras. -
Las herramientas desactivan el streaming. Un turno que puede llamar a
herramientas necesita la respuesta completa
antes, así que con
toolsconfiguradas la respuesta va en un solo mensaje.
Consejos de coste y latencia
Responde lo obvio sin el modelo (comandos, triggers de
bot.when(), flujos) y
mira Coste y latencia para el resto.
Pruébalo
packages/ai/tests/docs-examples-ai.test.ts), que además ejecuta el bot sobre
un provider simulado parecido a Telegram y comprueba que allí la respuesta
llega como un borrador que crece.
Otros proveedores de modelos
Cambiar a OpenAI, Gemini o un modelo local de Ollama
Cambiar a OpenAI, Gemini o un modelo local de Ollama
Todos los proveedores hacen streaming. Deja las demás opciones como están.OpenAI (Gemini (Ollama en tu máquina (sin paquete ni key; antes ejecuta
npm install openai, key en OPENAI_API_KEY):npm install @google/genai, key en GEMINI_API_KEY):ollama pull llama3.1):
el primer token llega sin pasar por la red, y no hay límite de salida salvo
que pongas maxTokens.Ejecutarlo en Telegram o WhatsApp
Pon el token y la key en un archivo.env junto a bot.js
(TELEGRAM_TOKEN=... y ANTHROPIC_API_KEY=...), ejecuta
node --env-file=.env bot.js y escribe a tu bot en Telegram. Para WhatsApp,
instala @botmesh/baileys y arranca la fábrica con
new BaileysProvider({ session: 'pantry-bot' }): el mismo código envía la
respuesta en trozos con “escribiendo…”.
Siguientes pasos
- Respuestas en streaming:
ctx.stream()en tus propios handlers y todas las opciones - Asistente de preguntas frecuentes con IA: la persona y los límites de un asistente de negocio
- Índice de ejemplos