Files
clawd/memory/kb/projects/analiza-import-bonuri-pdf.md
Echo 762ac21681 YouTube rate limit protection + progressive retry system
- New: tools/yt_download.py with cookies support + rate limit tracking
- New: docs/YOUTUBE-SETUP.md complete documentation
- Updated: night-execute jobs to use new script
- Updated: TOOLS.md with YouTube section
- Added: 5 new YouTube notes (OpenClaw, cost optimization, task system, leads)
- Added: credentials/ to .gitignore
2026-02-03 07:11:21 +00:00

7.0 KiB

Analiză: Sistem Import Bonuri PDF via Telegram/Discord/WhatsApp → roa2web

Data: 2026-02-03
Status: Analiză conceptuală
Tags: @work @project


TL;DR

Sistem pentru importul bonurilor fiscale (PDF/imagine) în ERP ROA prin canale de mesagerie. Utilizatorul trimite poza bonului → OCR extrage datele → roa2web validează și importă în Oracle.


1. Arhitectură Propusă

┌─────────────┐     ┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│  Telegram   │     │             │     │              │     │             │
│  Discord    │────▶│  Clawdbot   │────▶│  OCR Engine  │────▶│  roa2web    │
│  WhatsApp   │     │  (Router)   │     │  (Parsare)   │     │  (FastAPI)  │
└─────────────┘     └─────────────┘     └──────────────┘     └─────────────┘
                           │                    │                    │
                           │                    │                    │
                           ▼                    ▼                    ▼
                    • Primește fișier    • Tesseract/Mistral  • Validare date
                    • Identifică tip     • Extrage câmpuri    • Import Oracle
                    • Rutare canal       • Structurează JSON  • Confirmare user

2. Componente Tehnice

2.1 Canale Inbound (Clawdbot)

Canal Cum primește Format acceptat
Telegram Bot API / file_id PDF, JPG, PNG
Discord Attachment PDF, JPG, PNG
WhatsApp Media message PDF, JPG, PNG

Clawdbot poate:

  • Detecta atașamente pe orice canal
  • Descărca fișierul local temporar
  • Ruta către procesare OCR

2.2 OCR Engine

Opțiuni (în ordinea complexității):

Soluție Pro Contra Efort
Tesseract + regex Gratuit, local Acuratețe medie, layout-uri diverse Mic
Mistral OCR API Calitate bună, JSON direct Cost per request Mic
Claude Vision Excelent la context Cost mai mare Mic
Google Document AI Enterprise, structurat Cost, setup complex Mare

Recomandare: Mistral OCR sau Claude Vision - calitate bună, integrare simplă cu Clawdbot.

2.3 Câmpuri de Extras din Bon

{
  "tip_document": "bon_fiscal",
  "data": "2026-02-03",
  "ora": "14:32",
  "furnizor": {
    "nume": "MEGA IMAGE SRL",
    "cui": "RO12345678",
    "adresa": "Str. Exemplu nr. 1"
  },
  "articole": [
    {"denumire": "Paine alba", "cantitate": 1, "pret_unitar": 4.50, "valoare": 4.50},
    {"denumire": "Lapte 1L", "cantitate": 2, "pret_unitar": 8.00, "valoare": 16.00}
  ],
  "total": 20.50,
  "tva": {
    "cota_9": 1.50,
    "cota_19": 0.50
  },
  "numar_bon": "0001234",
  "casa_marcat": "ABC12345"
}

2.4 roa2web Integration

Endpoint propus: POST /api/data-entry/import-bon

# FastAPI endpoint
@router.post("/import-bon")
async def import_bon(
    bon_data: BonFiscalSchema,
    user_id: str = Depends(get_current_user)
):
    # 1. Validare date (CUI valid, sume corecte)
    # 2. Mapare furnizor în baza ROA
    # 3. Creare document intrare marfă
    # 4. Return confirmare + document_id

3. Flux Utilizator

