Che cos’è Azure AI Document Intelligence
Azure AI Document Intelligence (l’ex Form Recognizer) è il servizio della famiglia Azure AI Services che estrae in modo strutturato testo, coppie chiave-valore, tabelle e campi tipizzati da documenti. La differenza sostanziale rispetto a un semplice OCR è che l’OCR restituisce solo testo (con coordinate), mentre Document Intelligence produce un modello dati: capisce che “Total: 1.240,00 €” è il campo InvoiceTotal di tipo currency, non una stringa qualsiasi. In sede d’esame la regola è netta: se ti serve la struttura (chi è cliente, qual è l’importo, quali righe compongono una tabella) scegli Document Intelligence; se ti serve estrarre testo grezzo da immagini scegli l’OCR (Read) di Azure AI Vision.
Modelli prebuilt
I prebuilt models sono pronti all’uso, senza training: chiami l’endpoint e ricevi campi già etichettati. I principali:
- Invoice — fatture: fornitore, cliente, totale, IVA, righe.
- Receipt — scontrini: esercente, data, importo.
- ID document — passaporti, patenti, carte d’identità.
- Layout — estrae testo, tabelle, selection marks e struttura (paragrafi, titoli) senza interpretare i campi semanticamente.
- General document / Read — testo e coppie chiave-valore generiche.
Il layout model è il jolly da ricordare: quando ti serve la struttura tabellare o la geometria della pagina senza fare training, la risposta è layout. Non ti dice “questo è il totale”, ma ti restituisce righe, colonne e celle in modo affidabile.
Custom models: template, neural e composed
Quando i tuoi documenti non rientrano nei prebuilt (moduli aziendali specifici, contratti proprietari) usi un custom model, addestrato su tuoi campioni etichettati. Qui l’esame vuole che tu sappia scegliere:
Custom template model
- Basato sulla posizione fissa dei campi.
- Richiede pochi campioni (già da circa 5 documenti).
- Training rapido ed economico.
- Requisito critico: i documenti devono avere un layout coerente e ripetibile. Se le posizioni cambiano, il template model sbaglia.
Custom neural model
- Basato sul deep learning: capisce il campo dal contesto, non dalla posizione.
- Gestisce variabilità di layout e documenti strutturati/semi-strutturati diversi tra loro.
- Costo: richiede più campioni etichettati e training più oneroso.
La discriminante d’esame è sempre questa coppia: template = layout uniforme, pochi dati; neural = layout variabile, più dati etichettati.
Composed model
Un composed model raggruppa più custom model sotto un unico ID. All’analisi il servizio esegue una classificazione del documento e instrada verso il sotto-modello corretto. Serve quando un’unica applicazione riceve tipi di documento eterogenei (es. fatture di fornitori diversi) e vuoi un solo endpoint da chiamare.
Output arricchito: confidence e bounding region
Ogni campo estratto non è solo un valore: porta con sé metadati di qualità.
- Confidence score — valore 0-1 che indica quanto il modello è sicuro. È la base per il pattern human-in-the-loop: sotto una soglia (es. 0.8) instradi il documento a revisione manuale invece di accettarlo in automatico.
- Bounding region / bounding box — le coordinate del campo sulla pagina (con
pageNumber), utili per evidenziare, validare visivamente o gestire documenti multi-pagina.
Esempio di invocazione con l’SDK:
poller = client.begin_analyze_document("prebuilt-invoice", document=f)
result = poller.result()
Trappole tipiche d’esame
- Serve la struttura tabellare senza addestrare nulla → usa il prebuilt layout model (non il general document e non un custom neural, che richiederebbe training).
- Documenti con layout molto variabile tra loro → custom neural model; il template model fallisce perché assume posizioni coerenti. Ricorda che il neural pretende più campioni etichettati.
- Devi solo estrarre testo da immagini/scansioni, nessun campo strutturato → OCR (Read) di Azure AI Vision, non Document Intelligence.
- Un’unica app riceve fatture da fornitori con formati diversi → addestra un custom model per formato e uniscili in un composed model con classificazione automatica.
- Devi automatizzare l’inserimento ma evitare errori sui documenti dubbi → sfrutta il confidence score con una soglia per attivare la revisione umana, non accettare tutto ciecamente.