Créer un système de questions-réponses RAG de bout en bout
Chaîne RetrievalQA, prompts personnalisés, attribution des sources, évaluation de RAG avec RAGAS.
Créer un système de questions-réponses RAG de bout en bout est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Qu’est-ce que RAG ?
La génération augmentée par récupération ancre un LLM dans vos propres données. Au moment de la requête, vous récupérez les segments pertinents d’une base vectorielle et les injectez dans l’invite, afin que le modèle réponde à partir de faits plutôt que de deviner.
Le déroulement de RAG
Chaque requête RAG suit quatre étapes : (1) vectoriser la question, (2) récupérer les segments similaires, (3) les insérer dans l’invite comme contexte, (4) le LLM génère une réponse fondée sur ce contexte.
Transformer une base en outil de récupération
Convertissez votre base vectorielle en outil de récupération avec as_retriever. Le dictionnaire search_kwargs contrôle la récupération, notamment k, le nombre de segments à récupérer pour chaque question.
retriever = db.as_retriever(
search_kwargs={"k": 4}
)Réglage des paramètres de recherche
search_kwargs peut également définir un seuil de pertinence ou des options MMR. Commencez avec k=4 ; augmentez cette valeur si les réponses manquent de contexte, ou diminuez-la pour réduire le coût en jetons et le bruit.
retriever = db.as_retriever(
search_type="similarity_score_threshold",
search_kwargs={"k": 6, "score_threshold": 0.5}
)Chaîne RetrievalQA
La chaîne RetrievalQA relie la récupération et la génération. Créez-la avec from_chain_type en transmettant votre llm et votre retriever. Un seul appel suffit désormais pour répondre aux questions à partir de vos documents.
from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI
qa = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o"),
retriever=retriever
)Type de chaîne : combinaison du contexte
Le paramètre chain_type détermine la manière dont les segments récupérés sont intégrés à l’invite. "stuff" (valeur par défaut) place tous les segments dans une seule invite : c’est simple et optimal lorsqu’ils tiennent dans la fenêtre de contexte. D’autres types, comme "map_reduce", prennent en charge de nombreux segments volumineux.
qa = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=retriever
)Poser une question
Exécutez la chaîne avec invoke en transmettant votre question sous la clé query. La chaîne récupère les segments, construit l’invite et renvoie la réponse fondée sur le contexte.
response = qa.invoke({"query": "What is the refund window?"})
print(response["result"])Renvoyer les documents sources
Définissez return_source_documents=True pour obtenir les segments utilisés pour la réponse. Cela permet d’ajouter des citations et aux utilisateurs de vérifier l’origine de chaque fait, ce qui est essentiel pour établir la confiance.
qa = RetrievalQA.from_chain_type(
llm=llm,
retriever=retriever,
return_source_documents=True
)
resp = qa.invoke({"query": "Refund window?"})
for d in resp["source_documents"]:
print(d.metadata)Pourquoi évaluer RAG ?
RAG peut échouer de deux manières : la récupération renvoie les mauvais segments ou la génération produit des hallucinations malgré de bons segments. Vous avez besoin de métriques pour savoir quelle partie corriger. Examiner les réponses une par une ne passe pas à l’échelle.
Métriques RAGAS
RAGAS est une bibliothèque qui évalue la qualité de RAG. Les principales métriques sont les suivantes : faithfulness (la réponse est étayée par le contexte), answer_relevancy (la réponse traite la question) et context_precision (les segments récupérés sont pertinents).
pip install ragas
from ragas.metrics import faithfulness, answer_relevancy, context_precisionExécuter une évaluation
Constituez un jeu de données comprenant des questions, des réponses générées, des contextes récupérés et des réponses de référence, puis appelez evaluate. Les résultats indiquent s’il faut améliorer la segmentation, la valeur k de la récupération ou l’invite.
from ragas import evaluate
result = evaluate(
dataset,
metrics=[faithfulness, answer_relevancy, context_precision]
)
print(result)Vérification rapide
Vérifiez vos connaissances sur RAG.
Récapitulatif : RAG de bout en bout
Vous avez créé une chaîne de traitement RAG complète : db.as_retriever avec search_kwargs, une chaîne RetrievalQA.from_chain_type utilisant votre llm et votre outil de récupération, ainsi que return_source_documents=True pour les citations. Vous avez également appris à mesurer la qualité avec les métriques RAGAS, telles que la fidélité et la précision du contexte.
Questions Fréquemment Posées
La leçon « Créer un système de questions-réponses RAG de bout en bout » est-elle gratuite ?
Oui — le texte complet de « Créer un système de questions-réponses RAG de bout en bout » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Créer un système de questions-réponses RAG de bout en bout » ?
Chaîne RetrievalQA, prompts personnalisés, attribution des sources, évaluation de RAG avec RAGAS. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Créer un système de questions-réponses RAG de bout en bout » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Architecture de LangChain et LCEL
- Charger, découper et plonger des documents
- Bases vectorielles : Chroma et FAISS
- Créer un système de questions-réponses RAG de bout en bout