Le RAG, c’est ce qui permet de faire un ChatBot IA qui se base sur des données qu’on choisit. Ca permet une hyper spécialisation, ça limite les hallucinations, et ça ouvre la possibilité d’exploiter les données non structurées de l’entreprise (contrats, historiques, documentations, etc). Il existe différents fournisseurs, du produit « sur étagère » (par abonnement), à l’installation complète en local. Avec toutes les solutions intermédiaires.
RAG: qu’est-ce que c’est ? | Créer un RAG avec n8n, et Paramétrage | Cas d’usage pour PME | Les solutions et outils (ressources de référence) | le combo souverain : Mistral + n8n
Cet article n’est pas un how-to détaillé. Il est conçu pour donner des éléments de réponse permettant aux PMEs de comprendre, et décider.
RAG, intelligence artificielle et données internes : comment ça marche vraiment ?
Vous avez testé ChatGPT. Vous avez été impressionné, mais … « Et si je voulais qu’il réponde sur mes documents à moi — mes contrats, mes procédures internes, mes fiches produits ? »
C’est exactement là que les grands modèles de langage (LLM) atteignent leur limite naturelle. Ils sont entraînés sur des données publiques, figées dans le temps, et ils ne connaissent pas votre entreprise. Résultat : des réponses génériques, parfois inexactes, et une impossibilité structurelle de raisonner sur vos données confidentielles.
Le RAG (Retrieval-Augmented Generation) est la réponse technique à ce problème : c’est un outil capable de puiser dans vos sources (vos documents) pour générer des réponses précises et contextualisées.
Le concept : qu’est-ce qu’un RAG ?
La définition par Microsoft : Retrieval-augmented Generation (RAG) is a pattern that extends LLM capabilities by grounding responses in your proprietary content. While conceptually simple, RAG implementations face significant challenges.
Un RAG est un assistant avec accès à une bibliothèque
Un RAG est une sorte de moteur de recherche sur des documents. Cela permet de converser avec une IA générative (IA blabla) mais qu’à chaque prompt, elle aille chercher la réponse dans vos données.
Il est possible de tester le principe avec NoteBookLM (outil gratuit de google) : on dépose un ou des documents, et l’IA va ensuite nous répondre en se basant sur ces documents. Elle les analyse, peut générer toutes sortes d’outils de communication comme des quizz ou podcast, toujours en se référent strictement aux documents initiaux.
On peut aussi déposer (upload) un document dans une conversation avec Gemini ou ChatGPT (ou autre), mais ce document est intégré au moment où il est intégré, et ensuite il « s’éloigne » dans la mémoire (dans le contexte). Faire un RAG c’est différent : le document reste LA référence.
En général, un bon RAG a été préparé en amont pour optimiser la recherche d’information (accélérer et rendre plus pertinents).
Les 3 étapes fondamentales : Indexer → Rechercher → Générer
- Préparation (l’indexation) : phase de construction de la base de données, réalisée une fois (ou à chaque mise à jour des données)
- Les documents (PDF, Word, pages web, bases de données, images…)
- sont découpés en morceaux (Chunking),
- puis transformés en représentations mathématiques appelées embeddings : ce sont des vecteurs (des listes) de nombres décimaux. On parle de vecteurs car c’est une représentation dans un « espace vectoriel » (espace qui permet de trouver des « proximités » entre embeddings : c’est là qu’on capture une partie de la sémantique).
- Ces vecteurs numériques capturent le sens de chaque passage. Cette phase d’embeddings est essentielle, et en général faite par IA.
- et sont stockés dans une base de données vectorielle (vector store). Cette base stocke à la fois les embeddings et les chunks. Ainsi, lors de l’interrogation, les embeddings servent à « chercher et comparer », et ce sont les chunks qui sont retournés (les morceaux de texte).
- Les documents (PDF, Word, pages web, bases de données, images…)
- Recherche sémantique : retrouver les informations pertinentes
- Quand un utilisateur pose une question, le système ne parcourt pas les documents mot à mot.
- Il transforme la question en vecteur encodé (embedding). Cet embedding est réalisé par le même modèle (en général IA) qui a généré les embeddings des documents sources. Sinon, il ne sera pas possible de comparer le prompt (la question) de l’utilisateur, avec le contenu des documents sources du RAG.
- puis interroge la base de données vector pour identifier les passages dont le sens est le plus proche. C’est une recherche vectorielle, ou sémantique (en général, on ne considère pas cette phase comme étant de l’IA).
- Cette recherche sémantique est bien plus puissante qu’une simple recherche par mots-clés : elle comprend les synonymes, les reformulations, le contexte implicite.
- Générer la réponse
- Les passages les plus pertinents sont transmis à l’IA (GPT-4, Claude, Mistral…) avec la question de l’utilisateur. Ces passages sont des chunks (des morceaux de textes tels que découpés lors de la préparation des données).
- Le modèle IA (LLM) synthétise ces éléments pour produire une réponse fluide, précise et ancrée dans vos sources.
- Il peut également indiquer d’où vient l’information (numéro de la page par exemple).
- Ce qui change tout en termes de fiabilité et de traçabilité.
- Ce qui change tout en termes de fiabilité et de traçabilité.
Ce que le RAG résout
- Les hallucinations : le modèle répond à partir de sources réelles, pas de conjectures ni d’utilisation du Web. Attention, Il est toujours possible d’avoir des hallucinations, mais ça devient très rare.
- L’obsolescence : vos données sont mises à jour indépendamment du modèle (donc on ne dépend pas d’une version d’IA et de sa mise à jour)
- La confidentialité : vos documents restent dans votre environnement, ils ne servent pas à entraîner un modèle tiers
- La précision métier : le système connaît votre vocabulaire, vos produits, vos spécificités
A retenir : Le RAG réduit les hallucinations, mais ne les élimine pas totalement.
Ce que le RAG ne résout pas
- Il ne compense pas des documents de mauvaise qualité : si vos sources sont incohérentes ou incomplètes, les réponses le seront aussi
- Il ne remplace pas une base de connaissances structurée (base de données classique) : le RAG est un moteur de recherche augmenté, pas un système de gestion documentaire
- Il ne garantit pas l’exactitude à 100% : la qualité du découpage, de l’indexation et du modèle utilisé joue énormément
- Il n’apprend pas de vos interactions : contrairement au fine-tuning, le RAG ne modifie pas le modèle lui-même
Le Workflow d’un RAG (concepts techniques)

