Un bot Telegram avec RAG sans bases de données vectorielles : exemple sur Cloudflare Workers
Comment créer un bot Telegram avec des fonctions de recherche dans une base de connaissances sans bases de données vectorielles ni infrastructure coûteuse ?…
Traité par IA depuis Habr AI ; édité par Hamidun News
Un bot Telegram avec recherche dans une base de connaissances est une tâche populaire. Habituellement, on utilise des bases de données vectorielles comme Pinecone ou Weaviate, des embeddings et une infrastructure cloud payante. Un développeur de Habr a montré que ce n'est pas nécessaire : il existe une solution moins chère et plus simple.
Pourquoi les bases de données vectorielles ne sont pas la seule solution
La RAG (génération augmentée par la récupération) ne nécessite pas obligatoirement des embeddings vectoriels. Pour une base de connaissances de taille moyenne, une simple recherche full-text par mots-clés suffit. L'algorithme Jaccard calcule la similarité entre deux textes par l'intersection des mots — c'est simple, rapide et ne nécessite pas d'apprentissage automatique.
Voici comment cela fonctionne en pratique : si la base contient une FAQ sur le support technique et qu'un utilisateur écrit « comment redémarrer l'appareil », le bot divise la requête en mots, recherche les correspondances dans les documents, prend ceux avec la plus grande intersection et les transmet au LLM. Les résultats peuvent même être meilleurs qu'avec des API coûteux pour les embeddings, si le contenu est bien structuré. C'est plus rapide parce qu'il n'est pas nécessaire d'attendre la génération des embeddings.
Le principal avantage : zéro dépendance aux services externes, sauf une seule API LLM pour la génération de réponses. L'historique des conversations et la base de connaissances elle-même sont stockés directement dans Cloudflare KV — un stockage intégré inclus dans le plan gratuit. Pas de file d'attente pour le déploiement de l'infrastructure, pas de factures mensuelles pour le stockage vectoriel.
Comment fonctionne l'architecture
Le flux fonctionne ainsi : l'utilisateur pose une question dans Telegram → le bot recherche les documents pertinents de la base de connaissances via l'algorithme Jaccard → il prend les 3 meilleurs résultats et les transmet avec la question à l'API Groq (un LLM gratuit) → Groq génère une réponse en fonction des documents trouvés → le bot envoie le résultat au chat. L'historique de la conversation est sauvegardé dans KV pour le contexte entre les messages. Cela permet au bot de se souvenir des questions précédentes et d'affiner les réponses en fonction du contexte de la conversation.
Remarquablement : Groq a été choisi pour une bonne raison. C'est un service LLM rapide avec des limites généreuses du plan gratuit, idéal pour les chatbots et les systèmes RAG où il faut une génération de réponse instantanée. La base de connaissances elle-même est stockée sous forme d'ensemble de documents dans KV : la clé est l'ID du document, la valeur est le texte.
Lors d'une requête, le bot charge tous les documents, applique Jaccard à chacun et les classe selon le score de similarité. Cette solution s'adapte sans problème à des milliers de documents.
Quelle pile est nécessaire
Pour l'implémentation, un minimum de composants est nécessaire :
- TypeScript — le langage dans lequel tout le code est écrit, avec support des types
- Telegraf — une bibliothèque légère et populaire pour travailler avec l'API Telegram
- Cloudflare Workers — une plateforme serverless pour le déploiement (plan gratuit avec des limites généreuses)
- Cloudflare KV — un stockage intégré pour la base de connaissances et l'historique des conversations
- API Groq — un service LLM gratuit pour générer des réponses basées sur les documents trouvés
Le déploiement se fait en une seule commande via Wrangler — un utilitaire CLI pour Cloudflare Workers. Aucune configuration de serveur, pas besoin de votre propre hébergement, pas besoin de conteneurs Docker. Si le bot ne dépasse pas les limites du plan gratuit de Workers (un million de requêtes par mois), le coût sera exactement zéro. Pour comparaison : une configuration typique avec une base de données vectorielle coûte au minimum 20-50 dollars par mois rien que pour le stockage.
Ce que cela signifie pour les développeurs
Cela ouvre la voie à des systèmes RAG simples, qui auparavant semblaient trop chers ou complexes à mettre en place. Pour les petites équipes, les startups et les passionnés — c'est un moyen de lancer rapidement un bot IA avec recherche dans les connaissances pratiquement gratuitement. Un exemple classique : un bot interne qui répond via des FAQ, des politiques d'entreprise, des guides techniques et de la documentation. Auparavant, un tel projet nécessitait d'allouer un budget pour l'infrastructure et de maintenir un système complexe. Maintenant, tout cela peut vivre dans un seul bucket KV et être lancé en une heure. C'est particulièrement utile pour les équipes qui veulent ajouter rapidement une fonction IA sans investissements importants.
Vous voulez cesser de lire sur l'IA et commencer à l'utiliser?
AI News est un fil d'actualité IA. Hamidun Academy vous apprend à utiliser l'IA dans votre travail.