Extragerea automată a datelor din documente și facturi scanate folosind Local AI Vision (Llama 3.2)

Configurare noua (How To)

Situatie

Departamentele de contabilitate și HR pierd zeci de ore lunar introducând manual date din sute de PDF-uri scanate (facturi, CV-uri, contracte) în sistemul ERP al companiei (proces de Data Entry). Soluțiile externe (SaaS/API) au un cost ridicat per document procesat și ridică probleme de confidențialitate și GDPR, deoarece presupun trimiterea datelor financiare în afara rețelei interne.

Soluția propune utilizarea unui model multimodal local (VLM – Vision Large Language Model) care să extragă aceste date offline și să le returneze într-un format structurat, gata de import.

Backup

Se va crea un folder izolat (/test_docs) conținând copii ale unor facturi anterioare. Scriptul va rula inițial doar pe acest folder pentru a calibra promptul și a măsura acuratețea extracției (Proof of Concept), fără a scrie date în ERP.

Solutie

Pasi de urmat

Pregătirea infrastructurii locale de inferență (Ollama) Pentru a rula modelul de Vision local și a expune un API intern, vom folosi framework-ul Ollama.

  1. Pe serverul de procesare (sau pe o mașină cu GPU/VRAM suficient), se instalează Ollama.

  2. Se descarcă modelul multimodal dorit (ex. Llama 3.2 Vision cuantizat pentru eficiență): ollama run llama3.2-vision

  3. Ollama va expune automat un API REST local pe portul 11434.

Modelele Vision lucrează cu imagini. Se creează un script Python care monitorizează un folder de rețea.

  1. Se instalează dependențele necesare: pip install pdf2image requests.

  2. Când un PDF nou (ex. factura.pdf) este adăugat în folder, scriptul folosește pdf2image pentru a converti prima pagină într-un fișier JPEG la rezoluție optimă (200-300 DPI), astfel încât textul să fie clar pentru AI.

Imaginea este encodată în Base64 și trimisă către API-ul local Ollama împreună cu un System Prompt strict.

  • Se configurează cererea HTTP (sau se folosește biblioteca litellm / ollama-python) setând formatul de ieșire forțat pe JSON.

  • Exemplu Prompt: “Ești un asistent de extragere date. Analizează imaginea facturii. Extrage următoarele informații: ‘Nume Furnizor’, ‘CUI’, ‘Data Facturii’, ‘Total de Plată’. Returnează rezultatul EXCLUSIV ca un obiect JSON valid, fără niciun alt text explicativ”.

Răspunsul JSON returnat de model este preluat de script.

  1. Se folosește o bibliotecă de validare (precum Pydantic în Python) pentru a garanta că, de exemplu, “Total de Plată” este un număr (float), iar “Data Facturii” respectă un format standard (YYYY-MM-DD).

  2. Dacă datele sunt valide, scriptul le inserează direct în baza de date a ERP-ului sau le salvează într-un .csv curat pentru preluare automată. Documentele cu date lipsă sunt mutate într-un folder de “Revizuire Umană”.

Tip solutie

Permanent

Voteaza

(5 din 6 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?