Le schéma selon Google

Créer un RAG avec n8n, mistral, gemini
Voici un prototypage rapide pour tester toute la chaîne. Utilisation de la mémoire de n8n, sans installation de base de données vectorielle. C’est volatile, ça ne fonctionne que pour le test.
Création des clés pour appeler les modèles IA en mode « API »
pré-requis : création d’une clé API chez Mistral et une autre chez Gemini. Le test est fait avec les APIs gratuites. Mieux vaut utiliser de petits PDFs pour que ça passe. Au moment où j’écris l’article, l’accès à l’API pour Mistral est sans limites (en gratuit).


Mise en place des workflows n8n – étape 1 : la création du RAG

- Noeud « read write files from Disk » : lecture d’un PDF sur le disque (dans mon cas, le nom du fichier est indiqué en dur)
- Noeud « Extract from file » (en choisissant l’option PDF). Ce noeud génère un JSON contenant les métadata et le texte. Dans l’idéal, on pourrait ne pas tout stocker ensuite dans la base de données vector.
- Noeud « Simple Vector Store » : noeud simple pour utiliser la base de données « en mémoire » de n8n. Ne requiert pas de configuration
- C’est ce noeud qui va gérer
- le découpage (chunk) : cela se fait par le noeud « default data loader », lui même utilisant un noeud « character Text Splitter ». A ce niveau, pour aller au delà du prototype, il faut configurer plus finement. En particulier dans le Splitter :
- Utiliser les séparateurs pour bien découper les phrases
- Mettre un « chunk overlap » pour ne pas avoir de rupture au milieu des phrases, sans recouvrement.
- l’encodage mathématique représentant la sémantique (le sens des mots) : l’embedding (un vecteur de nombre = une grande liste de nombres)
- C’est fait par IA. Dans mon cas, j’ai choisi de le faire avec Mistral. Ici, il faut créer les « credentials » pour mistral (c’est à dire rentrer la clé). Une fois cette opération faite, n8n mémorise ce credentials et peut le réutiliser à la demande.
- le découpage (chunk) : cela se fait par le noeud « default data loader », lui même utilisant un noeud « character Text Splitter ». A ce niveau, pour aller au delà du prototype, il faut configurer plus finement. En particulier dans le Splitter :
- C’est ce noeud qui va gérer
Et voilà, on a une base de données (en mémoire) avec des morceaux de texte et la correspondance « mathématique ».
Mise en place du workflow RAG dans n8n. Etape 2, l’utilisation du RAG

