Référence · MARVIA, serveur de restitution
Les 22 invariants d'architecture non négociables qui gouvernent le moteur. Chacun est tenu par le code lui-même, et non par une consigne d'usage : toute violation est un bug bloquant.
Source : analyse d'architecture BrainDup §1 · état du code au 2026-07-25
| N° | Loi / invariant | |
|---|---|---|
| Provenance & citation | ||
| 1 | Citation déterministeLes références (auteur, n°, date, page, URL) sont assemblées par code depuis le catalogue. Le LLM ne touche jamais aux métadonnées. Toute citation fausse est un bug bloquant. | |
| 2 | Séparation des magasinsPostgreSQL porte la vérité de provenance et d'audit ; Milvus les vecteurs, facettes de filtrage et identifiants ; Neo4j les entités, relations et pointeurs d'evidence. Aucune duplication de vérité mutable. | |
| 3 | Multi-source de premier rangsource_id est présent sur chaque chunk, chaque nœud et chaque arête dès la v1. |
|
| Traçabilité de provenance (fichier ou URL) | ||
| 4 | Hash de contenu avant traitementToute provenance possède un content_sha256 calculé avant tout OCR ou extraction. |
|
| 5 | Refus de doublonAucune provenance ne relance le pipeline si son hash existe déjà comme document actif, sauf réingestion explicitement forcée. | |
| 6 | Identifiants partoutTout objet dérivé porte au minimum provenance_id, provenance_type, document_id, source_id, ingestion_batch_id ; tout vecteur y ajoute article_id, chunk_id, content_sha256. | |
| Restitution & exploration | ||
| 7 | Frise par zoneLe modèle assemble tous les événements datés d'une zone en une frise triée, avec citations déterministes. | |
| 8 | Sous-graphe par nœudTout nœud sélectionné produit un sous-graphe navigable à profondeur paramétrable, filtré sur les objets actifs. | |
| Trois unités & rôles éditoriaux | ||
| 9 | Trois unitésPour une personne impliquée dans un fait, le modèle capture action, temps et lieu, ou marque explicitement la dimension absente. Aucune n'est inventée. | |
| 10 | Auteur distinct du sujetL'auteur d'un article et les personnes qu'il cite restent distingués par le type de relation, même si c'est la même personne. | |
| Retrait & audit | ||
| 11 | Commande unique de retraitUn document se retire par document_id via une commande agissant sur PostgreSQL, Milvus et Neo4j. | |
| 12 | Audit vérifiableToute suppression produit un audit immuable avec compteurs avant et après dans les trois bases. | |
| 13 | Soft delete par défautLe retrait logique réversible est le mode par défaut ; le hard et la purge restent réservés aux erreurs, droits, doublons ou demande explicite. | |
| Géolocalisation | ||
| 14 | Précision qualifiéeToute géolocalisation indique son niveau de précision et son score de confiance. | |
| 15 | Présence non inféréeUne présence géographique explicite (WENT_TO) ne s'infère jamais d'une cooccurrence ; la couverture (SPOKE_ABOUT) se dérive, le déplacement s'extrait d'un énoncé explicite. | |
| Orchestration | ||
| 16 | API souveraine compatible n8nToute opération (ingestion, retrait, restitution) est déclenchable via une API HTTP hébergée localement, sans exposition cloud des données. | |
| Qualité | ||
| 17 | Déterministe avant LLMLe LLM extrait ; le code Python consolide et arbitre. | |
| 18 | HITL cibléL'humain arbitre les fusions d'entités à faible confiance et les métadonnées douteuses ; ses décisions sont auditées et réversibles. | |
| 19 | Boucle empiriqueLe golden dataset et le diff contre baseline mesurent chaque évolution du pipeline. | |
| Couche contextuelle (context graph) | ||
| 20 | Validité temporelleChaque assertion porte sa fenêtre de validité et un lien vers l'assertion qui la remplace. Un fait ancien peut être marqué périmé par un plus récent, sans effacement. | |
| 21 | Causalité expliciteUne relation causale provient d'un énoncé explicite ou d'une validation HITL, jamais d'une cooccurrence. Elle porte sa confiance et son evidence. | |
| 22 | Trace de raisonnementToute réponse produit une trace auditable et déterministe : chunks retrouvés, entités pivots, relations dérivées, sources mobilisées. | |
Ceux dont la violation ne se rattrape pas : une citation fausse dans une revue d'association détruit une confiance qu'aucune performance de rappel ne rachète.
La raison d'être du produit. Assemblée par code, jamais par le LLM.
Rend l'identité rejouable : sans lui, deux dépôts du même PDF divergent au premier caractère d'OCR.
Borne ce qu'un modèle peut casser, et permet de changer de LLM sans changer les réponses.
Rend le système auditable après coup : la seule façon de diagnostiquer une réponse d'il y a trois semaines.