Wichtig
OmniParse ist eine Plattform, die alle unstrukturierten Daten aufnimmt und in strukturierte, umsetzbare Daten umwandelt, die für GenAI-Anwendungen (LLM) optimiert sind. Unabhängig davon, ob Sie mit Dokumenten, Tabellen, Bildern, Videos, Audiodateien oder Webseiten arbeiten, OmniParse bereitet Ihre Daten sauber, strukturiert und bereit für KI-Anwendungen wie RAG, Feinabstimmung und mehr vor
✅ Vollständig lokal, keine externen APIs
✅ Passt in eine T4-GPU
✅ Unterstützt ~20 Dateitypen
✅ Konvertieren Sie Dokumente, Multimedia und Webseiten in hochwertige strukturierte Markdowns
✅ Tabellenextraktion, Bildextraktion/Beschriftung, Audio-/Videotranskription, Webseiten-Crawling
✅ Einfache Bereitstellung mit Docker und Skypilot
✅ Colab-freundlich
✅ Interaktive Benutzeroberfläche von Gradio
Die Verarbeitung von Daten ist eine Herausforderung, da sie in unterschiedlichen Formen und Größen vorliegen. OmniParse zielt darauf ab, eine Aufnahme-/Analyseplattform zu sein, auf der Sie jede Art von Daten wie Dokumente, Bilder, Audio-, Video- und Webinhalte aufnehmen und die strukturierteste und umsetzbarste Ausgabe erhalten können, die GenAI (LLM) kompatibel ist.
Wichtig
Der Server funktioniert nur auf Linux-basierten Systemen. Dies liegt an bestimmten Abhängigkeiten und systemspezifischen Konfigurationen, die nicht mit Windows oder macOS kompatibel sind.
git clone https://github.com/adithya-s-k/omniparse
cd omniparse
Erstellen Sie eine virtuelle Umgebung:
conda create -n omniparse-venv python=3.10
conda activate omniparse-venv
Abhängigkeiten installieren:
poetry install
# or
pip install -e .
# or
pip install -r pyproject.toml
Um OmniParse mit Docker zu verwenden, führen Sie die folgenden Befehle aus:
docker pull savatar101/omniparse:0.1
# if you are running on a gpu
docker run --gpus all -p 8000:8000 savatar101/omniparse:0.1
# else
docker run -p 8000:8000 savatar101/omniparse:0.1
Alternativ, wenn Sie das Docker-Image lieber lokal erstellen möchten: Führen Sie dann den Docker-Container wie folgt aus:
docker build -t omniparse .
# if you are running on a gpu
docker run --gpus all -p 8000:8000 omniparse
# else
docker run -p 8000:8000 omniparse
Führen Sie den Server aus:
python server.py --host 0.0.0.0 --port 8000 --documents --media --web
--documents
: Laden Sie alle Modelle ein, die Ihnen beim Parsen und Erfassen von Dokumenten helfen (Surya OCR-Modellreihe und Florence-2).--media
: Im Whisper-Modell laden, um Audio- und Videodateien zu transkribieren.--web
: Selenium-Crawler einrichten.Modelle herunterladen: Wenn Sie die Modelle herunterladen möchten, bevor Sie den Server starten
python download.py --documents --media --web
--documents
: Laden Sie alle Modelle ein, die Ihnen beim Parsen und Erfassen von Dokumenten helfen (Surya OCR-Modellreihe und Florence-2).--media
: Im Whisper-Modell laden, um Audio- und Videodateien zu transkribieren.--web
: Selenium-Crawler einrichten. Typ | Unterstützte Erweiterungen |
---|---|
Unterlagen | .doc, .docx, .pdf, .ppt, .pptx |
Bilder | .png, .jpg, .jpeg, .tiff, .bmp, .heic |
Video | .mp4, .mkv, .avi, .mov |
Audio | .mp3, .wav, .aac |
Web | dynamische Webseiten, http://.com |
Client-Bibliothek, kompatibel mit Langchain-, Llamaindex- und Haystack-Integrationen, bald verfügbar.
Endpunkt: /parse_document
Methode: POST
Analysiert PDF-, PowerPoint- oder Word-Dokumente.
Curl-Befehl:
curl -X POST -F "file=@/path/to/document" http://localhost:8000/parse_document
Endpunkt: /parse_document/pdf
Methode: POST
Analysiert PDF-Dokumente.
Curl-Befehl:
curl -X POST -F "file=@/path/to/document.pdf" http://localhost:8000/parse_document/pdf
Endpunkt: /parse_document/ppt
Methode: POST
Analysiert PowerPoint-Präsentationen.
Curl-Befehl:
curl -X POST -F "file=@/path/to/presentation.ppt" http://localhost:8000/parse_document/ppt
Endpunkt: /parse_document/docs
Methode: POST
Analysiert Word-Dokumente.
Curl-Befehl:
curl -X POST -F "file=@/path/to/document.docx" http://localhost:8000/parse_document/docs
Endpunkt: /parse_image/image
Methode: POST
Analysiert Bilddateien (PNG, JPEG, JPG, TIFF, WEBP).
Curl-Befehl:
curl -X POST -F "file=@/path/to/image.jpg" http://localhost:8000/parse_media/image
Endpunkt: /parse_image/process_image
Methode: POST
Verarbeitet ein Bild mit einer bestimmten Aufgabe.
Mögliche Aufgabeneingaben: OCR | OCR with Region | Caption | Detailed Caption | More Detailed Caption | Object Detection | Dense Region Caption | Region Proposal
Curl-Befehl:
curl -X POST -F "image=@/path/to/image.jpg" -F "task=Caption" -F "prompt=Optional prompt" http://localhost:8000/parse_media/process_image
Argumente:
image
: Die Bilddateitask
: Die Verarbeitungsaufgabe (z. B. Beschriftung, Objekterkennung)prompt
: Optionale Eingabeaufforderung für bestimmte Aufgaben Endpunkt: /parse_media/video
Methode: POST
Analysiert Videodateien (MP4, AVI, MOV, MKV).
Curl-Befehl:
curl -X POST -F "file=@/path/to/video.mp4" http://localhost:8000/parse_media/video
Endpunkt: /parse_media/audio
Methode: POST
Analysiert Audiodateien (MP3, WAV, FLAC).
Curl-Befehl:
curl -X POST -F "file=@/path/to/audio.mp3" http://localhost:8000/parse_media/audio
Endpunkt: /parse_website/parse
Methode: POST
Analysiert eine Website anhand ihrer URL.
Curl-Befehl:
curl -X POST -H "Content-Type: application/json" -d '{"url": "https://example.com"}' http://localhost:8000/parse_website
Argumente:
url
: Die URL der zu analysierenden Website ? LamaIndex | Langkette | Haystack-Integrationen folgen in Kürze. Stapelverarbeitung von Daten. Dynamisches Chunking und strukturierte Datenextraktion basierend auf einem angegebenen Schema
Eine magische API: Geben Sie einfach Ihre Dateieingabe ein, was Sie möchten, und wir kümmern uns um den Rest
? Dynamische Modellauswahl und Unterstützung für externe APIs
? Stapelverarbeitung zur gleichzeitigen Verarbeitung mehrerer Dateien
? Neues Open-Source-Modell als Ersatz für Surya OCR und Marker
Endziel : Ersetzen Sie alle verschiedenen Modelle, die derzeit verwendet werden, durch ein einziges MultiModel-Modell, um jede Art von Daten zu analysieren und die benötigten Daten zu erhalten.
Da wir Deep-Learning-Modelle verwenden, ist eine GPU mit mindestens 8 bis 10 GB VRAM erforderlich.
Einschränkungen beim Parsen von Dokumenten
OmniParse ist unter der GPL-3.0-Lizenz lizenziert. Weitere Informationen finden Sie unter LICENSE
. Das Projekt verwendet Marker unter der Haube, der über eine kommerzielle Lizenz verfügt, die befolgt werden muss. Hier die Details:
Die OCR-Modelle von Marker und Surya sind so konzipiert, dass sie möglichst allgemein zugänglich sind und gleichzeitig die Entwicklungs- und Schulungskosten finanzieren. Recherche und persönliche Nutzung sind immer erlaubt, es gibt jedoch einige Einschränkungen für die kommerzielle Nutzung. Die Gewichte für die Modelle sind unter cc-by-nc-sa-4.0 lizenziert. Diese Einschränkung gilt jedoch nicht für alle Organisationen, die im letzten 12-Monats-Zeitraum einen Bruttoumsatz von weniger als 5 Mio. USD UND weniger als 5 Mio. USD an lebenslanger VC/Angel-Finanzierung erzielt haben. Um die GPL-Lizenzanforderungen zu entfernen (Doppellizenz) und/oder die Gewichte über der Umsatzgrenze kommerziell zu nutzen, prüfen Sie die bereitgestellten Optionen. Weitere Informationen zur Lizenz der Modellgewichte finden Sie bei Marker
Dieses Projekt baut auf dem bemerkenswerten Marker-Projekt von Vik Paruchuri auf. Wir bedanken uns für die Inspiration und Grundlage, die dieses Projekt bietet. Besonderer Dank geht an Surya-OCR und Texify für die in diesem Projekt häufig verwendeten OCR-Modelle und an Crawl4AI für ihre Beiträge.
Verwendete Modelle:
Vielen Dank an die Autoren für ihre Beiträge zu diesen Modellen.