Skip to content
Learni
View all tutorials
Intelligence Artificielle

Comment implémenter Corrective RAG en 2026

Introduction

Corrective RAG est une technique qui permet d'améliorer les systèmes RAG classiques en ajoutant une étape de critique et de correction. Au lieu d'accepter aveuglément les documents récupérés, le système évalue leur pertinence et les corrige si nécessaire. Cette approche réduit les hallucinations et améliore la fiabilité des réponses. En 2026, elle devient essentielle pour les applications professionnelles qui exigent une précision élevée. Ce tutoriel vous montre comment implémenter un pipeline Corrective RAG complet et fonctionnel en Python.

Prérequis

  • Python 3.10 ou supérieur
  • Clé API OpenAI ou modèle local compatible
  • Connaissances de base en LLM et embeddings
  • Environnement virtuel recommandé

Installation des dépendances

terminal
pip install langchain langchain-openai langchain-community chromadb

Cette commande installe LangChain et ChromaDB nécessaires pour construire le pipeline Corrective RAG. Assurez-vous d'utiliser un environnement virtuel propre.

Configuration du LLM et des embeddings

config.py
from langchain_openai import ChatOpenAI, OpenAIEmbeddings

llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
embeddings = OpenAIEmbeddings()

Nous configurons le modèle de langage et les embeddings. Le paramètre temperature=0 garantit des réponses déterministes et reproductibles.

Création du vector store

vectorstore.py
from langchain_community.vectorstores import Chroma
from langchain_core.documents import Document

docs = [
    Document(page_content="Paris est la capitale de la France."),
    Document(page_content="La Tour Eiffel mesure 324 mètres.")
]

vectorstore = Chroma.from_documents(docs, embeddings)

Création d'une base vectorielle simple avec Chroma pour stocker les documents. Ce vectorstore servira de source de récupération dans le pipeline.

Implémentation du critiqueur

critic.py
from langchain_core.prompts import ChatPromptTemplate

critique_prompt = ChatPromptTemplate.from_template(
    "Évalue si ce document répond à la question : {question}\n"
    "Document : {document}\n"
    "Réponds uniquement par OUI ou NON."
)

critic = critique_prompt | llm

Le critiqueur évalue la pertinence de chaque document récupéré. Il renvoie OUI ou NON pour décider si une correction est nécessaire.

Pipeline Corrective RAG complet

corrective_rag.py
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser

retriever = vectorstore.as_retriever(search_kwargs={"k": 3})

def correct_documents(docs, question):
    corrected = []
    for doc in docs:
        result = critic.invoke({"question": question, "document": doc.page_content})
        if "OUI" in result.content.upper():
            corrected.append(doc)
    return corrected

prompt = ChatPromptTemplate.from_template("Réponds à la question en utilisant ces documents : {context}\nQuestion : {question}")

chain = (
    {"context": retriever | (lambda docs: correct_documents(docs, question)), "question": RunnablePassthrough()}
    | prompt
    | llm
    | StrOutputParser()
)

Le pipeline complet récupère les documents, les critique et ne garde que ceux validés. Cette fonction de correction est le cœur de Corrective RAG.

Bonnes pratiques

  • Toujours tester le critiqueur avec des cas limites
  • Limiter le nombre de documents passés au critiqueur pour contrôler les coûts
  • Utiliser un modèle léger pour la critique et un modèle puissant pour la génération finale
  • Logger les décisions du critiqueur pour analyse
  • Ajouter un seuil de similarité minimum avant la critique

Erreurs courantes à éviter

  • Oublier de gérer le cas où aucun document n'est validé par le critiqueur
  • Utiliser la même température pour le critiqueur et le générateur
  • Ne pas tester le pipeline sur des questions hors domaine
  • Ignorer les coûts d'appels LLM supplémentaires générés par la critique

Pour aller plus loin

Explorez les variantes avancées comme Self-RAG et CRAG. Découvrez nos formations Learni pour maîtriser les architectures RAG modernes.