Un bot Telegram avec RAG sans base de données vectorielle : exemple sur Cloudflare Workers
Comment créer un bot Telegram qui interroge une base de connaissances sans base de données vectorielle ni infrastructure coûteuse ? Un développeur a détaillé une stack qui fonctionne : TypeScript et Telegraf pour Telegram, l'algorithme de Jaccard pour la recherche par mots-clés, l'API gratuite de Groq pour générer les réponses et Cloudflare KV pour conserver l'historique des conversations. Le déploiement se fait en une seule étape sur Cloudflare Workers, pour un coût d'exploitation quasi nul.
Traité par IA depuis Habr AI ; édité par Hamidun News
Un bot Telegram capable de chercher dans une base de connaissances, c'est un besoin courant. En général, on passe par 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 obligatoire : il existe une voie moins chère et plus simple.
Pourquoi les bases vectorielles ne sont pas la seule option
Le RAG (Retrieval-Augmented Generation) n'exige pas forcément d'embeddings vectoriels. Pour une base de connaissances de taille moyenne, une recherche plein texte par mots-clés suffit. L'algorithme de Jaccard calcule la similarité entre deux textes à partir de l'intersection de leurs mots : il est simple, rapide et ne demande aucun apprentissage automatique.
Voici comment cela se passe en pratique : si la base contient une FAQ de support technique et que l'utilisateur écrit « comment redémarrer l'appareil », le bot découpe la requête en mots, cherche des correspondances dans les documents, retient ceux qui ont la plus grande intersection et les transmet au LLM. Les résultats peuvent même être meilleurs qu'avec des API d'embeddings coûteuses, à condition que le contenu soit bien structuré. C'est aussi plus rapide, puisqu'il n'y a pas à attendre la génération des embeddings.
Le principal avantage : aucune dépendance à des services externes, hormis une seule API de LLM pour générer les 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 l'offre gratuite. Pas de file d'attente pour déployer l'infrastructure, pas de facture mensuelle pour le stockage de vecteurs.
Comment fonctionne l'architecture
Le flux se déroule ainsi : l'utilisateur pose une question dans Telegram → le bot cherche les documents pertinents dans la base de connaissances avec l'algorithme de Jaccard → il retient les 3 meilleurs résultats et les envoie avec la question à l'API Groq (un LLM gratuit) → Groq génère une réponse à partir des documents trouvés → le bot renvoie le résultat dans le chat.
L'historique de la conversation est enregistré dans KV pour assurer le contexte d'un message à l'autre. Le bot se souvient ainsi des questions précédentes et peut affiner ses réponses selon le contexte de l'échange.
À noter : Groq n'a pas été choisi au hasard. C'est un service de LLM rapide, aux limites généreuses sur l'offre gratuite, idéal pour les bots et les systèmes RAG qui exigent une réponse instantanée.
La base de connaissances est stockée dans KV sous forme d'un ensemble de documents : la clé est l'identifiant du document, la valeur est le texte. À chaque requête, le bot charge tous les documents, applique Jaccard à chacun et les classe selon leur score de similarité. Cette solution passe à l'échelle jusqu'à des milliers de documents sans difficulté.
Quelle stack faut-il
L'implémentation demande un minimum de composants :
- TypeScript — le langage dans lequel tout le code est écrit, avec prise en charge 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 (offre gratuite aux limites généreuses)
- Cloudflare KV — un stockage intégré pour la base de connaissances et l'historique des conversations
- Groq API — un service de LLM gratuit pour générer des réponses à partir des documents trouvés
Le déploiement tient en une seule commande via Wrangler, l'outil en ligne de commande de Cloudflare Workers. Aucun serveur à configurer, pas besoin d'hébergement propre, pas de conteneurs Docker.
Si le bot reste dans les limites de l'offre gratuite de Workers (un million de requêtes par mois), le coût est exactement nul. À titre de comparaison, une installation classique avec base vectorielle coûte au minimum 20-50 $ par mois rien que pour le stockage.
Ce que cela change pour les développeurs
Cela ouvre la voie à des systèmes RAG simples qui semblaient auparavant trop chers ou trop complexes à mettre en œuvre. Pour les petites équipes, les startups et les passionnés, c'est un moyen de lancer rapidement un bot IA avec recherche de connaissances, quasiment gratuitement.
Exemple classique : un bot interne qui répond sur la FAQ, les politiques d'entreprise, les guides techniques et la documentation. Un tel projet exigeait jusqu'ici un budget d'infrastructure et la maintenance d'un système complexe. Désormais, tout peut tenir dans un seul bucket KV et être opérationnel en une heure.
C'est particulièrement utile aux équipes qui veulent ajouter vite une fonction d'IA sans gros investissement.
Questions clés sur cet article
Pourquoi les bases vectorielles ne sont pas la seule option?
Le RAG (Retrieval-Augmented Generation) n'exige pas forcément d'embeddings vectoriels. Pour une base de connaissances de taille moyenne, une recherche plein texte par mots-clés suffit. L'algorithme de Jaccard calcule la similarité entre deux textes à partir de l'intersection de leurs mots : il est simple, rapide et ne demande aucun apprentissage automatique. Voici comment cela se passe en pratique : si la base contient une FAQ de support technique et que l'utilisateur écrit « comment redémarrer l'appareil », le bot découpe la requête en mots, cherche des correspondances dan
Comment fonctionne l'architecture?
Le flux se déroule ainsi : l'utilisateur pose une question dans Telegram → le bot cherche les documents pertinents dans la base de connaissances avec l'algorithme de Jaccard → il retient les 3 meilleurs résultats et les envoie avec la question à l'API Groq (un LLM gratuit) → Groq génère une réponse à partir des documents trouvés → le bot renvoie le résultat dans le chat. L'historique de la conversation est enregistré dans KV pour assurer le contexte d'un message à l'autre. Le bot se souvient ainsi des questions précédentes et peut affiner ses réponses selon le contexte de l
Que sait-on sur Quelle stack faut-il ?
L'implémentation demande un minimum de composants : TypeScript — le langage dans lequel tout le code est écrit, avec prise en charge 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 (offre gratuite aux limites généreuses) Cloudflare KV — un stockage intégré pour la base de connaissances et l'historique des conversations Groq API — un service de LLM gratuit pour générer des réponses à partir des documents trouvés Le déploiement tient en une seule commande via Wrang
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
L'essentiel de l'IA — une fois par semaine
Sept actus qui ont vraiment compté, choisies à la main. Sans bruit ni communiqués.
C'est fait ! Vérifiez votre boîte mail pour la confirmation.