Allgemeine Einführung
ExtractThinker ist ein flexibles Document-Intelligence-Tool, das Large Language Models (LLMs) verwendet, um strukturierte Daten aus Dokumenten zu extrahieren und zu klassifizieren und einen nahtlosen ORM-ähnlichen Dokumentenverarbeitungs-Workflow bereitzustellen. Es unterstützt eine Vielzahl von Dokumentenladern, darunter Tesseract OCR, Azure Form Recognizer, AWS Textract und Google Document AI, um nur einige zu nennen. Benutzer können benutzerdefinierte Extraktionsverträge mit Pydantic-Modellen für eine genaue Datenextraktion definieren. Das Tool unterstützt auch die asynchrone Verarbeitung, die Verarbeitung von Dokumenten in mehreren Formaten (z. B. PDF, Bilder, Tabellenkalkulationen usw.) und lässt sich mit einer Vielzahl von LLM-Anbietern (z. B. OpenAI, Anthropic, Cohere usw.) integrieren.
Funktionsliste
- Flexibler DokumentenladerUnterstützung für mehrere Dokumentenlader, einschließlich Tesseract OCR, Azure Form Recognizer, AWS Textract und Google Document AI.
- Maßgeschneiderte RücknahmeverträgeDefinition von benutzerdefinierten Extraktionsverträgen unter Verwendung des Pydantic-Modells für eine präzise Datenextraktion.
- Erweiterte KlassifizierungKlassifizierung von Dokumenten oder Abschnitten von Dokumenten mit Hilfe von benutzerdefinierten Klassifizierungen und Richtlinien.
- asynchrone VerarbeitungEfficient processing of large documents using asynchronous processing.
- Unterstützung mehrerer FormateNahtlose Verarbeitung einer Vielzahl von Dokumentenformaten wie PDF, Bilder, Tabellenkalkulationen und mehr.
- Interaktionen im ORM-StilInteraktion mit Dokumentation und LLMs im ORM-Stil für einfache Entwicklung.
- SegmentierungsstrategieImplementierung von "lazy" oder "eager" Segmentierungsstrategien, um Dokumente seitenweise oder als Ganzes zu verarbeiten.
- Integration mit LLMEinfache Integration mit verschiedenen LLM-Anbietern (z.B. OpenAI, Anthropic, Cohere, etc.).
Hilfe verwenden
Einbauverfahren
- ExtractThinker installieren: Installieren Sie ExtractThinker mit pip:
pip install extract_thinker
Leitlinien für die Verwendung
Beispiel für eine einfache Extraktion
Das folgende Beispiel zeigt, wie man mit PyPdf ein Dokument laden und bestimmte, in einem Vertrag definierte Felder extrahieren kann:
import os
from dotenv import load_dotenv
from extract_thinker import Extractor, DocumentLoaderPyPdf, Contract
load_dotenv()
class InvoiceContract(Contract):
invoice_number: str
invoice_date: str
# 设置 Tesseract 可执行文件的路径
test_file_path = os.path.join("path_to_your_files", "invoice.pdf")
# 初始化提取器
extractor = Extractor()
extractor.load_document_loader(DocumentLoaderPyPdf())
extractor.load_llm("gpt-4o-mini") # 或任何其他支持的模型
# 从文档中提取数据
result = extractor.extract(test_file_path, InvoiceContract)
print("Invoice Number:", result.invoice_number)
print("Invoice Date:", result.invoice_date)
Beispiele für die Kategorisierung
ExtractThinker erlaubt die Klassifizierung von Dokumenten oder Dokumentabschnitten mit Hilfe von benutzerdefinierten Klassifizierungen:
import os
from dotenv import load_dotenv
from extract_thinker import Extractor, Classification, Process, ClassificationStrategy
load_dotenv()
class CustomClassification(Classification):
category: str
# 初始化提取器
extractor = Extractor()
extractor.load_classification_strategy(ClassificationStrategy.CUSTOM)
# 定义分类策略
classification = CustomClassification(category="Invoice")
# 从文档中分类数据
result = extractor.classify(test_file_path, classification)
print("Category:", result.category)
Detaillierte Funktionsabläufe
- Dokumente ladenLaden von Dokumenten mit unterstützten Dokumentenladern (z.B. PyPdf, Tesseract OCR, etc.).
- Definition von RücktrittsverträgenExtraktionsvertrag: Definieren Sie einen benutzerdefinierten Extraktionsvertrag unter Verwendung des Pydantic-Modells und geben Sie die zu extrahierenden Felder an.
- Initialisierung des ExtraktorsErstellen Sie eine Extractor-Instanz und laden Sie den Document Loader und das LLM-Modell.
- Daten extrahieren: Anruf
extract
Methode extrahiert Daten aus dem Dokument und liefert Ergebnisse auf der Grundlage vertraglich definierter Felder. - Kategorie DokumenteUm ein Dokument oder einen Teil eines Dokuments mit einer benutzerdefinierten Klassifizierungsrichtlinie zu klassifizieren, rufen Sie die Funktion
classify
Methode, um die Klassifizierungsergebnisse zu erhalten.
Mit den oben genannten Schritten können die Benutzer Daten aus Dokumenten in verschiedenen Formaten effizient extrahieren und klassifizieren und den Dokumentenverarbeitungsfluss optimieren.