## Les rouages du RAG

Construisons les trois briques techniques de l'indexation.

### 1. Le chunking (découpage)
On ne stocke pas un document entier d'un bloc : on le **découpe en fragments** (chunks) de
taille raisonnable (≈ 256–512 tokens). Pourquoi ? Pour ne récupérer que les **passages
pertinents**, pas tout un PDF. La qualité du découpage est **décisive** : couper au milieu
d'une idée dégrade tout. On respecte les **frontières naturelles** (titres, paragraphes,
articles).

### 2. Les embeddings
Chaque fragment est transformé en **vecteur** (sa signature de sens) par un **modèle
d'embedding**. Deux fragments proches en sens → vecteurs proches. La question de
l'utilisateur est elle aussi transformée en vecteur.

### 3. La base vectorielle
Elle **stocke** les vecteurs et retrouve les **plus proches** d'une question (recherche par
similarité). Exemples : **pgvector** (extension PostgreSQL), **Qdrant**, **Chroma** (simple,
idéal pour débuter). On y attache aussi des **métadonnées** (source, date, droits).

### Le flux complet
```
Document → chunking → embeddings → base vectorielle   (indexation)
Question → embedding → recherche → top passages → LLM (interrogation)
```

> **📌 Cas concret — l'impact du chunking**
> Premier prototype RAG sur un règlement : découpage « tous les 1000 caractères ». Les
> réponses citent des bouts de phrases incohérents. On repasse en découpage **par article**
> (frontière naturelle) : les réponses deviennent **précises et citables**. Même base, même
> modèle — seul le **chunking** a changé. C'est le réglage à soigner en priorité.

> **À retenir** — Indexation = **chunking** (découper proprement) → **embeddings** (vecteurs
> de sens) → **base vectorielle** (recherche par similarité). Le **chunking** est le réglage
> le plus rentable du RAG.