Le problème : l'hallucination juridique est un risque déontologique
Un avocat qui s'appuie sur une jurisprudence inventée par un LLM s'expose à une sanction disciplinaire. Aux États-Unis, plusieurs juridictions ont déjà sanctionné des conclusions citant des arrêts qui n'existent pas — générés par ChatGPT sans vérification. En France, le décret du 23 avril 2024 oblige les magistrats à signaler tout usage d'IA dans leurs décisions ; la responsabilité du contenu reste celle du professionnel.
Korpus part d'un constat simple : un outil juridique qui hallucine est un outil dangereux. Notre architecture entière est conçue pour rendre l'hallucination structurellement impossible, pas seulement statistiquement rare.
1. Le sourcing strict : chaque chunk est traçable
Tous les textes ingérés dans Korpus — décisions de justice, doctrine universitaire, codes, conventions — sont chunkés (~512 tokens chacun, avec 50 tokens de chevauchement) et stockés avec :
- Un hash SHA-256 du contenu original (avant normalisation), garantissant qu'on détecte toute altération
- Un hash canonique JSON RFC 8785 du document, permettant de vérifier que les métadonnées (date, juridiction, n° RG) n'ont pas dérivé
- Un lien vers la source officielle (Légifrance, Judilibre, Legilux, Journal de Monaco, BOPA Andorra, CELLAR Eur-Lex) avec son URL canonique
Chaque chunk est associé à son article parent, lui-même rattaché à un LegalSource identifié (legifrance, judilibre, legilux, etc.). Aucun contenu n'entre dans Korpus sans cette traçabilité.
2. La vectorisation sémantique : Voyage AI voyage-3-large
Pour permettre la recherche en langage naturel et le rapprochement de jurisprudences proches, chaque chunk est embeddé par le modèle Voyage AI voyage-3-large (1024 dimensions, indexé pgvector HNSW).
Pourquoi pas OpenAI ada-002 ? Trois raisons :
- Performance domaine juridique : voyage-3-large surclasse les modèles génériques sur les benchmarks juridiques (RAG sur cas pratiques, recall@10).
- Souveraineté : Voyage AI est une société américaine, mais ne réutilise PAS les contenus envoyés pour entraînement (clause contractuelle ZDR).
- Coût maîtrisé : ~0,18$ / million de tokens, vs 0,02$ pour OpenAI text-embedding-3-small. Le surcoût est marginal sur un volume de 6 698 décisions monégasques (test pilote complet à ~12$).
3. La génération avec vérification : chaque affirmation est cosine-vérifiée
C'est ici que Korpus diffère radicalement d'un wrapper LLM classique.
Quand un commentaire de doctrine est généré (par Claude Sonnet 4.5, via OpenRouter), nous ne nous contentons pas du texte produit. Chaque affirmation factuelle (citation d'arrêt, énoncé de règle, qualification juridique) est extraite, puis :
- Re-embeddée indépendamment
- Comparée par cosine similarity aux chunks sources fournis au prompt
- Rejetée si le score est sous un seuil de groundedness (~0.65)
Si une affirmation n'est pas soutenue par une source, elle est automatiquement supprimée du commentaire avant publication. Le résultat est un texte plus court, parfois moins fluide — mais véridique par construction.
4. Le hash canonique : versioning immuable
Chaque commentaire publié reçoit un hash SHA-256 RFC 8785 (canonicalisation JSON) qui identifie une version précise du contenu. Si un mot change, le hash change. L'API et le serveur MCP exposent ce hash dans les métadonnées.
Conséquence concrète : un avocat qui cite « commentaire Korpus version 1.2.3, hash a4f8...c2 » peut prouver dans 5 ans que le contenu cité n'a pas été modifié — Korpus garde l'historique des snapshots.
5. La transparence des limites : ce que Korpus ne fait PAS
Pour rester crédible, nous documentons honnêtement nos limites :
- Pas de prédiction de jugement : la loi française (art. L.111-13 COJ) interdit l'analyse comportementale des magistrats. Korpus ne génère aucune statistique nominative sur un juge identifié.
- Pas de conseil juridique : Korpus produit de la doctrine et de la recherche. La qualification finale d'une situation client reste celle de l'avocat.
- Pas d'auto-prédiction : si une décision n'est pas dans notre corpus (par exemple un arrêt inédit non encore ingéré), Korpus ne l'invente pas. Le système répond explicitement « cette information n'est pas disponible dans le corpus ».
Conclusion : véracité par architecture, pas par espoir
L'hallucination des LLM n'est pas un défaut à corriger ; c'est une caractéristique structurelle qu'il faut contenir par l'architecture du système qui les utilise. Chez Korpus, chaque commentaire de doctrine traverse au moins quatre garde-fous techniques entre le prompt initial et la publication.
Ce n'est pas plus rapide qu'un wrapper ChatGPT. Mais c'est ce qui distingue un outil professionnel d'un gadget.
Pour aller plus loin :