03-comment-je-travaille/tutos/ia/rag-bout-en-bout.md

Tuto — RAG de bout en bout

Public visé : développeur qui veut relier toutes les briques du RAG en un flux qui marche. Objectif : assembler ingestion → embeddings → index → récupération → génération pour répondre à une question avec des sources. C'est la mise en œuvre conjointe du cœur (specs/ia-coeur.md) et du chatbot (specs/ia-chatbot.md).

Concept : Embeddings et recherche sémantique et RAG (fiche 4.3).


Vue d'ensemble

INDEXATION (une fois, hors-ligne)
  doc .md → découpage → embeddings (passage) → index sqlite-vec

REQUĂŠTE (Ă  chaque question)
  question → embedding (query) → kNN → passages + sources
           → prompt (system + passages + question) → Claude → réponse + citations

Étape 1 — Indexer la doc

Voir les tutos dédiés :

Ă€ la fin, on a un fichier index.sqlite avec les passages et leurs vecteurs.


Étape 2 — Récupérer (retrieval)

1. Embedder la question (type=query) via le microservice.
2. Recherche kNN dans sqlite-vec → top-k chunk_id + distance.
3. Joindre la table chunk → passages + sources (path, section).

C'est le rôle du RetrievalService du cœur. Astuce qualité : filtrer les passages dont le score est sous un seuil (sinon on injecte du bruit).


Étape 3 — Construire le prompt

[system]
Tu es un assistant documentaire. Réponds UNIQUEMENT à partir du contexte.
Cite tes sources. Si le contexte ne contient pas la réponse, dis-le.

[contexte]
Passage 1 (source: specs/ia-coeur.md#retrieval) : "..."
Passage 2 (source: agents/.../2-6...md) : "..."

[user]
{question de l'utilisateur}

Le bloc system + contexte est stable → candidat au prompt caching pour réduire le coût.


Étape 4 — Générer avec Claude

  • Appeler l'API avec tempĂ©rature basse (factualitĂ©) et une borne de tokens.
  • RĂ©cupĂ©rer la rĂ©ponse et conserver la liste des sources des passages injectĂ©s.

Étape 5 — Restituer avec citations

La réponse est affichée avec ses sources cliquables (chemin + section). Une question hors doc → message « pas dans la documentation » (garde-fou, cf. fiche 6.1).


Erreurs fréquentes

  • Chunks trop gros → vecteurs « flous », mauvais rappel. Calibrer taille/chevauchement.
  • Pas de seuil de score → l'IA reçoit des passages hors-sujet et peut broder.
  • Oublier les prĂ©fixes e5 (query: / passage:) → qualitĂ© dĂ©gradĂ©e.
  • Citer sans vĂ©rifier → toujours restituer les sources rĂ©ellement utilisĂ©es.

Pour aller plus loin

Assistant documentaire

Posez une question sur la documentation. Les réponses citent leurs sources — un clic ouvre le document à gauche.

Loading…
Loading the web debug toolbar…
Attempt #