Le Rapporteur: une IA juridique de confiance qui vérifie, et refuse d'halluciner

Numéro de table à l'Hôtel de Lassay
3
Ce contenu est contributif, il n'est pas rédigé par l'Assemblée nationale.
Le contenu de cette page est écrit par les contributeurs du projet depuis le dépôt de code.
À propos du défi
Un assistant juridique pour les citoyens qui ne fait confiance à aucun modèle : chaque article de loi cité est vérifié dans les sources officielles (codes consolidés / Légifrance), et à défaut de source fiable, l'assistant refuse plutôt que d'inventer. Souverain et frugal : le même pipeline tourne d'un cloud français à un simple MacBook.
Le problème. Les assistants à base de LLM citent des articles de loi avec aplomb, souvent faux. Un mauvais numéro d'article n'est pas une imprécision : il envoie le citoyen vers une norme qui ne le concerne pas. La littérature rapporte 58 à 88 % d'hallucination sur les requêtes juridiques.
Notre réponse. question → génération LLM → extraction des citations → vérification dans les codes consolidés → réponse sourcée (lien Légifrance) OU refus explicite. Design fail-closed : en cas de doute, on refuse.
La vérification, en 4 couches (le cœur du projet) :
- Index sur le numéro d'article (recherche efficace des candidats).
- Match exact du code par son identifiant stable Légifrance (CID), et non par simple
string.contains— un « article 9 » existe dans des dizaines de codes. - Pertinence ancrée par un LLM : un vérificateur lit le texte réel de l'article (récupéré dans la base) et juge s'il soutient la question. C'est ce qui distingue un article réel mais hors-sujet (piège classique : citer l'article de définition au lieu de l'article de fond) d'une vraie source.
- Refus si l'existence ou la pertinence échoue.
Garanties exécutables. Les invariants de confiance (zéro citation inexistante présentée ; refus si non vérifiable ; chaque citation renvoie à Légifrance) sont encodés dans une fonction unique utilisée au runtime, dans les tests (Gherkin, lisibles par un juriste) et dans l'interface. La confiance ne se décrète pas : elle s'exécute et se teste.
Ce que notre benchmark révèle (et pourquoi ça compte). Sur une étude de citations juridiques, la vérification d'existence seule laisse passer la majorité des erreurs (des articles réels mais hors-sujet, crédibilisés par un vrai lien). Il faut vérifier la pertinence. Et surtout : le petit modèle qu'on voudrait pour une inférence locale et souveraine hallucine le plus — donc la vérification n'est pas optionnelle, elle est ce qui rend une IA juridique frugale digne de confiance.
Passage à l'échelle du benchmark. Canutes contient 292 746 questions parlementaires du Sénat, et les questions écrites/orales de l'AN au Gouvernement figurent parmi les ressources : les réponses ministérielles citent les textes applicables, fournissant des paires question → articles de référence vérifiables — la voie pour étendre notre benchmark à n ≥ 100.
Souveraineté & frugalité. La couche de vérification est agnostique au modèle et au matériel. Le même pipeline tourne sur un cloud souverain français (Mistral La Plateforme), 100 % en local sur un MacBook (Apple Silicon, sans NVIDIA) et sur des accélérateurs d'inférence dédiés — en changeant une seule variable d'environnement. On expose aussi un serveur MCP (repondrequestion, verifierarticle) : notre vérification est réutilisable par tout l'écosystème.
Galerie d'images
Documents du défi
Informations du défi
Livrables du défi
Ressources utilisées
Codes, lois et règlements consolidés Premier ministreQuestions orales et écrites du Sénat au Gouvernement SénatBase de données unifiée Parlement / Législation / Service Public Assemblée nationale & communautéServeur MCP - Accès unifié Parlement / Législation / Service Public Assemblée nationale & communautéAPI - Accès unifié Parlement / Législation / Service Public Assemblée nationale & communauté