Panoramica
- Creare un’attività di estrazione basata su prompt
- Configurare una connessione a un LLM
- Scrivere prompt di estrazione efficaci
- Definire formato e struttura dell’output
- Applicare il livello di rigidità e le Regole di validazione
- Testare e perfezionare l’estrazione
- Estrazione delle informazioni del fornitore dalle fatture
- Acquisizione dei dati del documento a livello di intestazione
- Elaborazione di documenti semi-strutturati
- Documenti con layout variabili
Prerequisiti
- Accesso ad ABBYY Vantage Advanced Designer
- Una connessione LLM configurata (vedi Come configurare le connessioni LLM)
- Un Document Skill con documenti di esempio caricati
- Conoscenze di base della struttura JSON
- Definizioni dei field per i dati che desideri estrarre
Comprendere l’estrazione tramite prompt
Che cos’è l’estrazione basata su prompt?
- Ruolo: il ruolo che l’LLM deve assumere (ad es. “modello di estrazione dati”)
- Istruzioni: come estrarre e formattare i dati
- Struttura di output: il formato JSON esatto per i risultati
- Regole: linee guida per la gestione dei dati ambigui o mancanti
Vantaggi
- Non richiede dati di training: funziona basandosi solo sul prompt engineering
- Flessibile: è facile aggiungere o modificare field
- Gestisce le variazioni: gli LLM possono comprendere diversi formati di documento
- Configurazione rapida: più veloce rispetto all’addestramento dei modelli ML tradizionali
- Linguaggio naturale: scrivi le istruzioni in inglese semplice
Limitazioni
- Costo: Ogni estrazione utilizza chiamate all’API LLM
- Velocità: Più lenta dell’estrazione tradizionale per documenti semplici
- Coerenza: I risultati possono variare leggermente da un’esecuzione all’altra
- Limiti di contesto: I documenti molto lunghi possono richiedere un trattamento specifico
Passaggio 1: Aggiungere un’attività basata su prompt
- Apri il tuo Document skill in ABBYY Vantage Advanced Designer
- Nel pannello di sinistra, individua EXTRACT FROM TEXT (NLP)
- Trova e fai clic su Prompt-based

- L’attività viene visualizzata nel canvas del tuo workflow
- Collegala tra le attività di input e di output
Passaggio 2: Configurare la connessione LLM
- Seleziona l’attività basata su prompt nel tuo flusso di lavoro
- Nel pannello Activity Properties a destra, individua LLM Connection
- Fai clic sul menu a discesa

-
Seleziona dall’elenco la connessione LLM che hai configurato
- Esempio:
Nick-ChatGPT,Microsoft Foundry,Production GPT-4
- Esempio:
- Verifica che la connessione sia selezionata
Step 3: Definire i field di output
- Nel pannello Activity Properties, individua la sezione Output
- Vedrai un elenco gerarchico di gruppi di field e relativi field
- In questo esempio estraiamo le informazioni sul Fornitore:
- Fornitore
- Name
- Address
- TaxID
- Numero conto
- Sort Code
- IBAN
- BIC_SWIFT
- Business Unit
- Name
- Address
- Data fattura
- Numero della fattura
- Totali
- Importo netto
- Fornitore

- Fai clic sul pulsante Activity Editor per iniziare a configurare il prompt.
Passaggio 4: Definire il ruolo
- Nell’Activity Editor vedrai l’interfaccia Prompt Text
- Inizia con la sezione ROLE:

- Sii specifico: “data extraction model” indica all’LLM il suo scopo
- Definisci l’ambito: “vendor-related fields” limita ciò che deve essere estratto
- Imposta le aspettative: “value text verbatim” evita qualsiasi riformattazione
- Gestisci i dati mancanti: “Omit any field that is not clearly present”
- Mantieni la definizione del ruolo chiara e concisa
- Usa frasi all’imperativo (“Extract”, “Do not infer”)
- Sii esplicito su cosa NON fare
- Definisci come gestire i casi limite
Passaggio 5: Definisci il formato di output
- Sotto la sezione ROLE, aggiungi l’intestazione OUTPUT FORMAT
- Definisci la struttura JSON:

