Penting
OmniParse adalah platform yang menyerap dan menguraikan data tidak terstruktur apa pun menjadi data terstruktur dan dapat ditindaklanjuti yang dioptimalkan untuk aplikasi GenAI (LLM). Baik Anda bekerja dengan dokumen, tabel, gambar, video, file audio, atau halaman web, OmniParse menyiapkan data Anda agar bersih, terstruktur, dan siap untuk aplikasi AI seperti RAG, fine-tuning, dan banyak lagi
✅ Sepenuhnya lokal, tidak ada API eksternal
✅ Cocok dengan GPU T4
✅ Mendukung ~20 jenis file
✅ Ubah dokumen, multimedia, dan halaman web menjadi penurunan harga terstruktur berkualitas tinggi
✅ Ekstraksi tabel, ekstraksi/teks gambar, transkripsi audio/video, perayapan halaman web
✅ Mudah diterapkan menggunakan Docker dan Skypilot
✅ Ramah colab
✅ UI Interatif didukung oleh Gradio
Memproses data merupakan suatu tantangan karena data mempunyai bentuk dan ukuran yang berbeda-beda. OmniParse bertujuan untuk menjadi platform penyerapan/penguraian tempat Anda dapat menyerap semua jenis data, seperti dokumen, gambar, audio, video, dan konten web, serta mendapatkan keluaran paling terstruktur dan dapat ditindaklanjuti yang ramah GenAI (LLM).
Penting
Server hanya bekerja pada sistem berbasis Linux. Hal ini disebabkan oleh ketergantungan tertentu dan konfigurasi khusus sistem yang tidak kompatibel dengan Windows atau macOS.
git clone https://github.com/adithya-s-k/omniparse
cd omniparse
Buat Lingkungan Virtual:
conda create -n omniparse-venv python=3.10
conda activate omniparse-venv
Instal Ketergantungan:
poetry install
# or
pip install -e .
# or
pip install -r pyproject.toml
Untuk menggunakan OmniParse dengan Docker, jalankan perintah berikut:
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
Alternatifnya, jika Anda lebih suka membuat image Docker secara lokal: Kemudian, jalankan container Docker sebagai berikut:
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
Jalankan Servernya:
python server.py --host 0.0.0.0 --port 8000 --documents --media --web
--documents
: Memuat semua model yang membantu Anda mengurai dan menyerap dokumen (seri model Surya OCR dan Florence-2).--media
: Muat dalam model Whisper untuk menyalin file audio dan video.--web
: Siapkan perayap Selenium.Unduh Model: Jika Anda ingin mengunduh model sebelum memulai server
python download.py --documents --media --web
--documents
: Memuat semua model yang membantu Anda mengurai dan menyerap dokumen (seri model Surya OCR dan Florence-2).--media
: Muat dalam model Whisper untuk menyalin file audio dan video.--web
: Siapkan perayap Selenium. Jenis | Ekstensi yang Didukung |
---|---|
Dokumen | .doc, .docx, .pdf, .ppt, .pptx |
Gambar | .png, .jpg, .jpeg, .tiff, .bmp, .heic |
Video | .mp4, .mkv, .avi, .mov |
Audio | .mp3, .wav, .aac |
jaring | halaman web dinamis, http://.com |
Pustaka klien yang kompatibel dengan integrasi Langchain, llamaindex, dan haystack akan segera hadir.
Titik akhir: /parse_document
Metode: POST
Mem-parsing dokumen PDF, PowerPoint, atau Word.
Perintah ikal:
curl -X POST -F "file=@/path/to/document" http://localhost:8000/parse_document
Titik akhir: /parse_document/pdf
Metode: POST
Parsing dokumen PDF.
Perintah ikal:
curl -X POST -F "file=@/path/to/document.pdf" http://localhost:8000/parse_document/pdf
Titik akhir: /parse_document/ppt
Metode: POST
Mengurai presentasi PowerPoint.
Perintah ikal:
curl -X POST -F "file=@/path/to/presentation.ppt" http://localhost:8000/parse_document/ppt
Titik akhir: /parse_document/docs
Metode: POST
Mengurai dokumen Word.
Perintah ikal:
curl -X POST -F "file=@/path/to/document.docx" http://localhost:8000/parse_document/docs
Titik akhir: /parse_image/image
Metode: POST
Mem-parsing file gambar (PNG, JPEG, JPG, TIFF, WEBP).
Perintah ikal:
curl -X POST -F "file=@/path/to/image.jpg" http://localhost:8000/parse_media/image
Titik akhir: /parse_image/process_image
Metode: POST
Memproses gambar dengan tugas tertentu.
Masukan tugas yang mungkin: OCR | OCR with Region | Caption | Detailed Caption | More Detailed Caption | Object Detection | Dense Region Caption | Region Proposal
Perintah ikal:
curl -X POST -F "image=@/path/to/image.jpg" -F "task=Caption" -F "prompt=Optional prompt" http://localhost:8000/parse_media/process_image
Argumen:
image
: File gambartask
: Tugas pemrosesan (misalnya, Caption, Object Detection)prompt
: Perintah opsional untuk tugas tertentu Titik akhir: /parse_media/video
Metode: POST
Mem-parsing file video (MP4, AVI, MOV, MKV).
Perintah ikal:
curl -X POST -F "file=@/path/to/video.mp4" http://localhost:8000/parse_media/video
Titik akhir: /parse_media/audio
Metode: POST
Mem-parsing file audio (MP3, WAV, FLAC).
Perintah ikal:
curl -X POST -F "file=@/path/to/audio.mp3" http://localhost:8000/parse_media/audio
Titik akhir: /parse_website/parse
: POST
Mengurai situs web berdasarkan URL-nya.
Perintah ikal:
curl -X POST -H "Content-Type: application/json" -d '{"url": "https://example.com"}' http://localhost:8000/parse_website
Argumen:
url
: URL situs web yang akan diurai ? Indeks Llama | Rantai Lang | Integrasi Haystack segera hadir Pemrosesan batch data Pengelompokan dinamis dan ekstraksi data terstruktur berdasarkan Skema yang ditentukan
Satu API ajaib: cukup masukkan prompt file Anda apa yang Anda inginkan, dan kami akan mengurus sisanya
? Pemilihan model dinamis dan dukungan untuk API eksternal
? Pemrosesan batch untuk menangani banyak file sekaligus
? Model sumber terbuka baru untuk menggantikan Surya OCR dan Marker
Tujuan akhir : mengganti semua model berbeda yang saat ini digunakan dengan satu Model MultiModel untuk mengurai semua jenis data dan mendapatkan data yang Anda perlukan.
Diperlukan GPU dengan VRAM minimum 8~10 GB karena kami menggunakan model pembelajaran mendalam.
Batasan Penguraian Dokumen
OmniParse dilisensikan di bawah lisensi GPL-3.0. Lihat LICENSE
untuk informasi lebih lanjut. Proyek ini menggunakan Marker under the hood, yang memiliki lisensi komersial yang harus diikuti. Berikut rinciannya:
Model OCR Marker dan Surya dirancang agar dapat diakses seluas mungkin sambil tetap mendanai biaya pengembangan dan pelatihan. Penelitian dan penggunaan pribadi selalu diperbolehkan, namun ada beberapa batasan pada penggunaan komersial. Anak timbangan untuk model ini dilisensikan dengan cc-by-nc-sa-4.0. Namun, pembatasan ini diabaikan untuk organisasi mana pun yang memiliki pendapatan kotor kurang dari $5 juta USD dalam periode 12 bulan terakhir DAN kurang dari $5 juta dalam pendanaan VC/angel seumur hidup yang berhasil dikumpulkan. Untuk menghapus persyaratan lisensi GPL (lisensi ganda) dan/atau menggunakan bobot secara komersial melebihi batas pendapatan, lihat opsi yang disediakan. Silakan merujuk ke Marker untuk Informasi lebih lanjut tentang Lisensi anak timbangan Model
Proyek ini dibangun berdasarkan proyek Marker luar biasa yang dibuat oleh Vik Paruchuri. Kami mengucapkan terima kasih atas inspirasi dan landasan yang diberikan oleh proyek ini. Terima kasih khusus kepada Surya-OCR dan Texify atas model OCR yang banyak digunakan dalam proyek ini, dan kepada Crawl4AI atas kontribusinya.
Model yang digunakan:
Terima kasih kepada penulis atas kontribusinya pada model ini.