- D’abord, on met un noeud « chat ». Ainsi, n8n affiche une petite fenêtre de chat, qui pourrait également être intégrée dans un site web
- On met ensuite un noeud « AI Agent ».
- En l’ouvrant, on vérifie qu’il est bien connecté (en input) au chat.
- Dans prompt (user message) on doit avoir quelque chose comme « $json.chatInput ». Un simple « drag and drop » permet d’alimenter cette zone.
- Dans les options de ce noeud, on peut mettre un system message. Pour ma part, j’y ai mis
- « Tu es un assistant expert chargé de répondre aux questions en utilisant uniquement les documents fournis en contexte. Règles strictes à suivre :
Fidélité au texte : Utilise exclusivement les informations extraites des documents (Vector Store) pour formuler ta réponse.
Honnêteté : Si la réponse ne se trouve pas dans les documents, dis simplement : ‘Je suis désolé, mais je ne trouve pas cette information dans les documents fournis.’ Ne tente pas d’inventer une réponse.
Citations : Si possible, cite brièvement la partie du document qui justifie ta réponse.
Style : Sois concis, clair et garde un ton professionnel. »
- « Tu es un assistant expert chargé de répondre aux questions en utilisant uniquement les documents fournis en contexte. Règles strictes à suivre :
- A ce noeud on lie un « chat model ». J’ai choisi Gemini (on met alors les credentials pour gemini, donc la clé créée au préalable). Ce modèle peut être utilisé si la réponse n’est pas dans le vector store ET qu’on a mis en prompt system : « si tu ne trouve pas la réponse dans le contexte, va la chercher dans ta mémoire pré-entrainée »
- Comme on n’a pas de mémoire stockée (pas de base de données vector), là j’ai ajouté un noeud « answer question with a vector store »
- qui lui même est lié à « simple vector store »
- qui lui-même est lié de nouveau au noeud embedding Mistral. IL est essentiel que ce soit le même noeud (même modèle) que dans la première phase. En effet, ce noeud va prendre le prompt et l’encoder mathématiquement. Il faut que ce soit encodé de la même manière que ce qu’il y a dans le RAG.
- Ici, on remet un modèle IA (j’ai mis gemini). C’est ce modèle qui va répondre en utilisant ce qui aura été retourné par la vector database + le prompt system + le prompt user
- qui lui même est lié à « simple vector store »
- En l’ouvrant, on vérifie qu’il est bien connecté (en input) au chat.
Ce qui se passe quand on interroge le RAG
- L’utilisateur va envoyer un prompt par le chat
- le chat le transmets à l’agent
- l’agent transmet au noeud « answer »
- le noeud « answer » transmet au noeud de base de données vectorielle (simple vector store)
- Ce noeud transmet le prompt au noeud mistral (embedding).
- Le noeud mistral transforme le prompt en embedding
- et le renvoie au noeud vector store
- le noeud vector store va aller chercher dans sa base de données (recherche par similarité mathématique). Il compare les embeddings et trouvent ceux qui correspondent bien. Et retourne les chunks qui correspondent (donc les textes)
- Cette réponse est retournée au noeud « Answer questions with… », qui utilise le modèle pour répondre au prompt user en utilisant le prompt system + les morceaux de textes récupérés
- S’il n’a pas la réponse, il retourne une réponse « vide »
- la réponse est renvoyée à l’agent
- suivant le prompt system, l’agent va compléter la réponse, ou si elle est vide dire « je ne sais pas » ou aller chercher une réponse dans son modèle.
- Puis la réponse est renvoyée au chat (c’est relié automatiquement)
Pour bien comprendre, poser les bonnes questions
- J’ai mis une quittance EDF
- Et je pose une question « qui habite à la rue de la rondelle » (c’est l’adresse sur la quittance). Cette informations ne peut être trouvée ailleurs que dans le RAG.
- Si j’ai configuré le prompt system pour chercher l’information exclusivement dans le contexte : il trouve. le modèle ne sait pas que cela vient d’une base de données ou d’un RAG. Pour lui, c’est le contexte.
- Si je demande « qui est Victor Hugo » et que j’ai configuré le prompt system pour dire « je ne sais pas » si la réponse n’est pas dans le contexte, il dit « je ne sais pas ».
- Mais si j’ai mis dans le prompt system « si tu ne trouves pas la réponse dans le contexte, va chercher dans ta mémoire pré-entrainée », il peut répondre pour Victor Hugo. Et c’est pour ça qu’il y a 2 modèles : un qui travaille avec le contexte, un qui est utilisé s’il n’y a pas la réponse dans le contexte. Donc, potentiellement, c’est bien 2 appels de modèles.
Réglages fins et paramétrages
Il existe certains réglages techniques à faire. Dans cet article je ne fais que survoler ce paramétrage. Dans l’idéal, il faut tester finement en fonction des outils utilisés et surtout des données et des besoins.
Paramètre du modèle appelé lors de l’interrogation du RAG
Paramétrage du modèle qui répond au user en utilisant les données remontées par le RAG.
- Température : plus elle est basse, moins il y a d’hallucinations. Pour un RAG sur des documents techniques, on met 0 ou 0.1. Cela améliore la reproductibilité des réponses techniques.
- Attention, il n’est pas possible de garantir à 100% l’absence d’hallucinations. Mais avec un RAG et une température à 0, on s’approche du risque 0.
- Top P (Nucleus Sampling) : En général, on peut ne pas y toucher. Ce paramètre joue sur le calcul de probabilité. L’impact est subtil, donc si on veut jouer avec, c’est à étudier et tester.
- Top K : nombre de mots ramenés par le modèle, dans lequel le modèle va choisir l’un des plus probables pour poursuivre la phrase; Paramètre technique à laisser tel que ou à étudier et tester de prèt.
- Max Tokens : Attention à ce que ça ne soit pas trop bas afin d’éviter une réponse coupée. Une marge de 1024 ou 2048 est bien. Pour économiser les tokens, on va plutôt jouer sur le prompt (« réponds toujours de manière concise »).
- System prompt : c’est le réglage qui force le modèle à ne pas utiliser ses connaissances générales, mais utiliser exclusivement les données du RAG. Réponds exclusivement en utilisant les extraits de documentation fournis. Si la réponse ne s’y trouve pas, dis explicitement que tu ne sais pas. Ne fais pas appel à tes connaissances externes.
Découpage (chunking) lors de la préparation du RAG
Le chunking est souvent plus déterminant que le modèle lui-même pour la pertinence d’un RAG.
- Taille des chunks (Chunk Size) : Il n’y a pas de bonne pratique absolue, ça dépend des cas d’usage. Plus c’est petit, plus on « perd le contexte » du morceau de phrase. Plus c’est grand, plus l’information pertinente est diluée. Une bonne moyenne est entre 512 et 1025 tokens. Mais l’idéal set de tester.
- Recouvrement (Chunk Overlap) : Indispensable quel que soit le cas d’usage. A régler à environ 10-15% de la taille du chunk. Cela permet de conserver la continuité contextuelle entre deux morceaux (ex: une phrase coupée en deux).
- Séparateurs : Ne pas se contenter du simple caractère de nouvelle ligne. Utiliser des Recursive Character Text Splitters.
- Ordre de priorité : Paragraphes (
\n\n), puis lignes (\n), puis points (.). - Spécificité technique : suivant les formats des textes dans le RAG, il faut utiliser les séparateurs qui respectent le code pour ne pas briser une fonction. par exemple }. C’est à tester finement.
- Ordre de priorité : Paragraphes (
Dépendance au modèle d’Embedding
La manière dont on découpe (chunking) peut dépendre du modèle d’embedding (celui qui va encoder les morceaux).
- il ne faut pas que la longueur d’un chunk dépasse la « fenêtre max » du modèle d’embedding (souvent 8192 tokens). Il faut rester très en dessous.
- Certains modèles sont meilleurs avec des chunks petits. De nouveau, c’est à étudier au cas par cas.
L’idéal est de bien préparer les documents avant de les insérer dans le RAG : éliminer ce qui ne sert à rien comme les entêtes, metadata, certaines images, etc. Cela peut être fait par IA.
Récupération des chunks lors de l’interrogation du RAG
En général, on évite de récupérer trop de chunks dans le RAG. Mieux vaut 5 à 7 de bonne qualité que 20. Si la réponse n’est pas dans les 5 meilleurs extraits, c’est que l’embedding ou le chunking sont à revoir.
Ce paramètre peut se nommer différemment en fonction de ce qu’on utilise; Parfois, il est nommé top-k. Mais ce n’est PAS le même top-k que celui du modèle d’IA qui répond en utilisant les données retournées par le RAG.
Tester le RAG et les paramètres
Prévoir un « jeu de test »: un fichier de 20 questions/réponses types, et revérifier à chaque changement de paramètre que le RAG répond toujours correctement aux 20 questions.
Cas d’usage métier concrets pour les PME
FAQ et support client sur base documentaire interne
Le cas : Pour les équipes internes, ou en chatbot externe, en s’appuyant sur les documentations produits, CGV, guides d’utilisation ou politiques tarifaires.
Bénéfice attendu : réduction du volume de tickets support, réponses cohérentes et instantanées 24h/24, décharge des équipes sur les questions répétitives.
Niveau de complexité : Faible à moyen. C’est souvent un bon cas d’entrée pour une première expérimentation RAG. Les documents sont généralement bien délimités et les questions prévisibles, et les données non confidentielles.
Points de vigilance :
- La qualité des réponses dépend directement de la qualité et de la mise à jour des sources. Un RAG sur une documentation obsolète produit des réponses fausses en toute confiance.
- Prévoir un mécanisme d’escalade clair vers un humain quand le système ne sait pas répondre.
Accueil des nouveaux arrivants & base de connaissances RH
Le cas : un assistant interne qui répond aux questions des collaborateurs sur les procédures RH, la convention collective, les avantages salariés, les processus d’intégration.
Bénéfice attendu : autonomisation des salariés sur les questions administratives courantes, gain de temps significatif pour les équipes RH, meilleure expérience collaborateur.
Niveau de complexité : Faible: les documents sources sont connus, stables et bien structurés. L’usage est interne, ce qui simplifie les questions de conformité.
Points de vigilance :
- Les documents RH peuvent contenir des données sensibles : l’hébergement doit être maîtrisé, sans transit vers des services cloud non conformes RGPD.
- Attention aux formulations ambiguës dans les documents sources (ex. : « selon les cas », « sous réserve ») — le modèle peut les interpréter de façon trop affirmative.
Recherche dans des contrats, devis, appels d’offres
Le cas : permettre à des équipes commerciales ou juridiques de retrouver rapidement des clauses, des conditions, des engagements contractuels dans un volume important de documents.
Bénéfice attendu : gain de temps sur la recherche documentaire, réduction des risques liés à des clauses manquées ou mal interprétées, meilleure préparation aux négociations.
Niveau de complexité : Moyen à élevé. Les contrats sont souvent des PDF complexes, avec une structure variable, des tableaux, des renvois entre articles. La phase d’indexation demande un soin particulier.
Points de vigilance :
- Ce cas d’usage ne tolère pas l’approximation : une clause mal restituée peut avoir des conséquences juridiques. Le RAG doit être utilisé comme outil de recherche et d’aide à la lecture, pas comme source de vérité juridique autonome.
- Prévoir systématiquement un affichage de la source exacte (document + page) pour permettre la vérification humaine.
Assistant commercial sur catalogue produit
Le cas : un assistant qui aide les commerciaux ou les clients à naviguer dans un catalogue complexe, identifier le bon produit selon des critères techniques, ou comparer des références.
Bénéfice attendu : accélération du cycle de vente, réduction des erreurs de configuration, autonomisation des clients B2B sur la phase de découverte produit.
Niveau de complexité : Moyen : fonctionne bien si le catalogue est structuré (fiches produits homogènes). Se complique si les données sont éparpillées entre un ERP, des PDF et des tableaux Excel hétérogènes.
Points de vigilance :
- Les prix et disponibilités changent souvent : le RAG doit être connecté à une source mise à jour en temps réel, ou clairement limité aux informations statiques.
- Tester soigneusement les questions de comparaison entre produits.
Veille réglementaire ou technique
Le cas : un assistant qui permet d’interroger un corpus de textes réglementaires, normes, documentations IT, rapports sectoriels ou décisions de jurisprudence pour en extraire les éléments pertinents.
Bénéfice attendu : gain de temps sur la veille et l’analyse, meilleure accessibilité de textes complexes pour des profils non-spécialistes, aide à la mise en conformité.
Niveau de complexité : Élevé : les textes réglementaires ont une structure très spécifique, des références croisées fréquentes et une précision lexicale qui laisse peu de place à l’interprétation.
Points de vigilance :
- Dans le cas du juridique, risque élevé de réponses trop synthétiques qui effacent des nuances essentielles. Ce cas d’usage nécessite un niveau de paramétrage avancé et une validation humaine systématique.
- À réserver à des équipes avec une culture de l’usage outillé et une capacité à critiquer les sorties du modèle.
Le contre-exemple : le cas d’usage qu’il ne faut PAS implémenter en RAG
Cas : répondre à des questions nécessitant un raisonnement sur des données chiffrées dynamiques
Exemple typique : « Quel est notre taux de marge moyen sur les commandes du T3 ? » ou « Combien de clients actifs avons-nous ce mois-ci ? »
Le RAG est fait pour chercher et synthétiser du texte. Il n’est pas conçu pour interroger des bases de données structurées, faire des calculs, ou agréger des indicateurs en temps réel. Si les documents sources ne contiennent pas la réponse telle quelle, le modèle va soit avouer son ignorance, soit produire un chiffre plausible mais faux (hallucination).
Ce qu’il faut faire à la place :
- Pour des données chiffrées dynamiques : connecter le LLM directement aux bases de données via du Text-to-SQL ou des outils comme LangChain avec connecteur SQL
- Pour du reporting : rester sur des outils dédiés (Power BI, Metabase, Looker, …)
Le RAG est puissant dans son domaine : la recherche sémantique sur du texte. Le sortir de ce périmètre sans précautions, c’est s’exposer à des résultats trompeurs avec une apparence de fiabilité. C’est souvent plus dangereux qu’une absence de réponse.
Les solutions accessibles : panorama pour décideurs
Certaines de ces solutions sont décrites plus en détail dans la suite de cet article.
| Catégorie | Exemples | Pour qui |
|---|---|---|
| No-code / clé en main | Notion AI, Microsoft Copilot, Google NotebookLM | Équipes non-tech |
| Low-code / semi-configurables (programmation visuelle de workflow, pouvant intégrer l’IA) | Flowise, n8n, Voiceflow | Chefs de projet |
| Cloud managé | Azure AI Search, AWS Bedrock, Google Vertex AI | DSI, IT |
| Open source / sur mesure | LangChain, LlamaIndex, Chroma, Ollama | Développeurs |
Les critères d’arbitrage pour choisir votre solution RAG
Où sont vos données, et à quel point sont-elles sensibles ?
C’est le critère éliminatoire numéro un. Si vos documents contiennent des données confidentielles (contrats clients, données RH, propriété intellectuelle, informations réglementées), vous ne pouvez pas les envoyer vers un service cloud tiers sans en avoir évalué les implications juridiques et de sécurité.
La règle simple :
- Données sensibles ou soumises à conformité (RGPD, secret professionnel…) : hébergement local, ou cloud privé européen.
- Données internes mais non critiques : les solutions cloud managées (Azure, Google, AWS) sont un bon compromis
- Données publiques ou peu sensibles : toutes les options sont ouvertes, y compris les outils SaaS clé en main
Et bien sûr avant cela : la première question. Où sont les données, sous quel format, quelle est leur qualité, à quel rythme et comment sont-elles mises à jour, etc. Un travail de préparation / nettoyage peut être nécessaire. Voir une étape pour scanner des documents papier ou manuscrits (l’Ia le fait très bien, sous réserve de la confidentialité). Le cycle de vie de chaque donnée (ou entrepôt de donnée) doit être documenté.
Quel est votre budget réel — coût d’usage inclus ?
Le coût affiché d’un outil RAG est rarement le coût total. Il faut intégrer trois postes souvent sous-estimés : le coût d’indexation des documents, le coût par requête (les appels au LLM se paient à l’usage, c’est à dire aux tokens), et le temps humain de configuration et de maintenance.
Les ordres de grandeur à retenir :
- Solutions no-code / SaaS : faible coût de démarrage, mais coût par usage qui peut grimper
- Solutions open source : coût logiciel quasi nul, mais coût humain élevé (développement, maintenance)
- Solutions cloud managées : coût prévisible et modulable
Les coûts RAG viennent en réalité de 3 couches différentes : embeddings (préparation du texte et encodage des questions des utilisateurs) + vector DB (stockage et recherche sémantique) + LLM (appel IA pour l’interrogation et génération de la réponse à partir du contexte récupéré).
Qui va le construire — et qui va le maintenir ?
Un RAG n’est pas un outil qu’on installe une fois et qu’on oublie. Les documents évoluent, la qualité des réponses doit être surveillée, les sources mises à jour. La question des compétences internes est donc aussi importante que le choix de la technologie.
Le bon diagnostic :
- Aucune ressource technique en interne : il faut une solution ou un intégrateur pérenne (long terme)
- Un profil technique : les outils low-code (Flowise, n8n) sont accessibles et puissants
- Une équipe de développement disponible : vous pouvez envisager une architecture sur mesure avec LangChain ou LlamaIndex
Les fournisseurs et outils en détail
Mistral (France)
- Le CookBook Mistral et RAG : Mistral ne propose pas (pour l’instant) de RAG hébergé en Cloud. Ce document indique comment faire techniquement en utilisant des outils comme LlamaIndex.
Ailog : le Rag Français
Ailog communique comme la solution RAG européenne, hébergements français (OVH), conformité RGPD, modèle Mistral, etc.
Je n’ai pas regardé en détail, et n’ai pas trouvé grand chose coté réputation.
La solution Microsoft (Azure)
- L’overview RAG par Microsoft et le HOW-to RAG avec la solution Azure.
- Page de pricing (indexation, vector search, retrieval pour RAG)
La solution Google (Gemini)
- Utilisation de l’API de gemini : d’après cette page :
- Outils de recherche de fichiers. L’outil importe, découpe et indexe les données.
- Notion de bibliothèque de fichier : magasin de recherche de fichier, puis de découpage (avant indexation).
- Récupération rapide des informations pertinentes, en fonction du prompt.
- Le stockage des fichiers et la génération des embeddings (= la transformation en maths) au moment de la requête, est sans frais. Ce n’est payant que à l’indexation la première fois.
- Le modèle de coûts classique (tokens entrée / sortie) s’applique.
- Page de tarifs gemini : il existe une option d’essai gratuit pour tester.
- Outils de recherche de fichiers. L’outil importe, découpe et indexe les données.
- Vertex AI : extrait de la page : « Vertex AI Agent Builder est notre plate-forme ouverte et complète qui permet aux entreprises de créer, de faire évoluer et de gérer rapidement des agents professionnels ancrés dans leurs données. Elle fournit la base full stack et la flexibilité de développement nécessaires pour transformer vos applications et vos workflows en systèmes agentifs puissants et fiables à l’échelle mondiale. »
OpenAPI (ChatGPT)
- Le document « blueprint » et la « response API » (RAG tout en un, « sur étagère »)
- Guide officiel de la « retrieval API » (Interrogation pour « retrouver ») qui se base sur le « vector store » (stokage des documents prédécoupés, encodés, indexés).
- Basé sur la base de données Vecteur hébergée par OpenAi.
- sur les modèles d’embedding fourni par OpenAI (= les encodeurs de texte)
- et sur l’indexation automatique lorsqu’un document est intégré dans la vector store
- Explications sur le RAG et les GPTs
- Page de tarif (incluant RAG) : embeddings, modèles, et facturation au token
OpenAI – Assistants API & outil “Retrieval” (base de connaissances, vector search, etc.)
À mentionner via la doc officielle Assistants/Retrieval (site OpenAI, section “Assistants API”).
L’écosystème AWS (hébergements d’Amazon)
- Amazon Kendra : moteur de recherche d’entreprise avec RAG
- indexer les documents, les stocker (avec synchronisation pour gérer les modifications),
- APIs pour ajouter directement des documents, récupérer un passage, interroger.
- Page de tarif
- A utiliser en lien avec Amazon Q Business pour créer un RAG (assistant « clé en main »). Amazon Q Business est une sur-couche d’Amazon Bedrock. Page de tarif.
- Amazon Bedrock : service cloud par API pour construire ses propres applications IA. De nombreux modèles sont disponibles : Claude, LLama, Mistral, etc. Page de tarif.
- OpenSearch Serverless est un moteur de recherche et une base vectorielle : stocker des documents, stocker des embeddings (encodage des documents), faire de la recherche sémantique (sans utiliser d’IA). Les IAs LLM interviennent avant et après (pour « traduire » les demandes des utilisateurs).
- Accessible par API
- Ce n’est pas une pure base de données vectorielle, mais un moteur de recherche avec support vectoriel.
AWS (non spécifique RAG mais fondamental pour l’archi) – Amazon Kendra, Bedrock, OpenSearch Serverless (à pointer comme briques de recherche sémantique et de génération).
Les principaux frameworks de développement pour mise en place de RAG
- Développement Java : Spring AI. Concepts RAG
- Développement Python : le HOW-TO RAG avec LangChain : spécialiser pour « chaîner » des opérations (agents et workflow complexes). C’est plutôt un framework d’orchestration.
LlamaIndex
- Le plus conseillé pour faire des RAGs en PME : Développement Python : le HOW-TO RAG avec LLama Index (par défaut, utilise OpenAI donc les modèles de type ChatGPT, mais peut intégrer d’autres modèles). Documentation officielle de LlamaIndex. LLamaIndex est spécialisé pour interroger des documents (RAG et data retrieval).
- remarque : bien que le modèle opensource de Meta s’appelle LLAMA, et que LlamaIndex soit similaire, il n’y a pas de lien direct entre les 2 projets.
- Une architecture typique sera
- LlamaIndex
- Chunking (découpage des documents en petits éléments)
- Embeddings (transformation de ces éléments texte en « grille de math » qui peuvent ensuite être combinées et comparées entre elles. C’est cette mathématisation qui va permettre de faire de la recherche « sémantique » (portée par le sens et non la simple comparaison de mot-clés)
- Stockage de la Vector DB (qui stocke les morceaux de fichiers proprement indexés).
- Retrieval (récupération des données)
- L’appel à l’IA (LLM). Souvent Llama, GPT, Mistral, etc : au prompt de l’utilisateur est ajouté le « contexte » récupéré dans les documents, et en lien avec la question de l’utilisateur.
Exemple de code python (extrait de la doc de LLamaIndex)
>>> from llama_index.core import SimpleDirectoryReader, VectorStoreIndex
>>> reader = SimpleDirectoryReader(input_files=[« ./data/pep8.rst »]) //lui dire où sont les fichiers
>>> documents = reader.load_data() // charger les fichiers
>>> index = VectorStoreIndex.from_documents(documents) //découper et créer l’index
>>> query_engine = index.as_query_engine() //créer le moteur de recherche à partir de cet index (des paramètres d’environnement ont précisé à l’avance quel LLM utiliser)
>>> print(query_engine.query(« What is this document about? »)) //lancer la recherche
Les bases de données « vecteur » (stockage des documents prédécoupés, encodés et indexés)
- Qdrant
- Pinecone : tutoriel d’intégration avec LangChain
- Chroma : Moteur de recherche open-source pour IA: (licence Apache, hébergé localement ou par exemple sur le Chroma Cloud)
- Stockage des documents, Encodage (embeddings), recherche (Vector search)
- Et directement : Recherche textuelle (sans passer par l’encodage et le découpage), filtre par métadata (métadonnées sur les documents), indexation et recherche d’images et audio (etc).
Les outils configurables visuellement
L’orchestrateur multi-casquette n8n
Open Source (téléchargeable, installable en local ou hébergeable en France, sur VPS/docker), n8n permet de dessiner des worklows intégrant l’IA. Avec, on peut quasiment tout connecter avec tout. Ce n’est pas un outil spécialisé IA. Lien sur la documentation « faire un RAG avec n8n« .
Remarque : un VPS est un serveur « virtuel » sur une machine distante. C’est l’intermédiaire entre payer pour sa propre machine (serveur dédié, et un hébergement mutualisé. Le français OVH le propose, et c’est l’idéal pour ce type d’hébergement.
Flowise : interface graphique construite sur LangChain
Flowise permet de construire graphiquement son workflow « RAG » avec toutes les étapes. Très granulaire, il permet de tester différentes approches. Comme n8n, Flowise est opensource (lien de téléchargement officiel et guide d’installation).
Voiceflow : Le Designer d’Expérience (UX)
À l’origine conçu pour les chatbots vocaux (Alexa), il est devenu une plateforme majeure pour les agents conversationnels IA.
- Rôle dans le RAG : Il sert d’interface utilisateur finale. Bien qu’il ait une fonction « Knowledge Base » intégrée (un RAG simplifié en un clic), il excelle surtout dans la gestion du dialogue (scénarisation).
- Voiceflow n’est pas opensource.
Le RAG souverain : Mistral (français) + n8n (openSource, hébergement français possible)
Monter un RAG avec n8n
n8n et un outil OpenSource, pour créer des workflows complexes visuellement (on relie des noeuds entre eux).
- Documentation: créer un RAG avec n8n.
- Template de workflow pour créer un RAG avec OpenAI. Ce template regroupe 2 « flows »
- Charger des données (load)
- Le déclencheur est : uploader un fichier
- Noeud « Simple Vector Store »: Insert Data to Store : branché au « loader » de données par défaut, au texte splitter (découpeur), et au modèle d’embedding (encodage) d’OpenAI.
- rechercher (retrieve)
- Le déclencheur est : message reçu depuis un chat
- Envoi à l’agent IA
- qui interroge le noeud de « query »
- qui interroge le modèle d’embedding (celui là même qui est utilisé lors de la préparation des données)
- qui interroge le noeud de « query »
- Charger des données (load)
- Ajouter un noeud Mistral pour créer les embeddings : c’est le noeud à ajouter dans le worflow « RAG » pour qu’un texte soit encodé. On peut utiliser un modèle Mistral pour cette tâche.
- Ajouter un noeud Mistral (pour toute tâche, notamment les RAGs)
- Configurer les identifiants à Mistral dans n8n : tous les noeuds de ce type demandent une clé ou un login / mot de passe. Dans le cas de l’utilisation d’API d’IA, en général c’est une clé. C’est à cette clé qu’est lié l’abonnement et c’est là que sont calculés les tokents utilisés et donc le coût.
- Template de workflow pour créer un RAG avec OpenAI. Ce template regroupe 2 « flows »
- Documentation : Créer un RAG (Mistral)
- Documentation : utiliser un modèle d’embedding Mistral. C’est bien une IA qui créée les embeddings, car cela capture la sémantique, le sens, des mots.
Conclusion et synthèse
Le RAG n’est pas une révolution réservée aux grandes entreprises avec des équipes data étoffées. C’est aujourd’hui une architecture mature, accessible, et dont le retour sur investissement est tangible. A condition de bien cadrer le périmètre, d’avoir les données, et de choisir la solution adaptée à son contexte. Ne pas brûler les étapes, prototyper, tester.
Ce qui fait la différence entre un projet RAG qui délivre de la valeur et un POC qui s’enlise, c’est rarement la technologie. C’est la clarté du cas d’usage, la qualité des données sources, et l’accompagnement dans la prise en main.
Si cet article vous a aidé à y voir plus clair, la prochaine étape est souvent la même : identifier le bon cas d’usage pour votre contexte, évaluer vos contraintes réelles, et poser les bonnes questions avant d’investir.
C’est exactement ce sur quoi j’accompagne mes clients.