- FieldName: Deve corrispondere esattamente alle definizioni dei tuoi field (ad es.
Vendor.Name) - Text: Il valore estratto come string
- Line: Indice di riga a base 0 in cui il valore appare nel documento
- Usa i nomi dei field esatti dalla tua configurazione di Output
- Includi tutti i field anche se alcuni potrebbero essere vuoti
- La struttura deve essere un JSON valido
- I numeri di riga aiutano con la verifica e la risoluzione dei problemi
Passaggio 6: Aggiungi regole di estrazione specifiche per Field

- Schemi di riconoscimento: Elencare etichette alternative per ogni field
- Specifiche di formato: Descrivere l’esatto formato da estrarre
- Suggerimenti sulla posizione: Dove si trovano di solito i dati
- Esclusioni: Cosa NON estrarre
- Numerare le regole per maggiore chiarezza
- Fornire più varianti di etichette
- Specificare la titolarità del dato (lato fornitore vs. lato cliente)
- Includere esempi di formato tra parentesi
- Essere espliciti sui field correlati (ad es., “Ignora l’IBAN — ha il proprio field”)
Passaggio 7: Applicare le regole di rigore

- Previene le allucinazioni: gli LLM possono generare dati plausibili ma errati
- Garantisce coerenza: regole chiare riducono la variabilità tra le diverse esecuzioni
- Gestisce i dati mancanti: definisce cosa fare quando i field non vengono trovati
- Mantiene l’integrità dei dati: l’estrazione letterale preserva la formattazione originale
- Non generare mai dati che non sono presenti nel documento
- Omettere le estrazioni incerte anziché indovinare
- Restituire una struttura vuota se non viene trovato alcun field
- Far corrispondere esattamente i nomi dei field
- Preservare la formattazione originale del testo
Passaggio 8: Seleziona il formato del documento
- Nell’Activity Editor, individua il menu a discesa Prompt
- Visualizzerai le opzioni che definiscono come il documento viene fornito al LLM

-
PDF: File PDF originale
- Da usare per: Documenti in cui il layout è fondamentale
- Considerazioni: Dimensioni del file maggiori, alcuni LLM hanno un supporto PDF limitato
-
Plain Text: Estrazione di testo senza formattazione
- Da usare per: Documenti semplici costituiti solo da testo
- Considerazioni: Perde tutte le informazioni di formattazione e di layout
-
Annotated Text ⭐ (Consigliato)
- Da usare per: La maggior parte dei tipi di documento
- Considerazioni: Preserva la struttura pur rimanendo basato su testo
- Vantaggi: Miglior equilibrio tra struttura e prestazioni
-
Formatted Text: Testo con formattazione di base conservata
- Da usare per: Documenti in cui una parte della formattazione è importante
- Considerazioni: Via di mezzo tra Plain e Annotated
- Seleziona Annotated Text per risultati ottimali
Passaggio 9: verifica l’estrazione
Esegui l’Activity
- Chiudi Activity Editor
- Passa alla scheda All Documents
- Seleziona un documento di test
- Fai clic sul pulsante Test Activity o Run

- Attendi che l’LLM elabori il documento
- Tempo di elaborazione: in genere da 5 a 30 secondi, a seconda della complessità del documento
- Vedrai un indicatore di caricamento in attesa della risposta dell’API
Verifica dei risultati
- L’interfaccia passa alla Predictive view
- Esamina il pannello Output che mostra i field estratti
- Fai clic su ciascun field per vedere:
- Valore estratto
- Confidence (se fornita)
- Area evidenziata sull’immagine del documento

