Recherche et récupération (RAG)
Sur cette page
Cette dernière leçon part de la très courte annexe du tutoriel, qui renvoie à un carnet de recherche Wikipédia, et développe ce qu’un prompt de génération augmentée par récupération met en jeu : des documents trouvés hors du modèle, injectés dans le prompt avec les techniques du cours. Elle se termine par le quiz de la formation.
Le principe
L’annexe du tutoriel tient en un paragraphe : Claude peut chercher dans Wikipédia pour vous, retrouver des articles, puis les résumer, les synthétiser, écrire à partir d’eux ; et pas seulement Wikipédia, vos propres documents aussi, en texte ou dans une base vectorielle. Elle renvoie aux exemples RAG du Cookbook et à la documentation sur les embeddings. Le mécanisme, Retrieval-Augmented Generation, combine la récupération de documents pertinents et la génération : au lieu de compter sur les connaissances internes de Claude, on lui fournit, au moment de la question, les documents qui s’y rapportent. Trois raisons : la fraîcheur (une date de coupure des connaissances, des informations récentes à injecter sans réentraîner), l’exactitude (des sources à citer et à vérifier), et les domaines spécialisés (une base interne, une documentation, des données propriétaires qui n’ont jamais figuré dans l’entraînement).
L’enchaînement
L’utilisateur pose une question ; votre système cherche les documents pertinents (base vectorielle, moteur de recherche) ; les documents trouvés sont injectés dans le prompt ; Claude répond à partir d’eux. L’étape de recherche se passe entièrement hors du modèle : la qualité de la réponse se joue largement avant que le prompt ne soit écrit. Un système complet découpe les documents en morceaux, calcule un embedding par morceau (une représentation numérique du sens : deux textes proches ont des embeddings proches), les stocke dans une base vectorielle, retrouve les morceaux les plus proches de la question et les injecte. C’est ce qui retrouve un passage sur la « résiliation anticipée » à partir de « comment arrêter mon contrat avant la fin ».
documents = search_knowledge_base(user_query) # votre recherche, hors du modèle
prompt = f"""<documents>
{documents}
</documents>
<question>
{user_query}
</question>
Answer the question using only the documents above. First quote the relevant passages inside <quotes> tags, then answer inside <answer> tags. If the documents do not contain the answer, say so."""
response = client.messages.create(model="claude-opus-5-5", max_tokens=2000, messages=[{"role": "user", "content": prompt}])
Vous reconnaissez la grammaire du cours : documents en tête et balisés, question après, citations avant la réponse, porte de sortie. La documentation actuelle recommande d’envelopper chaque document dans <document> avec <document_content> et <source>, de placer la question en fin de prompt (jusqu’à 30 % de qualité en plus sur les entrées longues), et de faire citer avant de répondre. Deux outils serveur peuvent aussi alimenter le contexte sans infrastructure de votre côté : la recherche web et la récupération de pages (web_search, web_fetch), déclarés dans tools ; le cours sur le tool use les couvre. Limites à connaître : un excellent modèle ne rattrape pas une mauvaise recherche, il rédige une mauvaise réponse avec élégance ; trop de documents diluent la pertinence et coûtent des jetons ; mieux chercher vaut mieux que fournir plus.
À vous de jouer
Un RAG de poche. Prenez dix paragraphes d’une documentation que vous connaissez, écrivez une fonction de recherche naïve par mots-clés, et le prompt ci-dessus. Posez cinq questions dont la réponse est dans les paragraphes, cinq dont elle n’y est pas : comptez les réponses justes, les refus justes, et les inventions. Puis remplacez la recherche par mots-clés par une recherche par similarité et recomptez.
Quiz de fin de formation
1. Quels sont les trois paramètres obligatoires d'un appel à l'API Messages, et que vaut `max_tokens` ?
model, max_tokens et messages. max_tokens est un plafond brutal de génération, pas une consigne de longueur : la longueur voulue se dit dans le prompt.
2. Pourquoi « Yo Claude » devient-il « Dear Claude », et comment l'éviter ?
Parce que, une fois les données substituées, rien ne distingue le courriel de la consigne : Claude lit l’interpellation comme une partie du courriel à réécrire. Des balises XML autour de l’entrée délimitent où elle commence et finit.
3. Que remplace le préremplissage du tour assistant sur les modèles actuels ?
Une requête terminée par un tour assistant renvoie une erreur 400 depuis la génération 4.6. Pour un contenant de sortie, une consigne de balises ; pour sauter le préambule, une consigne dans le prompt système ; pour du JSON, les sorties structurées.
4. Que reste-t-il de « réfléchir étape par étape » en 2026 ?
Les modèles raisonnent nativement par réflexion adaptative, réglée par effort ; demander d’écrire le raisonnement dans des balises peut être décliné. On balise seulement la réponse finale et l’on préfère une consigne générale à des étapes prescrites.
5. Citez les deux techniques du tutoriel contre les hallucinations.
Donner une porte de sortie (« réponds seulement si tu es certain ») et exiger les citations pertinentes du document avant une réponse fondée sur elles seules. La temperature n’était pas un levier d’exactitude et n’existe plus.
6. Comment un outil est-il déclaré et appelé aujourd'hui ?
Dans le paramètre tools (nom, description, schéma JSON d’entrée) ; Claude répond avec stop_reason: "tool_use" et un bloc tool_use ; votre code exécute la fonction et renvoie un bloc tool_result avec le même identifiant.
Bilan du cours
Structure de l’API, consignes claires, rôle, données balisées, sortie formatée, réflexion, exemples, garde-fous contre l’invention, assemblage en prompts complexes, chaînage, outils, récupération : le tutoriel de 2024 reste une excellente grammaire, à lire avec les repères de 2026 que chaque leçon a donnés. Pour continuer : Prompting en situations réelles applique ces techniques à des prompts de production, Évaluation de prompts apprend à mesurer, L’utilisation d’outils (tool use) détaille les outils.
Sources officielles : 10.3_Appendix_Search & Retrieval.ipynb (anthropics/prompt-eng-interactive-tutorial) · Prompting best practices (documentation Claude : « Long context prompting ») · Tutoriel interactif (page du dépôt)
Points clés à retenir
- Le RAG fournit à Claude, au moment de la question, les documents pertinents trouvés hors du modèle.
- Trois raisons : fraîcheur, exactitude vérifiable, domaines spécialisés.
- Le prompt applique le cours : documents balisés en tête, question en fin, citations avant la réponse, porte de sortie.
- La qualité se joue dans la recherche : mieux chercher plutôt que fournir plus.
- La recherche web et la récupération de pages existent aussi comme outils serveur, sans infrastructure à construire.