Aller au contenu
100% exécutable hors-ligne
v1.0
Réserver un auditAudit

Évaluation & Ancrage Strict Anti-Hallucination (`is_grounded`)

L’hallucination est le principal frein au déploiement de l’IA générative dans les métiers réglementés (droit, médecine, finance).

Ce module explique le fonctionnement des garde-fous d’ancrage strict (Strict Citation Guardrails) dans Yevi Core v1.0 (Licence MIT) et comment évaluer la fiabilité des réponses générées.


1. Mécanisme de Citation et Vérification d’Ancrage

Section intitulée « 1. Mécanisme de Citation et Vérification d’Ancrage »
graph TD
Prompt["System Prompt + Chunks de Contexte [doc#0], [doc#1]"] --> LLM["Inférence LLM (Ollama / vLLM)"]
LLM --> RawOutput["Réponse Brute avec Balises de Citations"]
RawOutput --> RegexParser["Parsing Regex des Balises [[doc#idx]]"]
RegexParser --> Check["Vérification des Chunks Cités vs Récupérés"]
Check -->|Au moins 1 citation valide| GroundedTrue["is_grounded = True (Réponse Validée)"]
Check -->|Aucune citation vérifiée| GroundedFalse["is_grounded = False + Avertissement Opposable"]

Le prompt injecte des consignes strictes pour forcer l’usage des balises d’ancrage :

Vous êtes Yevi, un assistant RAG souverain et rigoureux.
Répondez à la question UNIQUEMENT à partir des passages de contexte fournis ci-dessous.
Chaque affirmation doit impérativement être suivie de sa citation exacte sous le format [doc_id#chunk_index].
Si le contexte ne contient pas l'information nécessaire, répondez : "Aucune information pertinente n'a été trouvée dans les documents."
Contexte :
[contrat_01#0] Article 4 : La durée de confidentialité est fixée à 5 ans.
[contrat_01#1] Article 5 : Les litiges relèvent du Tribunal de Commerce de Paris.
Question : Quelle est la durée de confidentialité ?

3. Automatisation des Tests d’Évaluation avec Pytest

Section intitulée « 3. Automatisation des Tests d’Évaluation avec Pytest »

Dans la suite de tests tests/test_pipeline.py, l’ancrage est vérifié automatiquement avant toute mise en production :

def test_rag_pipeline_strict_citations():
# Test d'ancrage strict sur corpus de démonstration
pipeline = RagPipeline(store=store, llm=DummyProvider(), strict_citations=True)
ans = pipeline.answer("Quelle est la durée de confidentialité ?", domain="legal")
assert ans.is_grounded is True
assert len(ans.cited_chunks) > 0

Audit gratuit

Réservez votre audit de souveraineté

30 minutes pour évaluer votre exposition aux fuites de données vers des API externes.

Réserver mon audit gratuit
Projet IA Souveraine ?Audit Gratuit ➔