Guida alla redazione dei prompt per l’estrazione dei dati dai documenti

CoDriver consente di estrarre dati strutturati da documenti PDF, attraverso l’applicazione dell’OCR, se necessaria, e dell’AI generativa sul testo contenuto nel documento. Questo rende possibile l’acquisizione di dati come partite IVA, codici articolo, quantità, ecc. da documenti come DDT, fatture, ordini, attestati, anche frutto di una scansione. Tale funzione è disponibile sia nella Importazione Documenti di Qualiware Server Daemon, sia in appositi form creati con lo specifico scopo di importare e archiviare i documenti, estraendo da essi i metadati necessari a successive elaborazioni.

Le indicazioni su ciò che va estratto e su come reperirlo vengono date attraverso un “prompt” che contiene il nome del campo e la relativa descrizione, che comprende anche informazioni che consentono all’AI di capire dove trovare l’informazione.

Di seguito riportiamo due esempi di prompt, il primo per il recupero dei dati di testata di un DDT, il secondo per il recupero delle righe.

Ragione Sociale Fornitore: Denominazione dell'Azienda che ha emesso il documento di trasporto. Non è il destinatario della merce. Se trovi i nomi i due società, non è quella indicata dopo "Destinatario merce".
Partita IVA Fornitore: partita iva dell'azienda che ha emesso il documento di trasporto. Non è quella del destinatario della merce. Potrebbe essere indicata come P.IVA e C.Fisc., oppure VAT. Se trovi più valori, non è quello indicato dopo il nome del destinatario.
Codice Fiscale Fornitore: codice fiscale dell'azienda che ha emesso il documento di trasporto. Se non lo trovi è coincidente con la partita iva fornitore, Non è quella del destinatario della merce. Potrebbe essere indicata come P.IVA e C.Fisc., oppure VAT.  Se trovi più valori, non è quello indicato dopo il nome del destinatario.
Numero Documento: numero del documento. Se hai dubbi, non scrivere altri numeri 
Data Documento: data del documento, in formato dd/MM/yyyy . Se hai dubbi, non scrivere altre date
Ordine: numero o riferimento all'ordine
Data ordine: data dell'ordine. Se è stato riportato solo il numero d'ordine. lascia vuota.
Totale imponibile: totale imponibile o invoice amount del DDT, compreso il separatore decimale
Totale IVA: totale IVA o VAT amount,  compreso il separatore decimale
Totale: totale del DDT o invoice amount, compreso il separatore decimale
Estrai le seguenti informazioni delle righe da questo Documento di Trasporto Fornitore (DDT):
Codice, Codice Fornitore, Descrizione Articolo, U.M., Q.tà, lotto, Note, Prezzo, Ordine
Metti nella colonna "Codice" il codice articolo cliente, 
Nella colonna "Codice Fornitore" il codice articolo fornitore,  
Nella colonna "Descrizione" la descrizione articolo ma prendi l'intero contenuto fino alla colonna successiva
Nella colonna "U.M." metti l'unità di misura
Nella colonna "Q.tà" metti la quantità articolo, compreso il separatore decimale
Se c'è il prezzo mettilo nella colonna "Prezzo", compreso il separatore decimale
Se c'è il lotto mettilo nella colonna "Lotto"
Se ci sono delle note mettile nella colonna "Note"
Se c'è un riferimento all'ordine sulle righe, prima o dopo la riga, mettilo nella colonna "Ordine"
Se c'è anche la data dell'ordine sulle righe, prima o dopo la riga, mettila nella colonna "Data Ordine"

Analogamente, se c'è una colonna "Riferimento" o "Ordine" metti il contenuto nella colonna "Ordine".

Non esiste una regola generale per scrivere il prompt, ma esso deve contenere, in modo chiaro, i nomi dei campi, che vanno messi fra doppi apici, come nei due esempi precedenti, oppure possono essere messi all’inizio della riga. Assieme ad essi, va fornita una descrizione di ciò che essi devono contenere.

Di seguito riportiamo alcuni accorgimenti da adottare nella scrittura del prompt:

  • Per numeri e date, è sempre consigliabile specificare “restituisci come stringa”, per evitare problemi con l’interpretazione dei punti decimali o del formato nel caso delle date.
  • Se presente una tabella (es. corpo di un DDT) includere nell’elenco dei campi da estrarre anche quelli non interessanti, per consentire all’AI di incasellare correttamente le informazioni.
  • È possibile chiedere di restituire un valore discreto e, in italiano, definire le casistiche (ad esempio “metti ‘Gas’ se è un servizio di fornitura gas, ‘Acqua’ se è un servizio di fornitura d’acqua, ‘Energia elettrica’ se è un servizio di fornitura di energia elettrica“; in questo modo, all’interno del campo verranno sempre riportati i 3 valori indicati, qualsiasi sia la descrizione del servizio fatta sulla bolletta stessa).
  • è consigliabile indicare di inserire un valore vuoto in caso il dato sia incerto. Diversamente, l’AI prova comunque a dare una risposta, che potrebbe essere sbagliata.
  • È utile fornire esempi espliciti nel prompt per chiarire cosa si intende estrarre.
  • E’ necessario tenere presente che all’intelligenza artificiale viene inviato il testo del documento, eventualmente estratto attraverso l’OCR, e non l’immagine, e, di conseguenza, non è possibile fare riferimento a specifiche posizioni (es. in basso a destra, sul lato della pagina, ecc.). E’ invece possibile specificare che l’informazione che interessa si trova subito dopo un testo specifico.

NOTE IMPORTANTI

  1. L’AI non garantisce risultati corretti al 100%. Ma la qualità aumenta quanto più è dettagliato il prompt. I PDF nativi offrono generalmente un risultato migliore rispetto a quelli scansionati.
  2. In caso di documenti scansionati, è importante la qualità della scansione stessa, che deve essere almeno a 200dpi, e il documento deve essere ben leggibile.
  3. In caso di estrazione non corretta, è consigliabile verificare il testo estraibile dal PDF, selezionandolo dopo avere aperto in anteprima la versione archiviata.