
Rezolvarea sarcinilor OCR cu AI
Descoperă cum OCR-ul alimentat de AI transformă extragerea datelor, automatizează procesarea documentelor și crește eficiența în industrii precum finanțe, sănăt...
Află cum să automatizezi extragerea datelor din facturi utilizând OCR bazat pe AI și Python cu API-ul FlowHunt, pentru o procesare rapidă, precisă și scalabilă a documentelor.
OCR-ul bazat pe AI depășește capacitățile OCR-ului tradițional deoarece folosește inteligența artificială pentru a înțelege contextul, a gestiona o varietate mare de layout-uri și a realiza extragerea de date structurate de înaltă calitate chiar și din cele mai complexe documente. În timp ce OCR-ul tradițional este conceput să preia textul dintr-un format fix, AI OCR poate gestiona numeroase tipuri de layout și configurații întâlnite în mod obișnuit în facturi și alte documente de business.
Facturile trebuie procesate eficient și cu un grad ridicat de acuratețe, fie că este vorba de departamentul de contabilitate, logistică sau achiziții. AI OCR automatizează extragerea datelor și optimizează fluxurile de lucru, îmbunătățind acuratețea datelor.
Majoritatea companiilor convenționale extrag datele din facturi manual, utilizând angajați pentru aceste sarcini. Aceasta este o operațiune foarte consumatoare de timp și costisitoare, care poate fi automatizată în numeroase domenii și companii, precum cele fiscale, juridice, financiare și altele.
Acest proces durează între 5 și 15 secunde și costă 0,01 – 0,02 credite, în timp ce, în mod normal, ai plăti 15$ – 30$ pe oră pentru ca un angajat să facă aceeași sarcină.
Procesator | Cost pe an | Facturi procesate pe an | Cost per factură |
---|---|---|---|
Uman | $30,000 | 12,000 | $2.50 |
FlowHunt | $162 | 12,000 | $0.013 |
FlowHunt (la $30,000) | $30,000 | 2,250,000 | $0.0133 |
Aș spune că FlowHunt este mult mai eficient, la o diferență majoră.
Deși OCR-ul este extrem de benefic, vine cu unele provocări:
Pentru a depăși aceste provocări, este esențial să folosești un instrument OCR puternic și flexibil. API-ul FlowHunt oferă o soluție robustă, capabilă să gestioneze structuri complexe de documente, fiind ideal pentru proiecte OCR la scară mare.
Pentru a automatiza procesul, vei avea nevoie să instalezi următoarele biblioteci Python:
pip install requests pdf2image git+https://github.com/QualityUnit/flowhunt-python-sdk.git
Acestea includ:
Acest cod va prelua un PDF, îl va converti în imagini, va trimite fiecare imagine către FlowHunt pentru procesare OCR și va salva rezultatul în format CSV.
Importul bibliotecilor
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
și time
ajută la manipularea JSON, gestionarea fișierelor, expresii regulate și timpi de așteptare.requests
: Pentru gestionarea cererilor HTTP, cum ar fi descărcarea rezultatelor OCR.flowhunt
: SDK-ul FlowHunt gestionează autentificarea și comunicarea cu API-ul OCR.pdf2image
: Convertește paginile PDF în imagini pentru OCR pe fiecare pagină.Funcție pentru conversia paginilor PDF în imagini
def convert_pdf_to_image(path: str) -> None:
"""
Converteste un fișier PDF în imagini, stocând fiecare pagină ca 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ște fiecare pagină PDF în imagine.images[i].save
: Salvează fiecare pagină ca JPEG individual pentru procesarea OCR.Extragerea URL-ului atașamentului rezultat
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
Configurarea API-ului și autentificare
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>"}
)
Inițializarea clientului 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
pentru apelurile API ulterioare.Pornirea unei sesiuni 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)
Încărcarea imaginilor pentru procesarea 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()
)
Invocarea procesării OCR și verificarea rezultatelor
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)
Descărcarea și salvarea rezultatului 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)
Pentru a executa acest script:
data/
.<FLOW_ID_HERE>
și <API_KEY_HERE>
cu datele tale de autentificare FlowHunt.Acest script Python oferă o soluție eficientă pentru scalarea proceselor OCR, ideală pentru industrii cu cerințe ridicate de procesare a documentelor. Cu API-ul FlowHunt, această soluție gestionează conversia document–CSV, eficientizând fluxurile de lucru și crescând productivitatea.
Click AICI pentru versiunea 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:
"""
Converteste un fișier pdf într-o imagine
: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)
OCR-ul bazat pe AI utilizează machine learning și NLP pentru a înțelege contextul documentului, a gestiona layout-uri complexe și a extrage date structurate din facturi, spre deosebire de OCR-ul tradițional care se bazează pe recunoașterea textului în format fix.
AI OCR oferă viteză, acuratețe, scalabilitate și rezultate structurate, reducând munca manuală, minimizând erorile și facilitând integrarea cu sistemele de business.
Folosind SDK-ul Python de la FlowHunt, poți converti PDF-uri în imagini, le poți trimite către API-ul FlowHunt pentru OCR și poți obține date structurate în format CSV, automatizând întregul proces de extragere.
Provocările frecvente includ calitatea slabă a imaginilor, layout-uri complexe ale documentelor și limbi diverse. API-ul FlowHunt este conceput să le gestioneze cu modele AI avansate și capabilități flexibile de procesare.
AI OCR-ul de la FlowHunt poate procesa facturi în câteva secunde la o fracțiune din costul uman, oferind câștiguri majore de eficiență și scalabilitate pentru afacerile în creștere.
Arshia este Inginer de Fluxuri AI la FlowHunt. Cu o pregătire în informatică și o pasiune pentru inteligența artificială, el este specializat în crearea de fluxuri eficiente care integrează instrumente AI în sarcinile de zi cu zi, sporind productivitatea și creativitatea.
Automatizează extragerea datelor din facturi cu AI OCR-ul robust de la FlowHunt. Economisește timp, reduce erorile și eficientizează procesele prin conversia PDF-urilor în date structurate în câteva secunde.
Descoperă cum OCR-ul alimentat de AI transformă extragerea datelor, automatizează procesarea documentelor și crește eficiența în industrii precum finanțe, sănăt...
Recunoașterea Optică a Caracterelor (OCR) este o tehnologie transformatoare care convertește documente precum hârtii scanate, PDF-uri sau imagini în date editab...
Descoperă cum un flux OCR pentru Extractorul de Date din Facturi poate eficientiza procesele financiare prin automatizarea extragerii și organizării datelor din...