Introduction aux RAG (Retrieval Augmented Generation) avec LangChain et Ollama
1. Pourquoi parle-t-on des RAG aujourd’hui ?
Les modèles d’IA générative (comme GPT, Claude, ou encore LLaMA) sont capables de produire du texte fluide et pertinent. Mais ils ont une limite majeure : ils ne savent répondre qu’avec ce qu’ils ont appris lors de leur entraînement. Ils peuvent donc :
- Fournir des informations obsolètes.
- Inventer des faits inexistants (hallucinations).
- Ignorer des données spécifiques à une entreprise ou un domaine.
C’est là qu’interviennent les RAG (Retrieval Augmented Generation) : ils combinent la puissance des modèles génératifs avec une base de connaissances externe (documents, bases de données, fichiers internes, etc.).
En clair : avant de générer une réponse, le modèle va chercher les informations pertinentes dans vos données, puis il s’appuie dessus pour formuler une réponse précise.
Remarque : certains outils comme ChatGPT avec navigation web ou Perplexity donnent l’impression que le modèle connaît Internet en temps réel. En réalité, ils combinent un modèle génératif avec un mécanisme externe de recherche en ligne. Ce fonctionnement s’apparente déjà à une forme de RAG, mais appliqué au web public. L’intérêt des RAG personnalisés est de pouvoir appliquer le même principe… sur vos propres données privées (documents internes, bases clients, rapports, etc.).
2. Le principe d’un RAG
Un pipeline RAG fonctionne en trois étapes :
- Indexation des documents
On découpe vos textes en petits morceaux (chunks), puis on les transforme en vecteurs numériques (embeddings) afin de pouvoir les rechercher efficacement. - Recherche contextuelle
Lors d’une question, le système cherche dans vos documents les passages les plus pertinents grâce à une base vectorielle. - Génération augmentée
Le modèle de langage prend ces passages comme contexte et génère une réponse plus fiable, avec éventuellement les sources utilisées.
3. Les outils que nous allons utiliser
Pour notre exemple, nous allons construire un petit RAG avec :
- LangChain : un framework Python qui facilite la création de chaînes IA (LLM + retrieval + mémoire…).
- Ollama : un outil qui permet de télécharger et exécuter facilement des modèles de langage en local (par exemple LLaMA, Mistral, Gemma). Dans notre code, nous utilisons un petit modèle local
gemma3:1b. - FAISS : une librairie de Meta pour gérer les recherches vectorielles.
- HuggingFace Embeddings : pour transformer nos textes en vecteurs numériques.
ℹ️ Il n’est pas obligatoire d’utiliser Ollama ou des modèles ouverts, vous pouvez choisir le modèle de votre choix : open source (LLaMA, Mistral, Gemma…) ou fermé (GPT, Claude, etc.).
4. Mise en pratique pas à pas
Nous allons partir d’un fichier doc.txt (notre base de connaissances). Voici le fichier que nous utilisons ici pour l’exemple :
a) Charger le document
Ici, on lit notre fichier texte et on le convertit en un objet Document utilisable par LangChain.
b) Découper le texte en morceaux (chunks)
On segmente le document en petits morceaux de 150 caractères, avec un recouvrement de 40 caractères pour éviter de couper une idée en deux.
c) Créer la base vectorielle
Chaque chunk est transformé en vecteur numérique grâce à un modèle de HuggingFace, puis stocké dans une base vectorielle FAISS.
d) Construire la chaîne RAG
Ici, on assemble tout :
- Le LLM (
gemma3:1bvia Ollama). - Le moteur de recherche vectoriel.
- Une chaîne qui envoie les passages trouvés au modèle.
e) Poser une question
Quand on pose la question « What languages does Clara speak ? », le système va chercher dans notre doc.txt et donner la réponse :
5. Code complet
Voici le module Python complet que vous pouvez exécuter directement :
6. Conclusion
Les RAG permettent de transformer un modèle de langage générique en assistant spécialisé, capable de s’appuyer sur vos propres données.
- Les applications sont nombreuses : chatbots d’entreprise, assistants de recherche, outils pédagogiques…
- Grâce à des frameworks comme LangChain et des outils comme Ollama, il devient facile de monter un prototype fonctionnel.
Et surtout, vous gardez le contrôle : vous pouvez choisir vos propres données et vos propres modèles (open source ou fermés).
Pour aller plus loin, découvrez notre article autour de l’automatisation et de l’IA agentique.
Ressources utiles :



