Komplexe Dokumente einfach auf die gleiche Art und Weise aufteilen, wie es ein Mensch tun würde.
Das Chunking von Dokumenten ist eine anspruchsvolle Aufgabe, die jedem RAG-System zugrunde liegt. Qualitativ hochwertige Ergebnisse sind für eine erfolgreiche KI-Anwendung von entscheidender Bedeutung, doch die meisten Open-Source-Bibliotheken sind nur begrenzt in der Lage, komplexe Dokumente zu verarbeiten.
Open Parse soll diese Lücke schließen, indem es eine flexible, benutzerfreundliche Bibliothek bereitstellt, die Dokumentlayouts visuell erkennen und effektiv aufteilen kann.
Durch die Textaufteilung wird eine Datei in Rohtext umgewandelt und in Scheiben aufgeteilt.
Es gibt einige fantastische Bibliotheken wie den Layout-Parser.
? Visuell gesteuert: Open-Parse analysiert Dokumente visuell für eine überlegene LLM-Eingabe und geht über die einfache Textaufteilung hinaus.
✍️ Markdown-Unterstützung: Grundlegende Markdown-Unterstützung für das Parsen von Überschriften, fett und kursiv.
Hochpräzise Tabellenunterstützung: Extrahieren Sie Tabellen in saubere Markdown-Formate mit einer Genauigkeit, die die herkömmlicher Tools übertrifft.
Erweiterbar: Implementieren Sie ganz einfach Ihre eigenen Nachbearbeitungsschritte.
Intuitiv: Großartige Editor-Unterstützung. Überall Fertigstellung. Weniger Zeitaufwand für das Debuggen.
Einfach: Einfach zu bedienen und zu erlernen. Weniger Zeit für das Lesen von Dokumenten.
import openparse
basic_doc_path = "./sample-docs/mobile-home-manual.pdf"
parser = openparse . DocumentParser ()
parsed_basic_doc = parser . parse ( basic_doc_path )
for node in parsed_basic_doc . nodes :
print ( node )
? Probieren Sie das Beispielnotizbuch hier aus
Beim Chunking von Dokumenten geht es im Wesentlichen darum, ähnliche semantische Knoten zu gruppieren. Indem wir den Text jedes Knotens einbetten, können wir sie dann basierend auf ihrer Ähnlichkeit gruppieren.
from openparse import processing , DocumentParser
semantic_pipeline = processing . SemanticIngestionPipeline (
openai_api_key = OPEN_AI_KEY ,
model = "text-embedding-3-large" ,
min_tokens = 64 ,
max_tokens = 1024 ,
)
parser = DocumentParser (
processing_pipeline = semantic_pipeline ,
)
parsed_content = parser . parse ( basic_doc_path )
? Beispielnotizbuch hier
Verwendet Pydantic unter der Haube, damit Sie Ergebnisse serialisieren können
parsed_content . dict ()
# or to convert to a valid json dict
parsed_content . json ()
Python 3.8+
Umgang mit PDFs:
Extrahieren von Tabellen:
pip install openparse
OCR-Unterstützung aktivieren :
PyMuPDF enthält bereits die gesamte Logik zur Unterstützung von OCR-Funktionen. Da es jedoch zusätzlich die Sprachunterstützungsdaten von Tesseract benötigt, ist weiterhin die Installation von Tesseract-OCR erforderlich.
Der Speicherort des Sprachunterstützungsordners muss entweder durch Speicherung in der Umgebungsvariablen „TESSDATA_PREFIX“ oder als Parameter in den entsprechenden Funktionen kommuniziert werden.
Für eine funktionierende OCR-Funktionalität sollten Sie daher unbedingt diese Checkliste ausfüllen:
Installieren Sie Tesseract.
Suchen Sie den Sprachunterstützungsordner von Tesseract. Normalerweise finden Sie es hier:
Windows: C:/Program Files/Tesseract-OCR/tessdata
Unix-Systeme: /usr/share/tesseract-ocr/5/tessdata
macOS (über Homebrew installiert):
/opt/homebrew/share/tessdata
/opt/homebrew/Cellar/tesseract/<version>/share/tessdata/
Legen Sie die Umgebungsvariable TESSDATA_PREFIX fest
Windows: setx TESSDATA_PREFIX "C:/Program Files/Tesseract-OCR/tessdata"
Unix-Systeme: declare -x TESSDATA_PREFIX=/usr/share/tesseract-ocr/5/tessdata
macOS (über Homebrew installiert): export TESSDATA_PREFIX=$(brew --prefix tesseract)/share/tessdata
Hinweis: Auf Windows-Systemen muss dies außerhalb von Python geschehen – bevor Sie Ihr Skript starten. Nur os.environ zu manipulieren wird nicht funktionieren!
Dieses Repository bietet eine optionale Funktion zum Parsen von Inhalten aus Tabellen mithilfe verschiedener Deep-Learning-Modelle.
pip install "openparse[ml]"
Dann laden Sie die Modellgewichte mit herunter
openparse-download
Sie können die Analyse wie folgt ausführen.
parser = openparse . DocumentParser (
table_args = {
"parsing_algorithm" : "unitable" ,
"min_table_confidence" : 0.8 ,
},
)
parsed_nodes = parser . parse ( pdf_path )
Beachten Sie, dass wir derzeit Tabellentransformatoren für die gesamte Tabellenerkennung verwenden und deren Leistung unserer Meinung nach unterdurchschnittlich ist. Dies wirkt sich negativ auf die nachgelagerten Ergebnisse von Unitable aus. Wenn Sie ein besseres Modell kennen, eröffnen Sie bitte ein Problem – das Unitable-Team hat erwähnt, dass es dieses möglicherweise bald ebenfalls hinzufügen wird.
https://github.com/Filimoa/open-parse/tree/main/src/cookbooks
https://filimoa.github.io/open-parse/
Benötigt Ihr Anwendungsfall etwas Besonderes? Greifen Sie zu.