## L'ingestion : là où se joue la qualité du RAG

Un RAG (Retrieval-Augmented Generation) ne vaut que ce que vaut sa base documentaire. La
phase d'**ingestion** transforme vos documents bruts en fragments interrogeables. C'est
l'étape la plus sous-estimée — et celle qui décide de la qualité finale.

### Le pipeline d'ingestion, étape par étape

1. **Extraction** — Récupérer le texte depuis PDF, Word, HTML, scans (OCR). Un PDF mal
   extrait (colonnes mélangées, tableaux aplatis) **pollue tout le reste**.
2. **Nettoyage** — Retirer en-têtes/pieds de page répétés, numéros de page, normaliser les
   espaces et les césures.
3. **Découpage (chunking)** — Fractionner en morceaux de taille maîtrisée.
4. **Enrichissement** — Attacher des **métadonnées** : source, date, service émetteur,
   **niveau de confidentialité**, **droits d'accès**. Ces métadonnées serviront à filtrer
   les résultats par utilisateur.

### Le chunking avancé

Un découpage naïf (tous les 500 caractères) coupe au milieu des phrases et détruit le sens.
Les bonnes pratiques :

- **Découpage sémantique** : respecter les frontières naturelles (titres, articles,
  paragraphes). Pour un texte de loi, découper **par article**, pas par nombre de caractères.
- **Chevauchement (overlap)** : 10–20 % de recouvrement entre fragments pour ne pas perdre
  le contexte aux jointures.
- **Taille adaptée au modèle d'embedding** : ni trop gros (dilution du sens), ni trop petit
  (perte de contexte). **256 à 512 tokens** est une fourchette courante.

> **📌 Cas concret — code des marchés publics**
> Une cellule juridique ingère le code des marchés publics pour répondre aux questions des
> agents. Premier essai en découpage « tous les 500 caractères » : l'assistant cite des
> bouts d'articles coupés en plein milieu, et **mélange l'article 12 avec l'alinéa de
> l'article 13**. Réponses fausses. Correctif : **chunking par article** (une frontière =
> un article), avec en métadonnée le numéro d'article et la date de version. Résultat : les
> réponses citent l'article entier, exact, et **traçable**. Même modèle, même base
> vectorielle — seul le chunking a changé.

> **À retenir** — « Garbage in, garbage out » s'applique pleinement. Investir dans
> l'**extraction propre** et le **chunking sémantique** rapporte bien plus que changer de
> LLM. C'est le meilleur retour sur effort d'un projet RAG.