- ✅ Tutti i field previsti sono compilati
- ✅ I valori corrispondono esattamente al documento
- ✅ Nessun dato allucinato o inferito
- ✅ Gestione corretta dei field multilinea
- ✅ I field mancanti sono omessi (non compilati con dati errati)
Schemi di risultati comuni
Passaggio 10: Affina il tuo prompt
Problemi comuni e soluzioni
- Soluzione: Aggiungi indicazioni di posizione più specifiche
- Esempio: “Solo sul lato Fornitore; escludere gli indirizzi di cliente/acquirente”
- Soluzione: Enfatizza l’estrazione letterale (verbatim)
- Esempio: “Estrai il formato numerico esattamente come stampato (ad esempio, ‘12-34-56’)”
- Soluzione: Rendi più rigorose le regole
- Esempio: “Non generare o inferire mai valori. Ometti se non è presente.”
- Soluzione: Specifica le sequenze di escape
- Esempio: “Per i valori su più righe, usa
\nper andare a capo”
- Soluzione: Verifica che i nomi dei field corrispondano esattamente
- Esempio: Usa
Vendor.Account Numbere nonAccountNumber
Processo di miglioramento iterativo
- Esegui test su più documenti: non ottimizzare in base a un singolo esempio
- Individua i pattern: annota quali regole funzionano e quali richiedono un perfezionamento
- Aggiungi esempi specifici: includi esempi di formato tra parentesi
- Affina il grado di rigore: regolalo in base ai pattern di sovra- o sotto-estrazione
- Metti alla prova i casi limite: usa documenti con field mancanti o layout insoliti
Esempi di miglioramenti
Comprendere il processo di estrazione
Come funziona l’estrazione basata su prompt
- Conversione del documento: Il documento viene convertito nel formato selezionato (consigliato: Annotated Text)
- Composizione del prompt: Il tuo ruolo, il formato di output, le regole dei field e le regole di severità vengono combinati
- Chiamata API: Il prompt e il documento vengono inviati al modello LLM tramite la tua connessione
- Elaborazione LLM: Il modello LLM legge il documento ed estrae i dati in base alle tue istruzioni
- Risposta JSON: Il modello LLM restituisce dati strutturati nel formato JSON specificato
- Mappatura dei field: Vantage mappa la risposta JSON ai field di output da te definiti
- Verifica: I numeri di riga e i punteggi di confidenza (se forniti) aiutano a verificare l’accuratezza
Utilizzo dei token e costi
- Lunghezza del documento: i documenti più lunghi utilizzano più token
- Complessità del prompt: prompt più dettagliati aumentano il numero di token
- Scelta del formato: Annotated Text è in genere più efficiente del PDF
- Numero di field: un numero maggiore di field implica prompt più lunghi
- Usa un linguaggio conciso ma chiaro nei prompt
- Non duplicare le istruzioni
- Rimuovi gli esempi non necessari
- Valuta il raggruppamento dei field per dati correlati
Buone pratiche
Scrittura dei prompt
- ✅ Usa istruzioni chiare all’imperativo (“Extract”, “Recognize”, “Omit”)
- ✅ Fornisci più varianti di etichetta per ogni field
- ✅ Includi esempi di formato tra parentesi
- ✅ Specifica cosa NON estrarre (esclusioni)
- ✅ Numera le regole per poterle richiamare facilmente
- ✅ Usa una terminologia coerente in tutto il prompt
- ❌ Non usare istruzioni vaghe (“get the name”)
- ❌ Non dare per scontato che l’LLM conosca le convenzioni specifiche del dominio
- ❌ Non scrivere frasi eccessivamente lunghe e complesse
- ❌ Non contraddirti in sezioni diverse
- ❌ Non tralasciare le regole sul livello di rigidità
Definizioni dei Field
- Iniziare con i pattern di riconoscimento (etichette alternative)
- Specificare il formato esatto da mantenere
- Fornire indicazioni sulla posizione (posizione tipica)
- Definire la titolarità dei dati (fornitore vs. cliente)
- Includere la gestione dei valori su più righe
- Fare riferimento ai Field correlati per evitare confusione
Strategia di test
- Inizia da documenti semplici: Verifica prima l’estrazione di base
- Passa alle varianti: Prova layout e formati diversi
- Testa i casi limite: field mancanti, posizioni insolite, corrispondenze multiple
- Documenta i casi di errore: Conserva esempi dei casi in cui l’estrazione non riesce
- Itera in modo sistematico: Modifica una sola cosa alla volta
Ottimizzazione delle prestazioni
- Mantieni i prompt sintetici
- Usa il formato Annotated Text
- Riduci al minimo il numero di field per attività
- Valuta la suddivisione dei documenti complessi
- Fornisci regole dei field complete
- Includi esempi di formattazione
- Aggiungi regole di severità rigorose
- Esegui test con campioni di documenti diversificati
- Ottimizza la lunghezza del prompt
- Usa formati di documento efficienti
- Metti in cache i risultati quando appropriato
- Monitora l’utilizzo dei token tramite la dashboard del provider LLM
Risoluzione dei problemi
Problemi di estrazione
- Verificare che il nome del field sia scritto esattamente nello stesso modo
- Verificare che i dati siano nel formato di documento selezionato
- Aggiungere più varianti di etichette ai modelli di riconoscimento
- Ridurre temporaneamente il livello di rigore per vedere se l’LLM li trova
- Verificare se la qualità del documento influisce sull’estrazione OCR o del testo
- Rafforzare le specifiche relative al Fornitore
- Aggiungere esclusioni esplicite per i dati di cliente/acquirente
- Fornire indicazioni di posizione (ad es. “parte superiore del documento”, “sezione emittente”)
- Includere esempi di estrazione corretta vs. errata
- Specificare in modo esplicito il formato delle sequenze di escape (
\n) - Fornire esempi di output multilinea corretto
- Verificare che il formato del documento conservi le interruzioni di riga
- Aggiungere l’istruzione: “Conservare le interruzioni di riga originali usando
\n”
- Sottolineare “verbatim” e “esattamente come stampato”
- Aggiungere una regola di rigore: “Nessuna normalizzazione o inferenza”
- Fornire esempi specifici che mostrino la conservazione della formattazione
- Includere esempi negativi: “Non ‘12-34-56’, mantenere ‘12 34 56‘“
Problemi di prestazioni
- Passare al formato Annotated Text se si utilizza un PDF
- Semplificare il prompt senza perdere istruzioni critiche
- Ridurre la risoluzione del documento se le immagini sono molto grandi
- Verificare lo stato del provider LLM e i limiti di frequenza (rate limit)
- Valutare l’uso di un modello più veloce per documenti semplici
- Impostare regole più rigorose
- Rendere le istruzioni più specifiche e non ambigue
- Aggiungere più esempi di formattazione
- Ridurre la complessità del prompt che potrebbe lasciare spazio a interpretazioni
- Testare con impostazioni di temperatura più alte (se disponibili nella connessione)
- Ottimizzare la lunghezza del prompt
- Utilizzare Annotated Text invece di PDF
- Elaborare i documenti in batch nelle ore di minore utilizzo
- Valutare l’uso di modelli più piccoli/più economici per documenti semplici
- Monitorare e impostare avvisi di budget nella dashboard del provider LLM
Tecniche avanzate
Estrazione condizionale
Supporto multilingue
Regole di validazione
Relazioni tra i Field
Limitazioni e considerazioni
Capacità attuali
- ✅ Estrazione di field a livello di intestazione
- ✅ Valori singoli e su più righe
- ✅ Più field per ogni documento
- ✅ Logica di estrazione condizionale
- ✅ Documenti multilingue
- ✅ Layout dei documenti variabili
- ⚠️ Estrazione di tabelle (varia in base all’implementazione)
- ⚠️ Strutture annidate complesse
- ⚠️ Documenti molto grandi (limiti di token)
- ⚠️ Elaborazione in tempo reale (latenza API)
- ⚠️ Nessuna garanzia di risultati deterministici
Quando usare l’estrazione basata su prompt
- Documenti con layout variabili
- Documenti semi-strutturati
- Prototipazione e test rapidi
- Volumi di documenti da piccoli a medi
- Quando i dati di training non sono disponibili
- Elaborazione di documenti multilingue
- Produzione ad alto volume (il machine learning tradizionale può essere più veloce)
- Moduli altamente strutturati (estrazione basata su template)
- Applicazioni sensibili ai costi (i metodi tradizionali possono essere più economici)
- Applicazioni critiche per la latenza (le API LLM introducono una latenza di rete)
- Esigenze di elaborazione offline (nessuna connessione Internet necessaria per i metodi tradizionali)
Integrazione con le Document skill
Utilizzo dei dati estratti
- Validation Activities: Applica regole di business ai valori estratti
- Script Activities: Elabora o trasforma i dati estratti
- Export Activities: Invia i dati a sistemi esterni
- Review Interface: Verifica manuale dei field estratti
Uso in combinazione con altre attività
Mapping dei Field
"FieldName": "Vendor.Name"→ Viene mappato sul field di outputVendor.Name- La gerarchia dei Field viene mantenuta nella struttura di output
- I numeri di riga aiutano nella verifica e nella risoluzione dei problemi
Riepilogo
- ✅ Creato un’attività di estrazione basata su prompt
- ✅ Configurato una connessione LLM
- ✅ Scritto un prompt di estrazione completo con ruolo, formato e regole
- ✅ Selezionato il formato di documento ottimale (Annotated Text)
- ✅ Applicato regole di rigore per la qualità dei dati
- ✅ Testato l’estrazione ed esaminato i risultati
- ✅ Imparato le best practice per il prompt engineering
- L’estrazione basata su prompt utilizza istruzioni in linguaggio naturale
- Il formato Annotated Text offre i risultati migliori
- Prompt chiari e specifici producono un’estrazione coerente
- Le regole di rigore prevengono allucinazioni e mantengono la qualità dei dati
- Test e perfezionamento iterativi migliorano l’accuratezza
Passi successivi
- Esegui test con diversi documenti: Verifica su diversi layout e varianti
- Affina i tuoi prompt: Migliora continuamente in base ai risultati
- Monitora i costi: Tieni traccia dell’utilizzo dei token nel pannello di controllo del tuo provider LLM
- Ottimizza le prestazioni: Affina i prompt per velocità e precisione
- Esplora l’estrazione di tabelle: Sperimenta con l’estrazione delle righe articolo (se supportata)
- Integra con i flussi di lavoro: Combina con altre attività per un’elaborazione completa
Risorse aggiuntive
- Documentazione di ABBYY Vantage Advanced Designer: https://docs.abbyy.com
- Guida alla configurazione delle connessioni LLM: Come configurare le connessioni LLM
- Best practice per il prompt engineering: consulta la documentazione del provider LLM
- Supporto: contatta il supporto ABBYY per assistenza tecnica
Domande frequenti
R: L’estrazione basata su prompt utilizza istruzioni in linguaggio naturale per LLM senza dati di training. I metodi tradizionali richiedono esempi di training ma sono più veloci e più convenienti in termini di costi su larga scala. D: Posso estrarre tabelle con attività basate su prompt?
R: L’estrazione a livello di intestazione è ben supportata. Le funzionalità di estrazione delle tabelle possono variare e richiedere strutture di prompt specifiche. D: Perché usare Annotated Text invece del PDF?
R: Annotated Text offre il miglior equilibrio tra conservazione della struttura ed efficienza di elaborazione. Si è dimostrato il più affidabile nei test. D: Come posso ridurre i costi dell’API?
R: Ottimizza la lunghezza del prompt, utilizza il formato Annotated Text, elabora in modo efficiente e monitora l’utilizzo dei token dal dashboard del tuo provider LLM. D: Cosa succede se la mia connessione LLM non funziona?
R: Verifica lo stato della connessione in Configuration → Connections. Prova la connessione, controlla le credenziali e assicurati di non aver superato la quota dell’API. D: Posso usare più connessioni LLM in una singola Skill?
R: Sì, attività diverse possono usare connessioni diverse. Questo ti consente di usare modelli differenti per diverse attività di estrazione. D: Come gestisco i documenti in più lingue?
R: Aggiungi varianti di etichette multilingue alle regole dei field. In generale, gli LLM gestiscono bene i contenuti multilingue. D: Qual è la dimensione massima di un documento?
R: Dipende dai limiti di token del provider LLM. I documenti molto lunghi potrebbero dover essere suddivisi o elaborati in sezioni.