3.1 Happy Path

  1. Marius face poză la bon în magazin
  2. Trimite pe Telegram la @ROABot (sau grup dedicat)
  3. Clawdbot detectează imagine, descarcă
  4. OCR extrage datele, validează structura
  5. Clawdbot trimite preview: "Am extras: Mega Image, 20.50 RON, 3 articole. Confirm import? /"
  6. Marius confirmă (sau corectează)
  7. roa2web importă în Oracle
  8. Confirmare: " Bon importat. Document #12345"

3.2 Edge Cases

Situație Handling
Poză neclară "Nu am putut citi bonul. Retrimite o poză mai clară."
Furnizor nou "Furnizor MEGA IMAGE nu există. Creez? [Da/Nu]"
Articol necunoscut "Articol 'Paine alba' nu are corespondent. Alege: [1] Paine [2] Produse panificatie [3] Skip"
PDF protejat "PDF-ul e protejat. Trimite ca imagine."

4. Provocări și Soluții

4.1 Calitatea imaginii

  • Problemă: Poze făcute pe fugă, iluminate prost
  • Soluție:
    • Pre-procesare imagine (contrast, deskew)
    • Fallback la input manual dacă OCR confidence < 70%

4.2 Varietatea formatelor

  • Problemă: Fiecare comerciant are alt layout
  • Soluție:
    • LLM (Claude/Mistral) extrage semantic, nu pe poziție
    • Template-uri pentru comercianți frecvenți (Mega, Lidl, Kaufland)

4.3 Mapare articole

  • Problemă: "Lapte Zuzu 1L 3.5%" vs cod ROA "LAPTE_001"
  • Soluție:
    • Fuzzy matching pe denumire
    • Tabel mapări (bon_text → cod_roa)
    • Learning: salvează mapările confirmate

4.4 Rate limiting canale

  • Problemă: WhatsApp/Telegram pot limita
  • Soluție:
    • Queue local pentru procesare
    • Confirmare async ("Procesez, te anunț în 30 sec")

5. Plan Implementare

Faza 1: POC (2-3 zile)

  • Endpoint Clawdbot pentru primire fișier
  • Integrare Mistral OCR / Claude Vision
  • Parsare bon simplu (1 comerciant test)
  • Răspuns pe canal cu datele extrase

Faza 2: Integrare roa2web (3-5 zile)

  • Endpoint FastAPI /api/import-bon
  • Validare și mapare furnizor
  • Creare document Oracle
  • Confirmare utilizator

Faza 3: Polish (2-3 zile)

  • Handling edge cases
  • Template-uri comercianți mari
  • Tabel mapări articole
  • Logging și statistici

Faza 4: Extindere (opțional)

  • Suport pentru mai multe tipuri documente (facturi, chitanțe)
  • Batch import (multiple bonuri)
  • Dashboard statistici achiziții

6. Efort Estimat

Componentă Ore Cine
Clawdbot file handler 2-4 Echo/Claude
OCR integration 2-3 Echo/Claude
roa2web endpoint 4-6 Marius + Claude
Mapări și validări 4-8 Marius
Total MVP 12-21 ore Mix

Cost OCR estimat: ~$0.01-0.05 per bon (Claude Vision sau Mistral)


7. Beneficii

  • Timp economisit: 2-5 min/bon → 10 sec/bon
  • Erori reduse: OCR consistent vs. tastare manuală
  • Mobilitate: Import din teren, nu doar de la birou
  • Trasabilitate: Fiecare bon are sursa (poza originală)

8. Următorii Pași

  1. Marius decide: Merită efortul? Câte bonuri/lună?
  2. Test rapid: Un bon de la Mega Image → Claude Vision → vezi output
  3. Prototip: Clawdbot + Claude Vision → răspuns formatat

9. Întrebări pentru Marius

  1. Câte bonuri/documente procesezi lunar manual?
  2. Care sunt cei mai frecvenți furnizori?
  3. Ce câmpuri sunt obligatorii în ROA pentru intrare marfă?
  4. Preferi confirmare înainte de import sau import direct cu corecție ulterioară?

Analiză generată de Echo • 2026-02-03 03:00