Document Issuer Resolution Worker
Stato: operativo nella prima versione deterministica. Coda: document.issuer.resolve.
Identifica localmente e in modo deterministico l'organizzazione che ha emesso il documento. Consuma evidenze testuali e visuali e, dopo il join, può usare anche gli issuer dei documenti simili.
Ordine delle evidenze
- VAT, tax ID o identificativo ufficiale esatto;
- dominio, URL o e-mail ufficiale presente nel documento;
- alias esatto normalizzato;
- nome normalizzato o fuzzy match controllato;
- logo/header associato a un issuer confermato;
- consenso degli issuer dei documenti simili.
Ogni candidato conserva sorgente, estratto o artefatto di supporto, score e regola applicata. Il risultato è RESOLVED, AMBIGUOUS oppure NOT_FOUND. Solo gli ultimi due stati possono abilitare l'arco di web enrichment.
Dati già disponibili
document_issuersdocument_issuer_aliasesdocument_issuer_document_typesdocument_issuer_observationsissuer_visual_fingerprints
Il catalogo issuer può essere globale e verificato; l'osservazione che associa documento e issuer deve includere user/tenant ed essere accessibile soltanto attraverso data-service. L'associazione deve includere sito ufficiale, confidenza e provenance.
Implementazione
Il servizio deriva dal template Vinova e usa BullMQ, logging condiviso, settings DB/env/default e JWT interni. PostgreSQL è raggiunto esclusivamente tramite le API dedicate di data-service. Le regole e le soglie hanno una versione esplicita per rendere riproducibile ogni decisione.
Il worker salva un run in document_issuer_resolution_runs, i candidati ordinati in document_issuer_resolution_candidates e, quando l'esito è RESOLVED, un'osservazione user-scoped in document_issuer_observations. L'output verso il control plane resta compatto e contiene stato, issuer, confidence, conteggio candidati e observation id.
Configurazioni: DOCUMENT_ISSUER_RESOLUTION_CONCURRENCY, DOCUMENT_ISSUER_RESOLVED_THRESHOLD, DOCUMENT_ISSUER_AMBIGUITY_MARGIN, DOCUMENT_ISSUER_FUZZY_NAME_THRESHOLD, DOCUMENT_ISSUER_SIMILAR_MIN_SCORE e DOCUMENT_ISSUER_MAX_CANDIDATES.
Le relazioni issuer -> document type devono crescere da classificazioni confermate, non da predizioni automatiche non validate, per evitare auto-conferme del modello.
La classificazione automatica da similarità è predisposta con DOCUMENT_SIMILARITY_AUTO_CLASSIFY_THRESHOLD, default 0.90, ma resta non eleggibile finché il documento simile non possiede una classificazione confermata. Il resolver issuer non assegna tipi documentali.