Menu ☰
rag · · 3 min citire

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ă.

CAI Technology · Ultima revizuire: 12.10.2026

Trimite mai departe

Clean editorial photo of two diverse professionals reviewing a document in a bright office; no visible text, no third-party logos, anatomy appears natural.

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
flowchart LR A[PDF Monitorul Oficial] --> B[OCR + normalizare diacritice RO] B --> C[Chunking pe articol/alineat] C --> D[Embedding bge-m3 fine-tuned] D --> E[Qdrant + metadate Postgres] F[Query jurist] --> G[Hybrid retrieve + rerank] E --> G G --> H[Răspuns LLM cu citare art./alin.] classDef ingest fill:#e3f2fd,stroke:#1976d2 classDef serve fill:#dcfce7,stroke:#10b981 class A,B,C,D,E ingest class F,G,H serve

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.

Lectură suplimentară

Începem cu o conversație de 30 de minute.

Audit AI-readiness gratuit pentru companii peste 50 angajați. Răspundem în 24 de ore.