Introdução geral
O ExtractThinker é uma ferramenta flexível de inteligência de documentos que usa Modelos de Linguagem Grandes (LLMs) para extrair e classificar dados estruturados de documentos, fornecendo um fluxo de trabalho de processamento de documentos semelhante ao ORM. Ele é compatível com uma variedade de carregadores de documentos, incluindo Tesseract OCR, Azure Form Recognizer, AWS Textract e Google Document AI, entre outros. Os usuários podem definir contratos de extração personalizados usando modelos Pydantic para extração precisa de dados. A ferramenta também é compatível com processamento assíncrono, processamento de documentos em vários formatos (por exemplo, PDF, imagens, planilhas etc.) e integra-se a vários provedores de LLM (por exemplo, OpenAI, Anthropic, Cohere etc.).
Lista de funções
- Carregador de documentos flexívelSuporte a vários carregadores de documentos, incluindo Tesseract OCR, Azure Form Recognizer, AWS Textract e Google Document AI.
- Contratos de retirada personalizadosDefinir contratos de extração personalizados usando o modelo Pydantic para extração precisa de dados.
- Classificação avançadaClassificação de documentos ou seções de documentos usando classificações e políticas personalizadas.
- processamento assíncronoProcessamento eficiente de documentos grandes usando processamento assíncrono.
- Suporte a vários formatosManuseio de vários formatos de documentos, como PDF, imagens, planilhas e muito mais.
- Interações no estilo ORMInterage com a documentação e os LLMs no estilo ORM para facilitar o desenvolvimento.
- estratégia de segmentaçãoImplementar estratégias de segmentação preguiçosa ou ansiosa para processar documentos por página ou como um todo.
- Integração com o LLMIntegração fácil com diferentes provedores de LLM (por exemplo, OpenAI, Anthropic, Cohere etc.).
Usando a Ajuda
Processo de instalação
- Instalar o ExtractThinkerInstalação do ExtractThinker usando o pip:
pip install extract_thinker
Diretrizes para uso
Exemplo de extração básica
O exemplo a seguir demonstra como usar o PyPdf para carregar um documento e extrair campos específicos definidos em um contrato:
importar os
from dotenv import load_dotenv
from extract_thinker import Extractor, DocumentLoaderPyPdf, Contract
load_dotenv()
class InvoiceContract(Contract).
invoice_number: str
invoice_date: str
# Definição do caminho para o arquivo executável do Tesseract
test_file_path = os.path.join("path_to_your_files", "invoice.pdf")
# Inicializar o extrator
extractor = Extractor()
extractor.load_document_loader(DocumentLoaderPyPdf())
extractor.load_llm("gpt-4o-mini") # ou qualquer outro modelo compatível
# extrai dados do documento
result = extractor.extract(test_file_path, InvoiceContract)
print("Invoice Number:", result.invoice_number)
print("Invoice Date:", result.invoice_date)
Exemplo de categorização
O ExtractThinker permite que documentos ou seções de documentos sejam classificados usando classificações personalizadas:
importar os
from dotenv import load_dotenv
from extract_thinker import Extractor, Classification, Process, ClassificationStrategy
load_dotenv()
class CustomClassification(Classification).
Categoria: str
# Inicializar o extrator
extractor = Extractor()
extractor.load_classification_strategy(ClassificationStrategy.CUSTOM)
# Definir a estratégia de classificação
classification = CustomClassification(category="Invoice")
# Classificar os dados dos documentos
result = extractor.classify(test_file_path, classification)
print("Category:", result.category)
Fluxo de operação detalhado da função
- Carregando documentosCarregamento de documentos usando carregadores de documentos compatíveis (por exemplo, PyPdf, Tesseract OCR, etc.).
- Definição de contratos de retiradaContrato de extração personalizado: defina um contrato de extração personalizado usando o modelo Pydantic, especificando os campos a serem extraídos.
- Inicialização do extratorCriar uma instância do Extractor e carregar o carregador de documentos e o modelo LLM.
- Extrair dados: Chamada
extrato
extrai dados do documento e retorna resultados com base em campos definidos contratualmente. - Categoria DocumentosPara classificar um documento ou parte de um documento usando uma política de classificação personalizada, chame a função
classificar
para obter os resultados da classificação.
Com as etapas acima, os usuários podem extrair e classificar com eficiência os dados de documentos em vários formatos e otimizar o fluxo de processamento de documentos.