Pipeline RAG juridic RO: de la PDF scanat la citare verificabilă
Un jurist senior din București pierde o seară întreagă căutând articolul exact care justifică o poziție pe TVA. Întreabă un LLM generic și primește o halucinație plauzibilă — fără sursă.
Pipeline RAG juridic RO: de la PDF scanat la citare verificabilă
Un jurist senior din București pierde o seară întreagă căutând articolul exact care justifică o poziție pe TVA. Întreabă un LLM generic și primește o halucinație plauzibilă — fără sursă. Problema nu e modelul; e absența unui pipeline RAG construit pentru corpusul juridic românesc, cu citare la nivel de paragraf.
De ce PDF-ul juridic RO sparge pipeline-urile generice
Corpusul juridic românesc trăiește în PDF-uri mixte: scanări cu OCR variabil, acte normative publicate pe portalul oficial al legislației, decizii CCR, note de speță. Fiecare document are structură proprie — articole, alineate, litere, puncte — iar un chunk de 512 tokeni rupt la mijlocul unui alineat distruge contextul juridic.
OCR-ul pe diacritice RO rămâne o sursă constantă de drift semantic. „Articolul” devine „Artico1u1”, iar embedderul generic multilingv îl trimite în alt cluster. Stratul de normalizare trebuie dedicat, cu dicționar de termeni din Codul fiscal publicat de ANAF și validare împotriva nomenclatorului oficial de acte normative consolidate.
Construim pe baza extracției structurate din documente neformate, aplicată pe o taxonomie: lege / ordonanță / hotărâre / normă / decizie, cu metadate pe articol și dată de intrare în vigoare.
Pipeline-ul în șapte etape, cu evidență la query
pipeline:
ingest:
sources: [legislatie.just.ro, mof.gov.ro, anaf.ro, ccr.ro]
ocr: tesseract-5.3 + ro-diacritics-pack
chunking:
strategy: article-aware
max_tokens: 384
overlap: 48
preserve: [art, alin, lit, pct]
embed:
model: bge-m3-ro-finetuned
dim: 1024
retrieve:
hybrid: dense + bm25
rerank: bge-reranker-v2-m3
top_k: 8
Evidența de citare nu e opțională. Fiecare afirmație din răspuns poartă un pointer (document_id, articol, alineat, span_offset), nu doar numele actului. Fără asta, răspunsul e inutilizabil într-o notă internă, un memoriu către ANAF sau o contestație. Discuția despre atacurile pe lanțul de retrieval și generare arată de ce stratul de citare e și o apărare: un răspuns fără sursă verificabilă e un răspuns compromis.
Poziția CAI Technology
RAG-ul juridic nu se face cu embedderi generici și chunking fix. Se face cu un model adaptat pe RO, chunking care respectă unitatea legală, și un contract de citare care expune span-ul exact. Conformitatea cu GDPR Art. 6(1)(f) pe datele cu caracter personal din decizii și cu obligațiile de transparență din cadrul european AI Act înseamnă log de retrieval auditabil, nu doar răspuns final. Vedeți și cum tratăm backdoor-urile distribuite în sisteme multi-agent atunci când RAG-ul devine parte dintr-un flux agentic. Scrieți-ne pentru o evaluare pe corpusul vostru intern.