สำคัญ
OmniParse เป็นแพลตฟอร์มที่นำเข้าและแยกวิเคราะห์ข้อมูลที่ไม่มีโครงสร้างใดๆ ให้เป็นข้อมูลที่มีโครงสร้างและดำเนินการได้ซึ่งปรับให้เหมาะสมสำหรับแอปพลิเคชัน GenAI (LLM) ไม่ว่าคุณจะทำงานกับเอกสาร ตาราง รูปภาพ วิดีโอ ไฟล์เสียง หรือหน้าเว็บ OmniParse จะเตรียมข้อมูลของคุณให้สะอาด มีโครงสร้าง และพร้อมสำหรับแอปพลิเคชัน AI เช่น RAG การปรับแต่งอย่างละเอียด และอื่นๆ อีกมากมาย
✅ อยู่ในเครื่องโดยสมบูรณ์ ไม่มี API ภายนอก
✅ ใส่ได้กับ T4 GPU
✅ รองรับไฟล์ประมาณ 20 ประเภท
✅ แปลงเอกสาร มัลติมีเดีย และหน้าเว็บให้เป็นมาร์กดาวน์ที่มีโครงสร้างคุณภาพสูง
✅ การแยกตาราง, การแยกภาพ/คำบรรยาย, การถอดเสียง/วิดีโอ, การรวบรวมข้อมูลหน้าเว็บ
✅ ปรับใช้ได้อย่างง่ายดายโดยใช้ Docker และ Skypilot
✅ เป็นมิตรกับโคลาบ
✅ UI แบบโต้ตอบที่ขับเคลื่อนโดย Gradio
การประมวลผลข้อมูลมีรูปร่างและขนาดต่างๆ กันถือเป็นเรื่องท้าทาย OmniParse มุ่งหวังที่จะเป็นแพลตฟอร์มการนำเข้า/การแยกวิเคราะห์ ซึ่งคุณสามารถนำเข้าข้อมูลประเภทใดก็ได้ เช่น เอกสาร รูปภาพ เสียง วิดีโอ และเนื้อหาเว็บ และรับเอาต์พุตที่มีโครงสร้างและดำเนินการได้มากที่สุดซึ่งเป็นมิตรกับ GenAI (LLM)
สำคัญ
เซิร์ฟเวอร์ใช้งานได้บนระบบที่ใช้ Linux เท่านั้น นี่เป็นเพราะการขึ้นต่อกันและการกำหนดค่าเฉพาะระบบที่ไม่เข้ากันกับ Windows หรือ macOS
git clone https://github.com/adithya-s-k/omniparse
cd omniparse
สร้างสภาพแวดล้อมเสมือนจริง:
conda create -n omniparse-venv python=3.10
conda activate omniparse-venv
ติดตั้งการพึ่งพา:
poetry install
# or
pip install -e .
# or
pip install -r pyproject.toml
หากต้องการใช้ OmniParse กับ Docker ให้ดำเนินการคำสั่งต่อไปนี้:
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
หรือหากคุณต้องการสร้างอิมเมจ Docker ในเครื่อง: จากนั้นให้เรียกใช้คอนเทนเนอร์ Docker ดังนี้:
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
เรียกใช้เซิร์ฟเวอร์:
python server.py --host 0.0.0.0 --port 8000 --documents --media --web
--documents
: โหลดโมเดลทั้งหมดที่ช่วยคุณแยกวิเคราะห์และนำเข้าเอกสาร (รุ่น Surya OCR และ Florence-2)--media
: โหลดในโมเดล Whisper เพื่อถอดเสียงไฟล์เสียงและวิดีโอ--web
: ตั้งค่าโปรแกรมรวบรวมข้อมูลซีลีเนียมดาวน์โหลดโมเดล: หากคุณต้องการดาวน์โหลดโมเดลก่อนเริ่มเซิร์ฟเวอร์
python download.py --documents --media --web
--documents
: โหลดโมเดลทั้งหมดที่ช่วยคุณแยกวิเคราะห์และนำเข้าเอกสาร (รุ่น Surya OCR และ Florence-2)--media
: โหลดในโมเดล Whisper เพื่อถอดเสียงไฟล์เสียงและวิดีโอ--web
: ตั้งค่าโปรแกรมรวบรวมข้อมูลซีลีเนียม พิมพ์ | ส่วนขยายที่รองรับ |
---|---|
เอกสาร | .doc, .docx, .pdf, .ppt, .pptx |
รูปภาพ | .png, .jpg, .jpeg, .tiff, .bmp, .heic |
วีดีโอ | .mp4, .mkv, .avi, .mov |
เสียง | .mp3, .wav, .aac |
เว็บ | หน้าเว็บแบบไดนามิก http://.com |
ไลบรารีไคลเอนต์ที่เข้ากันได้กับการผสานรวม Langchain, llamaindex และ haystack ในเร็วๆ นี้
จุดสิ้นสุด: /parse_document
วิธีการ: POST
แยกวิเคราะห์เอกสาร PDF, PowerPoint หรือ Word
คำสั่ง Curl:
curl -X POST -F "file=@/path/to/document" http://localhost:8000/parse_document
จุดสิ้นสุด: /parse_document/pdf
วิธีการ: POST
แยกวิเคราะห์เอกสาร PDF
คำสั่ง Curl:
curl -X POST -F "file=@/path/to/document.pdf" http://localhost:8000/parse_document/pdf
จุดสิ้นสุด: /parse_document/ppt
วิธีการ: POST
แยกวิเคราะห์งานนำเสนอ PowerPoint
คำสั่ง Curl:
curl -X POST -F "file=@/path/to/presentation.ppt" http://localhost:8000/parse_document/ppt
จุดสิ้นสุด: /parse_document/docs
วิธีการ: POST
แยกวิเคราะห์เอกสาร Word
คำสั่ง Curl:
curl -X POST -F "file=@/path/to/document.docx" http://localhost:8000/parse_document/docs
จุดสิ้นสุด: /parse_image/image
วิธีการ: POST
แยกวิเคราะห์ไฟล์รูปภาพ (PNG, JPEG, JPG, TIFF, WEBP)
คำสั่ง Curl:
curl -X POST -F "file=@/path/to/image.jpg" http://localhost:8000/parse_media/image
จุดสิ้นสุด: /parse_image/process_image
วิธีการ: POST
ประมวลผลภาพด้วยงานเฉพาะ
อินพุตงานที่เป็นไปได้: OCR | OCR with Region | Caption | Detailed Caption | More Detailed Caption | Object Detection | Dense Region Caption | Region Proposal
คำสั่ง Curl:
curl -X POST -F "image=@/path/to/image.jpg" -F "task=Caption" -F "prompt=Optional prompt" http://localhost:8000/parse_media/process_image
ข้อโต้แย้ง:
image
: ไฟล์รูปภาพtask
: งานการประมวลผล (เช่น คำบรรยายภาพ การตรวจจับวัตถุ)prompt
: ตัวเลือกเสริมสำหรับงานบางอย่าง จุดสิ้นสุด: /parse_media/video
วิธีการ: POST
แยกวิเคราะห์ไฟล์วิดีโอ (MP4, AVI, MOV, MKV)
คำสั่ง Curl:
curl -X POST -F "file=@/path/to/video.mp4" http://localhost:8000/parse_media/video
จุดสิ้นสุด: /parse_media/audio
วิธีการ: POST
แยกวิเคราะห์ไฟล์เสียง (MP3, WAV, FLAC)
คำสั่ง Curl:
curl -X POST -F "file=@/path/to/audio.mp3" http://localhost:8000/parse_media/audio
จุดสิ้นสุด: /parse_website/parse
วิธีการ: POST
แยกวิเคราะห์เว็บไซต์ตาม URL
คำสั่ง Curl:
curl -X POST -H "Content-Type: application/json" -d '{"url": "https://example.com"}' http://localhost:8000/parse_website
ข้อโต้แย้ง:
url
: URL ของเว็บไซต์ที่จะแยกวิเคราะห์ - LlamaIndex | แลงเชน | การบูรณาการกองหญ้าในเร็วๆ นี้ ข้อมูลการประมวลผลเป็นชุด การแยกข้อมูลแบบไดนามิกและการแยกข้อมูลที่มีโครงสร้างตาม Schema ที่ระบุ
Magic API หนึ่งเดียว: เพียงป้อนไฟล์ของคุณพร้อมแจ้งสิ่งที่คุณต้องการ แล้วเราจะจัดการส่วนที่เหลือ
- การเลือกโมเดลแบบไดนามิกและการสนับสนุน API ภายนอก
- การประมวลผลเป็นชุดสำหรับการจัดการไฟล์หลายไฟล์พร้อมกัน
- โมเดลโอเพ่นซอร์สใหม่เพื่อแทนที่ Surya OCR และ Marker
เป้าหมายสุดท้าย : แทนที่โมเดลต่างๆ ทั้งหมดที่ใช้อยู่ในปัจจุบันด้วย MultiModel Model เดียว เพื่อแยกวิเคราะห์ข้อมูลประเภทใดก็ได้และรับข้อมูลที่คุณต้องการ
จำเป็นต้องมี GPU ที่มี VRAM ขั้นต่ำ 8~10 GB เนื่องจากเราใช้โมเดลการเรียนรู้เชิงลึก -
ข้อจำกัดในการแยกวิเคราะห์เอกสาร
OmniParse ได้รับอนุญาตภายใต้ใบอนุญาต GPL-3.0 ดู LICENSE
สำหรับข้อมูลเพิ่มเติม โปรเจ็กต์นี้ใช้ Marker ภายใต้ประทุน ซึ่งมีใบอนุญาตเชิงพาณิชย์ที่ต้องปฏิบัติตาม นี่คือรายละเอียด:
โมเดล OCR ของ Marker และ Surya ได้รับการออกแบบมาให้เข้าถึงได้อย่างกว้างขวางที่สุดเท่าที่จะเป็นไปได้ ในขณะที่ยังคงให้ทุนในการพัฒนาและการฝึกอบรม อนุญาตให้ค้นคว้าและใช้งานส่วนตัวได้เสมอ แต่มีข้อจำกัดบางประการในการใช้งานเชิงพาณิชย์ น้ำหนักสำหรับรุ่นต่างๆ ได้รับอนุญาตภายใต้ cc-by-nc-sa-4.0 อย่างไรก็ตาม ข้อจำกัดนี้ได้รับการยกเว้นสำหรับองค์กรใดๆ ที่มีรายได้รวมน้อยกว่า $5M USD ในช่วง 12 เดือนล่าสุด และน้อยกว่า $5M จากการระดมทุนตลอดชีพ VC/angel หากต้องการลบข้อกำหนดใบอนุญาต GPL (ใบอนุญาตแบบคู่) และ/หรือใช้น้ำหนักในเชิงพาณิชย์เกินขีดจำกัดรายได้ โปรดดูตัวเลือกที่มีให้ โปรดดูที่ Marker สำหรับข้อมูลเพิ่มเติมเกี่ยวกับใบอนุญาตของตุ้มน้ำหนักรุ่น
โครงการนี้ต่อยอดมาจากโครงการ Marker ที่โดดเด่นซึ่งสร้างโดย Vik Paruchuri เราขอแสดงความขอบคุณสำหรับแรงบันดาลใจและรากฐานที่ได้รับจากโครงการนี้ ขอขอบคุณเป็นพิเศษสำหรับ Surya-OCR และ Texify สำหรับโมเดล OCR ที่ใช้กันอย่างแพร่หลายในโครงการนี้ และสำหรับ Crawl4AI สำหรับการมีส่วนร่วมของพวกเขา
รุ่นที่ใช้:
ขอขอบคุณผู้เขียนที่มีส่วนร่วมในโมเดลเหล่านี้