C1 — Règles déterministes
Onze patterns belges
Expressions régulières et dictionnaires calibrés. Onze règles successives détectent les Numéros National (avec validation modulo 97), BCE, IBAN, comptes belges, codes postaux, dates ISO et françaises, téléphones internationaux et nationaux, plaques, parcelles cadastrales CADNET, RPM, dénominations sociales. Faux positifs réduits par filtres contextuels.
C2 — NER bilingue
spaCy français et néerlandais
Reconnaissance d'entités nommées bilingue. Détection des entités contextuelles que les règles ne capturent pas : noms, fonctions, lieux, qualifications juridiques. Confiance par token et seuils d'acceptation calibrés.
C3 — Critic LLM local
Llama exécuté sur le serveur d'inférence
Un modèle linguistique exécuté localement relit la sortie des deux premières couches et signale les fuites résiduelles que ni les règles ni le NER n'ont attrapées. La critique est elle-même tracée — auditable.
Orchestrateur
Pipeline trois couches avec table de réversion RAM
L'orchestrateur compose les trois couches, retient en mémoire vive (pas sur disque) la table de correspondance pseudonyme → identité réelle, et la zéroïse à la fin de la session. La sortie pseudonymisée part au modèle distant ; la réponse est dé-masquée localement avant remise au notaire.
Kill-switch
Mode dégradé propagé jusqu'à l'agent
Si la pipeline détecte une incertitude (couverture incomplète, suspicion de fuite, indisponibilité d'une couche), elle propage un drapeau degraded jusqu'à l'agent. L'agent bascule alors automatiquement sur sensitivity: raw_local_only et refuse toute interaction avec un modèle distant. Le rideau tombe sans intervention humaine.
Validation
Corpus d'évaluation 20 cas — taux de non-fuite
Un mini-corpus de cas non-leak (vingt scénarios reproductibles) est intégré au harnais de tests. À chaque livraison, la pipeline est vérifiée contre ce corpus. Un seul échec bloque le déploiement.