Leçons 1-2 : chunking et embeddings
Le chunking naïf par taille fixe est la cause numéro 1 des mauvais RAG. Préférez un chunking sémantique (paragraphes, sections markdown, structure documentaire) avec chevauchement de 10-15 %.
Sur des documents techniques, ajoutez une couche de metadata (titre du chapitre, hiérarchie, source) — ces métadonnées boostent la récupération hybride (dense + BM25) de 20-30 %.
Côté embeddings : ne changez pas de modèle tous les mois. Cohere multilingual v3 et OpenAI text-embedding-3-large sont solides et stables. Gardez le même modèle pendant toute la durée de vie d'un index pour éviter la réindexation coûteuse.
Leçon 3 : le reranker est non-négociable
Une retrieval à 2 étages (embeddings → top 50, puis reranker cross-encoder → top 5) surpasse toujours une retrieval simple. Coût additionnel marginal, qualité de réponse transformée.
Nous utilisons Cohere Rerank 3 ou BGE-Reranker-v2 auto-hébergé selon le budget. Sur le cas juridique (200 k documents), le reranker a fait passer le recall@5 de 71 % à 89 %.
Astuce coût : pour les requêtes sensibles, vous pouvez sauter le reranker et n'utiliser que les embeddings. Pour les requêtes complexes, les deux étages sont obligatoires.
Leçon 4 : citations obligatoires
Une réponse RAG sans citation n'est pas une réponse RAG. C'est une opinion. Toute sortie doit être sourcée : le modèle est prompté pour citer [doc_id, page, section] à chaque claim.
UX : chaque citation est cliquable et ouvre le document source surligné. C'est ce qui transforme une aide douteuse en outil professionnel — l'utilisateur peut vérifier.
Côté API : exigez du modèle une sortie structurée (JSON avec `answer` + `citations`). OpenAI function calling ou Anthropic tool use le font nativement. La robustesse est totale.
Leçon 5 : eval, eval, eval
Sans dataset d'évaluation, vous êtes aveugle. Avant la moindre mise en production, construisez 200-500 questions de référence avec la réponse attendue (rédigée par un expert métier).
Métriques à suivre : recall@5 (qualité de la retrieval), citation accuracy (les citations sont-elles correctes ?), hallucination rate (claims non sourcés), latence p95.
Toute modification (prompt, modèle, retrieval) passe par une évaluation automatique sur ce dataset. En dessous du seuil, on ne déploie pas. Au-dessus, on compare A/B en production.
Outils : Langfuse pour le tracing, Ragas pour les métriques automatiques, Arize pour le monitoring. Le combo est redoutable.
Leçon 6 : coût, cache, fallback
Le coût d'une requête RAG varie de 0,02 € (GPT-4o-mini + embeddings) à 0,40 € (Claude Opus + reranker). Sur des milliers de requêtes/jour, l'écart devient important.
Cache sémantique : si une requête est similaire (cosinus > 0,95) à une requête récente, servez la réponse cachée. Réduit typiquement 30-40 % du volume modèle.
Fallback gradé : pour les requêtes simples (recherche factuelle), utilisez GPT-4o-mini. Pour les requêtes complexes (analyse, synthèse), basculez vers Claude Sonnet. Pour les cas premium, Opus. Réduction de coût de 60 % sans perte de qualité perçue.
Leçon 7 : la gouvernance avant tout
RGPD : analysez quelles données entrent dans le index vectoriel. Si PII : minimisation, anonymisation, base légale, droit d'effacement (réindexation).
Journaux : tracez chaque requête (utilisateur, prompt, réponse, modèle, latence, coût). Anonymisez le prompt après coup si PII. Conservez 12 mois.
Audit : tout accès à un document sensible est tracé. Tout export de réponse est tracé. Un RAG n'est pas un ChatGPT — c'est un système d'information, pas un jouet.