Ein Paket zum Parsen von PDFs und zur Analyse ihrer Inhalte mithilfe von LLMs.
Dieses Paket ist eine Verbesserung, die auf dem Konzept von GPTPDF basiert.
GPTPDF verwendet PYMUPDF, um PDFs zu analysieren und sowohl Text- als auch Nicht-Text-Regionen zu identifizieren. Anschließend wird die Textregionen auf der Grundlage bestimmter Regeln verschmolzen oder filteriert und gibt die Endergebnisse in ein multimodales Modell für die Parsen ein. Diese Methode ist besonders effektiv.
Basierend auf diesem Konzept habe ich einige geringfügige Verbesserungen vorgenommen.
Unter Verwendung eines Layout -Analysemodells wird jede Seite des PDF analysiert, um den Typ jedes Region zu identifizieren, der Text, Titel, Abbildung, Abbildung, Tabelle, Tabellenunterschrift, Kopfzeile, Fußzeile, Referenz und Gleichung enthält. Die Koordinaten jeder Region werden ebenfalls erhalten.
Beispiel für Layoutanalyse: Beispiel:
[{'header': ((101, 66, 436, 102), 0)},
{'header': ((1038, 81, 1088, 95), 1)},
{'title': ((106, 215, 947, 284), 2)},
{'text': ((101, 319, 835, 390), 3)},
{'text': ((100, 565, 579, 933), 4)},
{'text': ((100, 967, 573, 1025), 5)},
{'text': ((121, 1055, 276, 1091), 6)},
{'reference': ((101, 1124, 562, 1429), 7)},
{'text': ((610, 565, 1089, 930), 8)},
{'text': ((613, 976, 1006, 1045), 9)},
{'title': ((612, 1114, 726, 1129), 10)},
{'text': ((611, 1165, 1089, 1431), 11)},
{'title': ((1011, 1471, 1084, 1492), 12)}]
Dieses Ergebnis umfasst den Typ, die Koordinaten und die Lesereihenfolge jeder Region. Durch die Verwendung dieses Ergebnisses können genauere Regeln so festgelegt werden, dass die PDF analysiert wird.
Geben Sie schließlich die Bilder der entsprechenden Regionen in ein multimodales Modell wie GPT-4O oder QWEN-VL ein, um direkte Textblöcke zu erhalten, die freundlich zu RAG-Lösungen sind.
| IMG_PATH | Typ | Page_no | Dateiname | Inhalt | Filepath |
|---|---|---|---|---|---|
| {Absolute_path} /page_1_title.png | Titel | 1 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 1] | {Datei_absolute_path} |
| {Absolute_path} /page_1_text.png | Text | 1 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 2] | {Datei_absolute_path} |
| {Absolute_path} /page_2_Figure.png | Figur | 2 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 3] | {Datei_absolute_path} |
| {Absolute_path} /page_2_Figure_Caption.png | Bildunterschrift | 2 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 4] | {Datei_absolute_path} |
| {Absolute_path} /page_3_table.png | Tisch | 3 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 5] | {Datei_absolute_path} |
| {Absolute_path} /page_3_table_caption.png | Tischunterschrift | 3 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 6] | {Datei_absolute_path} |
| {Absolute_path} /page_1_header.png | Kopfball | 1 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 7] | {Datei_absolute_path} |
| {Absolute_path} /page_2_footer.png | Fußzeile | 2 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 8] | {Datei_absolute_path} |
| {Absolute_path} /page_3_reference.png | Referenz | 3 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 9] | {Datei_absolute_path} |
| {Absolute_path} /page_1_equation.png | Gleichung | 1 | Aufmerksamkeit ist alles was Sie brauchen | [Textblock 10] | {Datei_absolute_path} |
Weitere Informationen finden Sie in llm_parser.py Hauptfunktion.
pip install llmdocparser
Um dieses Projekt aus der Quelle zu installieren, befolgen Sie die folgenden Schritte:
Klonen Sie das Repository:
Klonen Sie zunächst das Repository in Ihre lokale Maschine. Öffnen Sie Ihr Terminal und führen Sie die folgenden Befehle aus:
git clone https://github.com/lazyFrogLOL/llmdocparser.git
cd llmdocparserAbhängigkeiten installieren:
Dieses Projekt verwendet Poesie für das Abhängigkeitsmanagement. Stellen Sie sicher, dass Sie Gedichte installiert haben. Wenn nicht, können Sie die Anweisungen im Lily -Installationshandbuch befolgen.
Wenn die Poesie installiert ist, führen Sie den folgenden Befehl im Stammverzeichnis des Projekts aus, um die Abhängigkeiten zu installieren:
poetry install Dadurch wird die Datei pyproject.toml gelesen und alle erforderlichen Abhängigkeiten für das Projekt installiert.
from llmdocparser . llm_parser import get_image_content
content , cost = get_image_content (
llm_type = "azure" ,
pdf_path = "path/to/your/pdf" ,
output_dir = "path/to/output/directory" ,
max_concurrency = 5 ,
azure_deployment = "azure-gpt-4o" ,
azure_endpoint = "your_azure_endpoint" ,
api_key = "your_api_key" ,
api_version = "your_api_version"
)
print ( content )
print ( cost )Parameter
llm_type: str
Die Optionen sind azurblau, openai, DashScope.
pdf_path: str
Pfad zur PDF -Datei.
output_dir: str
Ausgabeverzeichnis, um alle Parsen -Bilder zu speichern.
max_concurrency: int
Anzahl der GPT -Parsing -Arbeiter -Threads. Batch -Anrufdetails: Batch -Support
Bei Verwendung von Azure müssen die Parameter Azure_Deployment und Azure_endpoint übergeben werden. Andernfalls muss nur der API -Schlüssel zur Verfügung gestellt werden.
Base_url: str
OpenAI -kompatible Server -URL. Detail: OpenAI-kompatibler Server
Mit der "Aufmerksamkeit ist alles, was Sie für die Analyse benötigen", ist das ausgewählte Modell GPT-4O und kostet wie folgt:
Total Tokens: 44063
Prompt Tokens: 33812
Completion Tokens: 10251
Total Cost (USD): $0.322825
Durchschnittliche Kosten pro Seite: $ 0,0215