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

Le flux RAG complet

Leçon 49 sur 95 Mis à jour le 5 novembre 2026 Développeur
Sur cette page
  1. Étape 1 : découper le texte source
  2. Étape 2 : générer les embeddings
  3. Étape 3 : stocker dans une base vectorielle
  4. Étape 4 : vectoriser la question
  5. Étape 5 : chercher les vecteurs les plus proches
  6. Étape 6 : construire le prompt final
  7. À vous de jouer
  8. Points clés à retenir

Découpage, embeddings : on a les pièces. Cette leçon les assemble sur un exemple volontairement minuscule, pour suivre chaque nombre d’un bout à l’autre du pipeline, de la préparation du document jusqu’au prompt envoyé à Claude.

Le flux RAG, nombre par nombre Frise à six jalons : découper deux sections, les vectoriser, stocker vecteurs et textes, vectoriser la question, chercher (similarité 0,98 contre 0,43), construire le prompt avec la section 2. FLUX COMPLET Le flux RAG, nombre par nombre 1 Découper deux sections 2 Vectoriser [0.944, 0.331] et [0.295, 0.955] 3 Stocker vecteurs et textes 4 Question [0.112, 0.994] 5 Chercher 0,98 contre 0,43 6 Prompt question et section 2 Les étapes 1 à 3 se font une fois, à l'avance ; les étapes 4 à 6, à chaque question.
D'après la leçon « The full RAG flow » (Claude Academy, Building with the Claude API).

Étape 1 : découper le texte source

Deux sections suffisent pour l’exemple :

  • Section 1, recherche médicale : « Cette année a vu des progrès importants dans notre compréhension de XDR-47, un “bug” que nous n’avions jamais rencontré. »
  • Section 2, ingénierie logicielle : « Cette division a consacré un effort important à l’étude de divers vecteurs d’infection dans nos systèmes distribués. »

Les deux sections emploient un mot de l’autre domaine : « bug » côté médical, « infection » côté logiciel. C’est ce qui rend l’exemple intéressant.

Étape 2 : générer les embeddings

Imaginons un modèle d’embedding idéal qui renverrait seulement deux nombres, dont on connaîtrait le sens : le premier mesure à quel point le texte parle de médecine, le second à quel point il parle de logiciel.

  • Section médicale : [0.97, 0.34], très médicale, un peu logicielle à cause de « bug ».
  • Section logicielle : [0.30, 0.97], très logicielle, un peu médicale à cause de « infection ».

L’API normalise ensuite chaque vecteur pour que sa longueur vaille 1. On obtient [0.944, 0.331] et [0.295, 0.955]. Sur un graphique, ces deux points se placent sur un cercle de rayon 1.

Étape 3 : stocker dans une base vectorielle

On range les vecteurs dans une base de données vectorielle, conçue pour stocker des listes de nombres et retrouver vite les plus proches d’un vecteur donné. Tout ce qui précède est de la préparation, faite une fois, à l’avance. Le système attend maintenant une question.

Étape 4 : vectoriser la question

L’utilisateur demande : « Je m’intéresse à l’entreprise. En particulier, qu’a fait le département d’ingénierie logicielle cette année ? ». La question passe par le même modèle d’embedding et donne [0.1, 0.89] : peu de médecine, beaucoup de logiciel. Une fois normalisée : [0.112, 0.994].

Étape 5 : chercher les vecteurs les plus proches

La base vectorielle compare le vecteur de la question à ceux qu’elle stocke, avec la similarité cosinus : le cosinus de l’angle entre deux vecteurs.

ValeurSignification
Proche de 1Les textes ont un sens très proche
Autour de 0Les vecteurs sont perpendiculaires : aucun rapport
Proche de -1Les sens sont opposés

Pour deux vecteurs normalisés, la similarité cosinus est simplement leur produit scalaire :

ComparaisonCalculSimilaritéDistance cosinus
Question et section logicielle0,112 × 0,295 + 0,994 × 0,9550,980,02
Question et section médicale0,112 × 0,944 + 0,994 × 0,3310,430,57

La section logicielle l’emporte nettement. Le cours officiel affiche 0,983 et 0,398 ; le calcul à partir de ses propres vecteurs donne 0,982 et 0,434 avec les valeurs non arrondies. L’écart sur la section médicale ne change pas la conclusion.

Beaucoup de bases vectorielles parlent de distance cosinus, qui vaut 1 moins la similarité. Le sens de lecture s’inverse : une distance proche de 0 signifie une forte proximité, et on trie par distance croissante.

Étape 6 : construire le prompt final

On place la question et le morceau retenu dans le prompt :

Réponds à la question de l'utilisateur sur le rapport.

<user_question>
Qu'a fait le département d'ingénierie logicielle cette année ?
</user_question>

<report>
## Section 2 : Ingénierie logicielle
Cette division a consacré un effort important à l'étude de divers vecteurs d'infection dans nos systèmes distribués.
</report>

Claude répond à partir de ce seul passage, le plus pertinent pour la question. C’est tout le flux RAG : préparer et vectoriser les morceaux une fois, puis, à chaque question, vectoriser la question, retrouver les morceaux les plus proches et les donner à Claude.

À vous de jouer

Refaire le calcul. Reprenez les vecteurs bruts de l’exemple, normalisez-les en divisant chaque nombre par la longueur du vecteur (la racine carrée de la somme des carrés), puis calculez les deux similarités. Changez ensuite la question en « Quels progrès médicaux cette année ? », choisissez son vecteur, et vérifiez que la section médicale passe en tête.

Sources officielles : The full RAG flow (Claude Academy) · Embeddings (documentation Claude : vecteurs normalisés, produit scalaire et cosinus)

Points clés à retenir

  • Préparation, une fois : découper, vectoriser, stocker les vecteurs avec leurs textes.
  • À chaque question : vectoriser la question avec le même modèle, chercher les plus proches, construire le prompt.
  • La similarité cosinus va de -1 à 1 ; pour des vecteurs normalisés, c’est le produit scalaire.
  • La distance cosinus vaut 1 moins la similarité : la plus petite distance désigne le morceau le plus proche.
  • Dans l’exemple : 0,98 pour la section logicielle, 0,43 pour la section médicale.