PDF → producție: extract AI din documente neformate sub 2% erori
Un contract scanat de 47 de pagini, ștampilă înclinată, semnătură olografă peste ultima clauză. Modelul îl citește greșit. Bugetul de eroare tolerat de client: 2%. Cum ajungi acolo fără să rescrii pipeline-ul lunar?
PDF → producție: extract AI din documente neformate sub 2% erori
Un contract scanat de 47 de pagini, ștampilă înclinată, semnătură olografă peste ultima clauză. Modelul îl citește greșit. Bugetul de eroare tolerat de client: 2%. Cum ajungi acolo fără să rescrii pipeline-ul lunar?
Extracția din PDF neformat rămâne pasul subestimat dintr-un pipeline RAG de producție. Nu OCR-ul crapă — crapă presupunerea că textul extras e text, nu o coloană din tabel citită orizontal.
Anatomia unei rate de eroare sub 2%
Trei surse dominante de eroare, în ordinea impactului pe corpus juridic și fiscal RO:
- Layout mixt — tabele cu rânduri fuzionate, coloane cu antet pe două rânduri, note de subsol atașate greșit.
- Grafie hibridă — text tipărit + câmpuri completate manual + ștampile suprapuse.
- Fragmentare semantică — o clauză spartă între două pagini își pierde subiectul.
Comisia Europeană tratează digitalizarea documentelor administrative ca prioritate în strategia Digital Decade 2030. Directive (EU) 2022/2555 (NIS2) și obligațiile de trasabilitate din GDPR Art. 5(1)(f) transformă o eroare de extracție într-un risc de conformitate, nu doar tehnic.
Pipeline-ul care ține sub 2%
Cheia nu e modelul, e preflight-ul. Refuz orice document fără hash reproductibil sau cu MIME contrafăcut. Peste asta, chunking-ul respectă blocurile vizuale detectate, nu paragrafele naive de 512 tokeni.
Un tabel de 40 de rânduri devine 40 de entități separate, fiecare cu antetul de coloană atașat. O clauză contractuală care ocupă două pagini rămâne o singură unitate semantică. Metadatele — număr pagină, coordonate bounding box, tip bloc — merg în payload alături de text, ca reviewerii să sară direct la sursă când modelul greșește.
Exemplu de log dintr-un lot de facturi PDF procesate:
2026-09-03T04:12:07Z extract.pipeline: batch=weekly ok=true escalated=98 failed=27
2026-09-03T04:12:07Z extract.pipeline: error_rate=1.49% p95_latency_ms=842
2026-09-03T04:12:07Z extract.validator: schema_reject=27 reason=missing_cui field=furnizor.fiscal_code
De ce validarea schemei bate re-antrenarea
Am văzut echipe re-antrenând modelul lunar când răspunsurile RAG deviau. Recomandarea mea: adaugă un JSON Schema strict între extractor și vector store, versionat în git alături de codul aplicației. Regulile de business — CUI valid, sume pozitive, dată în interval, semnătură prezentă — prind ce modelul ratează.
ENISA Threat Landscape 2024 tratează manipularea documentelor de input între vectorii activi contra sistemelor AI enterprise. Fără validare de schemă, un PDF ostil trece direct în retrieval și de acolo în răspunsul modelului. NIST AI Risk Management Framework tratează asta ca preocupare de bază, nu opțiune.
Poziția CAI
Nu credem în extractoare universale. Credem în pipeline-uri specifice pe verticală, cu schemă emisă de reviewer domain-expert și versionată în git. Un extractor de contracte de muncă nu are ce căuta pe facturi de leasing — schema și regulile de validare sunt diferite. Vezi cum aplicăm principiul pe documente juridice românești sau discută cu echipa despre un pilot pe corpusul tău.