Comment j’ai construit un RAG à l’échelle d’un groupe industriel
Contexte & contraintes
Corpus documentaire d'entreprise, multilingue, réparti sur des sources héritées. Gouvernance forte : un point d'entrée unique, des accès cloisonnés. Utilisateurs non techniques, qui jugent une réponse en trois secondes.
Les options envisagées
- Une offre RAG clés en main : rapide à démarrer, mais son découpage et son stockage s'imposent à vous
- Un pipeline interne complet — embeddings, indexation, base vectorielle, reranking : plus coûteux, entièrement maîtrisé
- Recherche plein texte seule : simple, mais inopérante sur les reformulations métier
La décision
Pipeline interne complet, avec reranking devant la génération
MotifSur de la documentation normative, le découpage est là où se joue la justesse — le déléguer, c'est déléguer la qualité des réponses.
Conséquence acceptéeUn vrai chantier d'ingénierie, et la responsabilité pleine de la qualité de bout en bout.
L'implémentation
# découpage : on coupe sur la structure du document, pas tous les N caractères
chunks = split_by_headings(doc, max_tokens=700, overlap=80)
for c in chunks:
c.meta |= {"doc_id": doc.id, "rev": doc.revision, "lang": doc.lang}
await store.upsert(embed(chunks)) # index vectoriel + filtre sur la révision Ce qui a cassé
Le premier découpage à taille fixe coupait les tableaux de procédure en deux : le modèle répondait avec la moitié d'un tableau — faux, mais bien formé. Deuxième incident : deux révisions d'un même document coexistaient dans l'index et le système citait l'ancienne. La révision est devenue une métadonnée filtrante, pas un champ d'affichage.
Le résultat
- Réponses systématiquement sourcées, avec lien vers le document et sa révision
- Taux de non-réponse assumé et mesuré plutôt que masqué
Ce que je referais autrement
Je poserais l'évaluation avant l'ingestion. Le jeu de questions de référence a été construit après coup, ce qui a rendu les premières semaines d'optimisation invérifiables : on améliorait au ressenti.
L'univers étendu
Questions liées
Comment as-tu construit le pipeline RAG chez Alstom, de bout en bout ?
De zéro : ingestion depuis des sources documentaires héritées, découpage sur la structure du document plutôt qu'à taille fixe, embeddings, indexation vectorielle, reranking, puis génération avec citation obligatoire. Le point qui a le plus compté n'est pas le modèle, c'est la métadonnée de révision : deux versions d'une même procédure coexistaient dans l'index et le système citait l'ancienne. La révision est devenue un filtre, pas un champ d'affichage.
Quelle est ta plus grosse erreur professionnelle ?
Avoir optimisé un pipeline RAG plusieurs semaines sans jeu de questions de référence. Les gains étaient réels par moments, invérifiables tout le temps, et impossibles à défendre en comité. Depuis, le jeu d'évaluation est le premier livrable, avant l'ingestion.
SourcesÉvaluer un RAGRAG e2e