Aller au contenu principal
Leçon 55 sur 95 · Construire avec l'API Claude

Quiz : génération augmentée par récupération (RAG)

Leçon 55 sur 95 Mis à jour le 5 novembre 2026 Développeur
Sur cette page
  1. À vous de jouer
  2. Points clés à retenir

Dix questions pour vérifier les acquis de la section, du choix de la RAG à la récupération contextuelle. Le cours officiel n’a plus de quiz pour cette section ; celui-ci est propre à l’adaptation Corsen. Répondez avant d’ouvrir chaque réponse.

La section RAG en quatre gestes Quatre tuiles : découper, retrouver (vecteurs et BM25), fusionner et reclasser, contextualiser. RÉCAPITULATIF La section RAG en quatre gestes 01 Découper Des morceaux adaptés aux documents : taille, structure ou phrases. Chevauchement 02 Retrouver Le sens par les vecteurs, les mots par BM25. input_type 03 Fusionner, reclasser Les rangs fusionnés, puis les candidats relus par un reclasseur. RRF rerank-3 04 Contextualiser Une phrase qui situe chaque morceau, avec le document en cache. cache_control Et avant tout : si la base tient dans le prompt, commencer simple, avec la mise en cache.
Récapitulatif de la section « RAG » de l'adaptation Corsen.

Question 1 : RAG ou tout dans le prompt

Votre documentation interne fait 300 pages et change une fois par trimestre. Faut-il une RAG ?

Voir la réponse

Pas forcément. Anthropic rappelle que la solution la plus simple est parfois la meilleure : si la base tient confortablement dans le prompt, on peut l’y mettre en entier, et la mise en cache des prompts rend l’approche rapide et économique. La RAG s’impose quand la base est trop volumineuse, trop changeante, ou quand le volume de questions rend chaque jeton coûteux. Gardez aussi en tête le context rot : la précision baisse quand le contexte s’allonge (leçon 46).

Question 2 : choisir un découpage

Vous indexez du code et des PDF sans structure fiable. Quelle stratégie de découpage choisir ?

Voir la réponse

Le découpage par taille, avec chevauchement : il fonctionne avec tout type de contenu, y compris le code, et ne casse jamais le pipeline. Vérifiez que le chevauchement reste inférieur à la taille des morceaux, sans quoi la boucle ne s’arrête pas (leçon 47).

Question 3 : input_type

Pourquoi vectoriser les morceaux avec input_type="document" et la question avec input_type="query" ?

Voir la réponse

Parce que Voyage ajoute au texte une consigne adaptée à son rôle avant de le vectoriser, ce qui améliore la qualité de la recherche. La documentation demande de toujours préciser input_type pour une tâche de recherche (leçon 48).

Question 4 : lire une distance

Un index renvoie deux morceaux, avec des distances cosinus de 0,71 et 0,72. Lequel est le plus proche de la question ?

Voir la réponse

Le premier, à 0,71 : une distance cosinus vaut 1 moins la similarité, donc la plus petite désigne le morceau le plus proche. On trie les distances par ordre croissant (leçons 49 et 50).

Question 5 : ce que l’on stocke

Pourquoi stocker le texte de chaque morceau à côté de son vecteur ?

Voir la réponse

Parce qu’un embedding permet de mesurer une proximité, pas de retrouver le texte dont il vient. Sans le texte, ou au moins une référence vers lui, la recherche saurait quel morceau est le plus proche sans pouvoir le donner à Claude (leçon 50).

Question 6 : sémantique ou lexicale

Pour « Que s’est-il passé avec INC-2023-Q4-011 ? », quelle recherche est la plus sûre, et pourquoi ?

Voir la réponse

BM25, la recherche lexicale : elle donne un poids élevé aux termes rares, comme un identifiant, et ne renvoie que les documents qui le contiennent. La recherche sémantique peut ramener un passage de sens voisin qui ne mentionne pas l’incident (leçon 51).

Question 7 : fusionner deux classements

Pourquoi la fusion des rangs réciproques ignore-t-elle les scores des index ?

Voir la réponse

Parce qu’une distance cosinus et un score BM25 n’ont ni la même échelle ni le même sens de lecture : les additionner n’aurait pas de sens. La fusion ne retient que le rang de chaque document dans chaque classement, et additionne 1 / (k + rang), avec k = 60 le plus souvent (leçon 52).

Question 8 : reclasser avec Claude

Quelles sont les deux précautions qui rendent efficace un reclassement par Claude ?

Voir la réponse

Attribuer un identifiant court à chaque candidat, pour que Claude renvoie des identifiants au lieu de recopier des passages ; et demander une sortie structurée, qui garantit la liste {"document_ids": [...]}. Un reclasseur dédié, comme rerank-3 de Voyage, est l’autre option (leçon 53).

Question 9 : la récupération contextuelle

Que fait la récupération contextuelle, et quels gains Anthropic a-t-il mesurés ?

Voir la réponse

Avant l’indexation, Claude écrit pour chaque morceau une courte phrase qui le situe dans son document, et cette phrase est ajoutée devant le morceau, dans l’index vectoriel comme dans BM25. Anthropic a mesuré 35 % d’échecs de récupération en moins avec les embeddings contextuels, 49 % en ajoutant BM25 contextuel, et 67 % avec un reclassement (leçon 54).

Question 10 : maîtriser le coût

Comment éviter de payer le document entier pour chaque morceau à contextualiser ?

Voir la réponse

Avec la mise en cache des prompts : le document est placé dans un bloc marqué cache_control, écrit une fois, puis relu à une fraction du prix pour chaque morceau. Le préfixe doit dépasser le seuil du modèle, 512 jetons sur les modèles actuels. Les embeddings contextualisés voyage-context-4 sont une alternative sans génération (leçon 54).

À vous de jouer

Assembler le pipeline. Réunissez dans un seul script le découpage, les deux index, le Retriever, le reclassement et la récupération contextuelle. Sur dix questions dont vous connaissez la réponse, mesurez à chaque étape ajoutée combien de fois le bon passage figure dans les trois premiers résultats.

Sources officielles : Building with the Claude API (Claude Academy) · Contextual Retrieval (Anthropic) · Embeddings (documentation Claude)

Points clés à retenir

  • Commencer simple : tout dans le prompt avec la mise en cache, tant que la base s’y prête.
  • Découper, vectoriser avec le bon input_type, stocker vecteurs et textes.
  • Combiner recherche sémantique et BM25, fusionner par les rangs.
  • Reclasser les candidats, puis contextualiser les morceaux pour les meilleurs résultats.