
Risolvere i compiti OCR con l'IA
Scopri come l'OCR potenziato dall'IA sta trasformando l'estrazione dei dati, automatizzando l'elaborazione dei documenti e aumentando l'efficienza in settori co...
Scopri come automatizzare l’estrazione dei dati da fatture utilizzando OCR AI e Python con l’API di FlowHunt, per una gestione documentale rapida, accurata e scalabile.
L’OCR guidato dall’intelligenza artificiale supera le capacità dell’OCR tradizionale perché utilizza l’AI per comprendere il contesto, gestire molteplici varianti di layout e produrre estrazioni dati strutturate di alta qualità anche dai documenti più complessi. Mentre l’OCR tradizionale si limita a riconoscere testo da formati fissi, l’OCR AI è in grado di affrontare svariati tipi di layout e configurazioni, tipici di fatture e altri documenti aziendali.
Le fatture devono essere elaborate in modo efficiente e preciso, sia in ambito contabile, logistico o di approvvigionamento. L’OCR AI automatizza l’estrazione dei dati e semplifica i flussi di lavoro, migliorando l’accuratezza dei dati.
Molte aziende tradizionali estraggono i dati dalle fatture manualmente tramite personale dedicato. Si tratta di un’operazione molto dispendiosa in termini di tempo e costi, che può essere automatizzata in moltissimi settori e aziende, come studi fiscali, legali, finanziari e altri.
Questo processo richiede dai 5 ai 15 secondi e costa 0,01 – 0,02 crediti, mentre normalmente pagheresti tra i 15 e i 30 dollari l’ora a un dipendente per lo stesso compito.
Processore | Costo annuo | Fatture elaborate/anno | Costo per fattura |
---|---|---|---|
Umano | $30,000 | 12.000 | $2,50 |
FlowHunt | $162 | 12.000 | $0,013 |
FlowHunt (a $30.000) | $30,000 | 2.250.000 | $0,0133 |
Direi che FlowHunt è decisamente più efficiente.
Sebbene l’OCR sia estremamente vantaggioso, presenta alcune sfide:
Per affrontare queste sfide è essenziale usare uno strumento OCR potente e flessibile. L’API di FlowHunt offre una soluzione OCR robusta, in grado di gestire anche strutture documentali complesse: ideale per progetti OCR su larga scala.
Per automatizzare il processo, installa le seguenti librerie Python:
pip install requests pdf2image git+https://github.com/QualityUnit/flowhunt-python-sdk.git
Questo installerà:
Questo codice prende un PDF, lo converte in immagini, invia ogni immagine a FlowHunt per l’elaborazione OCR e salva l’output in formato CSV.
Import delle Librerie
import json
import os
import re
import time
import requests
import flowhunt
from flowhunt.rest import ApiException
from pprint import pprint
from pdf2image import convert_from_path
json
, os
, re
e time
servono per la gestione di JSON, file, espressioni regolari e intervalli di tempo.requests
: Per gestire le richieste HTTP, come il download dei risultati OCR.flowhunt
: L’SDK di FlowHunt per autenticazione e comunicazione con l’API OCR.pdf2image
: Converte le pagine PDF in immagini, permettendo l’OCR per pagina.Funzione per Convertire le Pagine PDF in Immagini
def convert_pdf_to_image(path: str) -> None:
"""
Converti un file PDF in immagini, salvando ogni pagina come JPEG.
"""
images = convert_from_path(path)
for i in range(len(images)):
images[i].save('data/images/' + 'page' + str(i) + '.jpg', 'JPEG')
convert_from_path
: Converte ogni pagina PDF in un’immagine.images[i].save
: Salva ogni pagina come JPEG per l’OCR.Estrazione dell’URL dell’Allegato di Output
def extract_attachment_url(data_string):
pattern = r'```flowhunt\n({.*})\n```'
match = re.search(pattern, data_string, re.DOTALL)
if match:
json_string = match.group(1)
try:
json_data = json.loads(json_string)
return json_data.get('download_link', None)
except json.JSONDecodeError:
print("Error: Failed to decode JSON.")
return None
return None
Configurazione e Autenticazione API
convert_pdf_to_image("data/test.pdf")
FLOW_ID = "<FLOW_ID_HERE>"
configuration = flowhunt.Configuration(
host="https://api.flowhunt.io",
api_key={"APIKeyHeader": "<API_KEY_HERE>"}
)
Inizializzazione del Client API
with flowhunt.ApiClient(configuration) as api_client:
auth_api = flowhunt.AuthApi(api_client)
api_response = auth_api.get_user()
workspace_id = api_response.api_key_workspace_id
workspace_id
per le chiamate API successive.Avvio di una Sessione Flow
flows_api = flowhunt.FlowsApi(api_client)
from_flow_create_session_req = flowhunt.FlowSessionCreateFromFlowRequest(flow_id=FLOW_ID)
create_session_rsp = flows_api.create_flow_session(workspace_id, from_flow_create_session_req)
Caricamento delle Immagini per l’OCR
for image in os.listdir("data/images"):
image_name, image_extension = os.path.splitext(image)
with open("data/images/" + image, "rb") as file:
try:
flow_sess_attachment = flows_api.upload_attachments(
create_session_rsp.session_id,
file.read()
)
Avvio del Processo OCR e Polling dei Risultati
invoke_rsp = flows_api.invoke_flow_response(
create_session_rsp.session_id,
flowhunt.FlowSessionInvokeRequest(message="")
)
while True:
get_flow_rsp = flows_api.poll_flow_response(
create_session_rsp.session_id, invoke_rsp.message_id
)
print("Flow response: ", get_flow_rsp)
if get_flow_rsp.response_status == "S":
print("done OCR")
break
time.sleep(3)
Download e Salvataggio dell’Output OCR
attachment_url = extract_attachment_url(get_flow_rsp.final_response[0])
if attachment_url:
response = requests.get(attachment_url)
with open("data/results/" + image_name + ".csv", "wb") as file:
file.write(response.content)
Per eseguire lo script:
data/
.<FLOW_ID_HERE>
e <API_KEY_HERE>
con le tue credenziali FlowHunt.Questo script Python offre una soluzione efficiente per scalare i processi OCR, ideale per i settori con grandi volumi di documenti. Grazie all’API di FlowHunt, la soluzione gestisce la conversione da documento a CSV, semplificando i flussi di lavoro e aumentando la produttività.
Clicca QUI per la versione Gist.
import json
import os
import re
import time
import requests
import flowhunt
from flowhunt.rest import ApiException
from pprint import pprint
from pdf2image import convert_from_path
def convert_pdf_to_image(path: str) -> None:
"""
Converti un file pdf in immagine
:return:
"""
images = convert_from_path(path)
for i in range(len(images)):
images[i].save('data/images/' + 'page'+ str(i) +'.jpg', 'JPEG')
def extract_attachment_url(data_string):
pattern = r'```flowhunt\n({.*})\n```'
match = re.search(pattern, data_string, re.DOTALL)
if match:
json_string = match.group(1)
try:
json_data = json.loads(json_string)
return json_data.get('download_link', None)
except json.JSONDecodeError:
print("Error: Failed to decode JSON.")
return None
return None
convert_pdf_to_image("data/test.pdf")
FLOW_ID = "<FLOW_ID_HERE>"
configuration = flowhunt.Configuration(host = "https://api.flowhunt.io",
api_key = {"APIKeyHeader": "<API_KEY_HERE>"})
with flowhunt.ApiClient(configuration) as api_client:
auth_api = flowhunt.AuthApi(api_client)
api_response = auth_api.get_user()
workspace_id = api_response.api_key_workspace_id
flows_api = flowhunt.FlowsApi(api_client)
from_flow_create_session_req = flowhunt.FlowSessionCreateFromFlowRequest(
flow_id=FLOW_ID
)
create_session_rsp = flows_api.create_flow_session(workspace_id, from_flow_create_session_req)
for image in os.listdir("data/images"):
image_name, image_extension = os.path.splitext(image)
with open("data/images/" + image, "rb") as file:
try:
flow_sess_attachment = flows_api.upload_attachments(
create_session_rsp.session_id,
file.read()
)
invoke_rsp = flows_api.invoke_flow_response(create_session_rsp.session_id, flowhunt.FlowSessionInvokeRequest(
message="",
))
while True:
get_flow_rsp = flows_api.poll_flow_response(create_session_rsp.session_id, invoke_rsp.message_id)
print("Flow response: ", get_flow_rsp)
if get_flow_rsp.response_status == "S":
print("done OCR")
attachment_url = extract_attachment_url(get_flow_rsp.final_response[0])
if attachment_url:
print("Attachment URL: ", attachment_url, "\n Downloading the file...")
response = requests.get(attachment_url)
with open("data/results/" + image_name + ".csv", "wb") as file:
file.write(response.content)
break
time.sleep(3)
except ApiException as e:
print("error for file ", image)
print(e)
L’OCR basato su AI sfrutta machine learning e NLP per comprendere il contesto dei documenti, gestire layout complessi ed estrarre dati strutturati dalle fatture, a differenza dell’OCR tradizionale che si basa solo sul riconoscimento testuale a formato fisso.
L’OCR AI offre velocità, accuratezza, scalabilità e output strutturati, riducendo il lavoro manuale, minimizzando gli errori e facilitando l’integrazione con i sistemi aziendali.
Utilizzando l’SDK Python di FlowHunt puoi convertire PDF in immagini, inviarle all’API per l’OCR e ottenere dati strutturati in formato CSV, automatizzando l’intero processo di estrazione.
Le sfide comuni includono bassa qualità delle immagini, layout documentali complessi e lingue diverse. L’API di FlowHunt è progettata per gestire tutto ciò tramite modelli AI avanzati e capacità di elaborazione flessibili.
L’OCR AI di FlowHunt può elaborare fatture in pochi secondi ad una frazione del costo umano, offrendo grandi incrementi di efficienza e scalabilità per aziende in crescita.
Arshia è una AI Workflow Engineer presso FlowHunt. Con una formazione in informatica e una passione per l'IA, è specializzata nella creazione di workflow efficienti che integrano strumenti di intelligenza artificiale nelle attività quotidiane, migliorando produttività e creatività.
Automatizza l’estrazione dati dalle fatture con il potente OCR AI di FlowHunt. Risparmia tempo, riduci gli errori e snellisci i tuoi flussi di lavoro convertendo PDF in dati strutturati in pochi secondi.
Scopri come l'OCR potenziato dall'IA sta trasformando l'estrazione dei dati, automatizzando l'elaborazione dei documenti e aumentando l'efficienza in settori co...
Il Riconoscimento Ottico dei Caratteri (OCR) è una tecnologia trasformativa che converte documenti come fogli scansionati, PDF o immagini in dati modificabili e...
Scopri come un flusso OCR con Estrattore Dati Fatture può ottimizzare i tuoi processi finanziari automatizzando l'estrazione e l'organizzazione dei dati delle f...