Comment nous avons transformé des PDF juridiques grecs volatiles en un cerveau juridique exploitable
Dans les domaines hautement réglementés comme le conseil fiscal et le droit des sociétés, l'exactitude n'est pas négociable. Le droit fiscal grec change constamment, avec un flux régulier de nouvelles lois, de décrets présidentiels et de circulaires administratives (telles que ΠΟΛ).

Le défi de l'exactitude
Dans les domaines hautement réglementés comme le conseil fiscal et le droit des sociétés, l'exactitude n'est pas négociable. Le droit fiscal grec change constamment, avec un flux régulier de nouvelles lois, de décrets présidentiels et de circulaires administratives.
Pourquoi le RAG standard échoue
Les modèles d'IA standards et les systèmes de génération augmentée par récupération (RAG) typiques échouent parce qu'ils effectuent des recherches basées sur la similitude sémantique. Ils ne peuvent pas déterminer si une exemption fiscale spécifique a été modifiée le mois dernier, suspendue ou entièrement abrogée.
Le graphe déterministe
Pour résoudre ce problème, nous avons conçu un pipeline d'ingestion qui numérise les documents juridiques bruts (gazettes FEK) et les structure dans un graphe de connaissances temporel dans Neo4j, combinant une validation stricte du schéma avec des recherches basées sur les graphes.
Notre approche technique est divisée en dont cinq phases :
Préalable & Détection de mise en page
Avant que tout texte ne soit envoyé à un LLM, le pipeline effectue une analyse structurelle préalable. Il identifie la mise en page globale, extrait les métadonnées (telles que les dates de publication et les numéros de loi) et établit une "ligne d'arrêt" pour empêcher l'analyseur de traiter les annexes non juridiques.
Segmentation tenant compte du contexte
Les documents volumineux sont découpés en segments d'environ 420 lignes. Pour éviter que les articles ne soient coupés en deux, le système analyse les limites et ne divise le texte qu'aux limites logiques des paragraphes ou des listes.
Fenêtre de contexte glissante
Pour chaque segment traité, nous injectons la hiérarchie parente active (par exemple, Livre I -> Partie A -> Chapitre II) dans le prompt. Cela empêche le LLM de perdre son orientation structurelle lors des longs cycles d'ingestion.
Schéma strict et contraintes d'extraction
Pour éviter les hallucinations du modèle, le texte extrait est contraint par des schémas Pydantic stricts. Analyse structurelle : Le système cartographie la loi jusqu'aux unités atomiques : Loi, Article et Paragraphe. Extraction de relations : Le LLM extrait les références, les modifications de texte et les dérogations temporelles, avec de brefs résumés.
Normalisation & Rapprochement des données
Les sorties brutes des LLM sont trop incohérentes pour une injection directe en base de données. Le pipeline exécute une phase de normalisation post-traitement : Standardisation alphanumérique (par exemple, conversion des chiffres grecs/romains en chiffres arabes) et recherche d'acronymes dynamiques (par exemple, résolution de "ΚΦΕ").
Architecture de graphe temporel
Pour représenter l'évolution des lois au fil du temps, l'architecture du graphe sépare les concepts abstraits du texte concret :
Nœuds logiques vs versionnés : Le graphe conserve un "nœud logique" permanent pour une disposition (par exemple, l'article 12). Le texte réel de l'article à un moment donné est stocké dans un "nœud de version" distinct.
Assemblage de la chronologie : Les nœuds de version sont liés chronologiquement à l'aide de liaisons NEXT_VERSION. Une couche de navigation verticale (BELONGS_TO_VERSION) relie directement les versions de paragraphe aux articles parents à l'aide d'une correspondance de plage de dates.
Remplissage des nœuds fantômes : Les références à des lois externes qui n'ont pas encore été ingérées sont modélisées sous forme de "nœuds fantômes". Ceux-ci agissent comme des ancres logiques et sont promus en nœuds actifs lors d'un import ultérieur.
Schéma de nœud de graphe validé
{
"eli_uri": "/eli/gr/law/2016/4412",
"document_type": "law",
"structure": {
"node_type": "logical",
"article": "Article 12",
"timeline": {
"active_version": "v3",
"history": ["v1", "v2", "v3"]
}
},
"temporal": {
"valid_from": "2024-01-01",
"valid_to": null,
"status": "active"
}
}Modifications en attente et validation humaine (Human-in-the-Loop)
File d'attente en attente
Plutôt que de modifier automatiquement la base de données lors de l'importation, les modifications de texte et les suspensions temporelles sont mises en file d'attente.
Interface de révision locale
Une interface de révision locale affiche ces modifications en attente directement depuis Neo4j, permettant une validation humaine.
Proposition de diff déterministe
Le système utilise des modèles de raisonnement pour générer des propositions de remplacement de texte déterministes, affichant des comparaisons côte à côte. Une fois approuvées, les modifications sont validées dans le graphe.
Des structures claires et vérifiables.
En combinant les LLM avec une base de données de graphes déterministe, nous avons créé un environnement où les réponses sont étayées par des structures claires et vérifiables. Nous avons appris que la structuration et la validation des données avant leur entrée dans le graphe ont beaucoup plus de valeur que la tentative de résolution de données désordonnées lors de la récupération.
L'impact opérationnel :
Auparavant, le suivi de la manière dont un simple amendement modifiait une loi fiscale exigeait des équipes juridiques qu'elles passent des milliers d'heures manuelles à assembler la législation passée et présente, juste pour comprendre ce que dit actuellement la loi.
Grâce à ce graphe, les LLM sont désormais capables d'écrire automatiquement une version entièrement codifiée des lois, avec des changements temporels cartographiés pour chaque article. Ce qui était autrefois un goulot d'étranglement opérationnel massif et laborieux est aujourd'hui un cerveau numérique dynamique, mis à jour instantanément.
Vous n'avez pas trouvé la solution exacte dont votre entreprise a besoin ?
We will design a custom pipeline that fits your current setup perfectly.