←
ENFR

Veritas·RAG

Framework open source d’évaluation RAG : trois stratégies de retrieval sur un même corpus, notées par un LLM juge, avec détection de régressions entre les exécutions.

3stratégies de retrieval
1 600+tests automatisés
CIlint, typage, tests, audits, Docker
Voir sur GitHub →
Le conseiller pose les questions qui peuvent changer la recommandation : type de questions, latence, volume, données nommées, hébergement.
1. Quelques questions sur le projet
Veritas·RAG recommande le RAG classique et explique pourquoi, à partir du benchmark de référence.
2. La stratégie recommandée, avec ses raisons

Le problème : évaluer un RAG en production

Un système RAG est difficile à évaluer : une optimisation qui semble meilleure en test peut dégrader les réponses sur de vraies questions. La plupart des équipes évaluent à la main, ou avec des métriques de précision qui ignorent la latence, le coût en tokens et les hallucinations.

La solution : un pipeline d’évaluation

RAG evaluation pipeline Questions enter the pipeline, are embedded and retrieved from the vector store, reranked, then answered by the LLM. Answers are scored by an LLM judge against a golden dataset, and a regression detector flags when a change degrades results. RAG Evaluation Pipeline RAG Input Prompts & Queries LLM Generation Outputs from Multiple Strategies Metric Evaluation Quality, Latency, Tokens Regression Detection Run vs. run Score deltas Report Per-strategy comparison 3 Retrieval Strategies Compared Classic Hybrid: dense + BM25 RRF + cross-encoder Rerank, BM25 fallback reported in each answer Baseline Graph Entity triples Graph walk Relationship questions Lowest latency Same recall as classic Agentic Claude + Tool Use Iterative Retrieval Tool loop 1.9× tokens Can decline to answer Evaluation Metrics Faithfulness & Relevance Latency per question Tokens Recall, MRR

Fonctionnement

Couche ingestion : parsers PDF, DOCX, PPTX, HTML, e-mail et documents scannés (OCR), chunking qui coupe d’abord aux titres et ne coupe jamais une ligne de tableau, métadonnées de droits d’accès sur chaque chunk. Recharger un fichier inchangé est idempotent.

Couche retrieval : trois stratégies interchangeables.

Évaluation

Conçu comme un produit

Résultats : baseline mesurée

34 questions de référence sur le corpus fourni (41 documents, 107 chunks), mesurées le 08/09/2026 sur le pipeline dense-only, juste après la correction du reranker (voir ci-dessous). Un nouveau baseline sur le pipeline hybride est en cours.

MétriqueClassiqueGrapheAgentique
Rappel du retrieval0,7650,7650,544
MRR0,5540,5540,356
Fidélité0,5070,5190,249
Pertinence de la réponse0,8620,8540,521
Latence par question21,7 s15,2 s18,0 s
Tokens (total)389k397k727k

Ce que l’évaluation a révélé

Les premiers scores du LLM juge étaient bas alors que tout répondait HTTP 200. En remontant le pipeline, j’ai trouvé un identifiant de modèle erroné : le cross-encoder ne se chargeait jamais, et le système retombait silencieusement sur BM25. Dans le même passage : un index qui contenait deux fois le corpus. Après correction, chaque réponse indique le reranker réellement utilisé, et le modèle fait partie de la configuration comparée par la détection de régressions, pour qu’un run dégradé ne soit jamais comparé à un run sain.

Stack technique

QdrantBM25Langfuse