Bot de Telegram con RAG sin bases de datos vectoriales: ejemplo en Cloudflare Workers
¿Cómo crear un bot de Telegram con funciones de búsqueda en una base de conocimientos sin bases de datos vectoriales e infraestructura costosa? Un…
Procesado por IA desde Habr AI; editado por Hamidun News
Un bot de Telegram con búsqueda en una base de conocimientos es una tarea popular. Generalmente para esto se utilizan bases de datos vectoriales como Pinecone o Weaviate, embeddings e infraestructura en la nube de pago. Un desarrollador de Habr mostró que esto no es necesario: existe una forma más barata y simple.
Por qué las bases de datos vectoriales no son la única opción
RAG (Retrieval-Augmented Generation) no requiere necesariamente embeddings vectoriales. Para una base de conocimientos de tamaño medio, es suficiente una búsqueda de texto completo por palabras clave. El algoritmo de Jaccard calcula la similitud de dos textos a través de la intersección de palabras: simple, rápido, no requiere aprendizaje automático.
Así es como funciona en la práctica: si la base contiene preguntas frecuentes sobre soporte técnico, y el usuario escribe "cómo reiniciar el dispositivo", el bot divide la consulta en palabras, busca coincidencias en los documentos, toma aquellos con la mayor intersección y los pasa al LLM. Los resultados pueden ser incluso mejores que con APIs caras para embeddings, si el contenido está bien estructurado. Más rápido, porque no es necesario esperar a la generación de embeddings.
La principal ventaja: cero dependencias de servicios externos, excepto una API LLM para generar respuestas. El historial de diálogos y la base de conocimientos se almacenan directamente en Cloudflare KV, un almacenamiento integrado incluido en el plan gratuito. Sin colas para desplegar infraestructura, sin facturas mensuales por almacenamiento de vectores.
Cómo funciona la arquitectura
El flujo de trabajo funciona así: el usuario escribe una pregunta en Telegram → el bot busca documentos relevantes de la base de conocimientos usando el algoritmo de Jaccard → toma los 3 mejores resultados y los pasa junto con la pregunta a la API de Groq (un LLM gratuito) → Groq genera una respuesta basada en los documentos encontrados → el bot envía el resultado al chat. El historial del diálogo se guarda en KV para el contexto entre mensajes. Esto permite que el bot recuerde preguntas anteriores y refine las respuestas según el contexto de la conversación.
Es notable que Groq fue elegido por una razón. Es un servicio LLM rápido con límites generosos en el plan gratuito, ideal para chatbots y sistemas RAG donde se necesita generar respuestas al instante. La base de conocimientos se almacena como un conjunto de documentos en KV: clave es el ID del documento, valor es el texto. Al consultar, el bot carga todos los documentos, aplica Jaccard a cada uno y los ordena por puntuación de similitud. Esta solución se escala a miles de documentos sin problemas.
Qué stack se necesita
Para la implementación se necesita un mínimo de componentes:
- TypeScript — lenguaje en el que se escribe todo el código, con soporte para tipos
- Telegraf — biblioteca ligera y popular para trabajar con la API de Telegram
- Cloudflare Workers — plataforma serverless para despliegue (plan gratuito con límites generosos)
- Cloudflare KV — almacenamiento integrado para la base de conocimientos e historial de diálogos
- Groq API — servicio LLM gratuito para generar respuestas basadas en documentos encontrados
El despliegue ocurre con un solo comando mediante Wrangler, la utilidad CLI para Cloudflare Workers. Sin configuración de servidores, sin necesidad de alojamiento propio, sin contenedores Docker. Si el bot se mantiene dentro del plan gratuito de Workers (un millón de solicitudes al mes), el costo será exactamente cero. Para comparar: una configuración típica con una base de datos vectorial requiere al menos $20-50 al mes solo por almacenamiento.
Qué significa esto para los desarrolladores
Esto abre la puerta a sistemas RAG simples que antes parecían demasiado caros o complejos de implementar. Para equipos pequeños, startups y entusiastas, es una forma de lanzar rápidamente un bot de IA con búsqueda de conocimientos prácticamente de forma gratuita. Un ejemplo clásico: un bot interno de oficina que responde a preguntas frecuentes, políticas corporativas, guías técnicas y documentación. Antes, tal proyecto requería presupuesto para infraestructura, mantenimiento de un sistema complejo. Ahora todo esto puede vivir en un solo bucket de KV e iniciarse en una hora. Esto es especialmente útil para equipos que quieren agregar rápidamente una función de IA sin grandes inversiones.
¿Quieres dejar de leer sobre IA y empezar a usarla?
AI News es un feed curado de noticias de IA. Hamidun Academy te enseña a usar la IA en tu trabajo.