
Extrator de Dados de Faturas
Descubra como um Fluxo de OCR Extrator de Dados de Faturas pode simplificar seus processos financeiros automatizando a extração e organização dos dados das fatu...
Aprenda a automatizar a extração de dados de faturas usando OCR de IA e Python com a API da FlowHunt, permitindo um processamento de documentos rápido, preciso e escalável.
O OCR orientado por IA vai além das capacidades do OCR tradicional, pois utiliza inteligência artificial para compreender o contexto, lidar com várias variações de layout e produzir extração de dados estruturados de alta qualidade mesmo dos documentos mais complexos. Enquanto o OCR tradicional é projetado para captar texto de um formato fixo, o OCR de IA pode lidar com muitos tipos de layouts e configurações comuns em faturas e outros documentos empresariais.
Faturas precisam ser processadas de forma eficiente e com alto grau de precisão, seja no departamento de contabilidade, logística ou compras. O OCR de IA automatiza a extração de dados e facilita os fluxos de trabalho, melhorando a precisão dos dados.
A maioria das empresas convencionais extrai dados de faturas manualmente, utilizando funcionários para essas tarefas. Isso é um processo muito demorado e caro, que pode ser automatizado em diversas áreas e empresas, como escritórios de contabilidade, jurídicos, financeiros e outros.
Esse processo leva de 5 a 15 segundos e custa de 0,01 a 0,02 créditos, enquanto normalmente seria necessário pagar de $15 a $30 por hora para um funcionário realizar a mesma tarefa.
Processador | Custo por Ano | Faturas Processadas por Ano | Custo por Fatura |
---|---|---|---|
Humano | $30.000 | 12.000 | $2,50 |
FlowHunt | $162 | 12.000 | $0,013 |
FlowHunt (com $30.000) | $30.000 | 2.250.000 | $0,0133 |
Eu diria que a FlowHunt é muito mais eficiente por uma grande margem.
Embora o OCR seja altamente benéfico, ele apresenta alguns desafios:
Para superar esses desafios, é essencial utilizar uma ferramenta de OCR poderosa e flexível. A API da FlowHunt oferece uma solução robusta, capaz de lidar com estruturas documentais complexas, sendo ideal para projetos de OCR em larga escala.
Para automatizar o processo, você precisará instalar as seguintes bibliotecas Python:
pip install requests pdf2image git+https://github.com/QualityUnit/flowhunt-python-sdk.git
Isso instala:
Este código vai pegar um PDF, converter em imagens, enviar cada imagem para a FlowHunt para processamento de OCR e salvar a saída em formato CSV.
Importando Bibliotecas
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
ajudam no manuseio de JSON, gerenciamento de arquivos, expressões regulares e intervalos de tempo.requests
: Usado para lidar com requisições HTTP, como baixar os resultados do OCR.flowhunt
: O SDK da FlowHunt gerencia autenticação e comunicação com a API de OCR.pdf2image
: Converte páginas de PDF em imagens, permitindo OCR por página.Função para Converter Páginas do PDF em Imagens
def convert_pdf_to_image(path: str) -> None:
"""
Convert a PDF file to images, storing each page as a 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 cada página do PDF em uma imagem.images[i].save
: Salva cada página como um JPEG individual para o processamento de OCR.Extraindo a URL do Anexo de Saída
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
Configuração da API e Autenticação
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>"}
)
Inicializando o Cliente da 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
para chamadas subsequentes da API.Iniciando uma Sessão de Fluxo
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)
Fazendo o Upload das Imagens para o Processamento de 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()
)
Acionando o Processamento de OCR e Monitorando Resultados
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)
Baixando e Salvando a Saída do 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)
Para executar este script:
data/
.<FLOW_ID_HERE>
e <API_KEY_HERE>
com suas credenciais da FlowHunt.Este script Python oferece uma solução eficiente para escalar processos de OCR, ideal para setores com grande demanda de processamento documental. Com a API da FlowHunt, essa solução faz a conversão de documentos para CSV, otimizando fluxos de trabalho e aumentando a produtividade.
Clique AQUI para a versão 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:
"""
Convert a pdf file to an image
: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)
A OCR baseada em IA utiliza aprendizado de máquina e PNL para entender o contexto do documento, lidar com layouts complexos e extrair dados estruturados de faturas, ao contrário do OCR tradicional, que depende do reconhecimento de texto em formatos fixos.
A OCR de IA oferece velocidade, precisão, escalabilidade e saídas estruturadas, reduzindo o trabalho manual, minimizando erros e permitindo integração perfeita com sistemas empresariais.
Utilizando o SDK Python da FlowHunt, você pode converter PDFs em imagens, enviá-las para a API da FlowHunt para OCR e recuperar dados estruturados em formato CSV, automatizando todo o processo de extração.
Desafios comuns incluem baixa qualidade de imagem, layouts complexos de documentos e diferentes idiomas. A API da FlowHunt foi projetada para lidar com esses casos usando modelos avançados de IA e capacidades flexíveis de processamento.
O OCR de IA da FlowHunt pode processar faturas em segundos a uma fração do custo humano, proporcionando grandes ganhos de eficiência e escalabilidade para empresas em crescimento.
Arshia é Engenheira de Fluxos de Trabalho de IA na FlowHunt. Com formação em ciência da computação e paixão por IA, ela se especializa em criar fluxos de trabalho eficientes que integram ferramentas de IA em tarefas do dia a dia, aumentando a produtividade e a criatividade.
Automatize a extração de dados de faturas com o robusto OCR de IA da FlowHunt. Economize tempo, reduza erros e otimize seus fluxos convertendo PDFs em dados estruturados em segundos.
Descubra como um Fluxo de OCR Extrator de Dados de Faturas pode simplificar seus processos financeiros automatizando a extração e organização dos dados das fatu...
Descubra como o OCR com tecnologia de IA está transformando a extração de dados, automatizando o processamento de documentos e impulsionando a eficiência em set...
O Reconhecimento Óptico de Caracteres (OCR) é uma tecnologia transformadora que converte documentos como papéis digitalizados, PDFs ou imagens em dados editávei...