重要的
OmniParse 是一个平台,可将任何非结构化数据提取并解析为针对 GenAI (LLM) 应用程序优化的结构化、可操作的数据。无论您正在处理文档、表格、图像、视频、音频文件还是网页,OmniParse 都能让您的数据变得干净、结构化,并为 RAG、微调等 AI 应用程序做好准备
✅ 完全本地化,无外部API
✅ 适合 T4 GPU
✅ 支持约 20 种文件类型
✅ 将文档、多媒体和网页转换为高质量的结构化 Markdown
✅ 表格提取、图像提取/字幕、音频/视频转录、网页抓取
✅ 使用 Docker 和 Skypilot 轻松部署
✅ Colab 友好
✅ 由 Gradio 提供支持的交互式 UI
处理数据具有挑战性,因为数据具有不同的形状和大小。 OmniParse 旨在成为一个摄取/解析平台,您可以在其中摄取任何类型的数据,例如文档、图像、音频、视频和 Web 内容,并获得 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 -X POST -F "file=@/path/to/document" http://localhost:8000/parse_document
端点: /parse_document/pdf
方法:POST
解析 PDF 文档。
卷曲命令:
curl -X POST -F "file=@/path/to/document.pdf" http://localhost:8000/parse_document/pdf
端点: /parse_document/ppt
方法:POST
解析 PowerPoint 演示文稿。
卷曲命令:
curl -X POST -F "file=@/path/to/presentation.ppt" http://localhost:8000/parse_document/ppt
端点: /parse_document/docs
方法:POST
解析Word文档。
卷曲命令:
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 -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 -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 -X POST -F "file=@/path/to/video.mp4" http://localhost:8000/parse_media/video
端点: /parse_media/audio
方法:POST
解析音频文件(MP3、WAV、FLAC)。
卷曲命令:
curl -X POST -F "file=@/path/to/audio.mp3" http://localhost:8000/parse_media/audio
端点: /parse_website/parse
方法:POST
解析给定 URL 的网站。
卷曲命令:
curl -X POST -H "Content-Type: application/json" -d '{"url": "https://example.com"}' http://localhost:8000/parse_website
论据:
url
: 要解析的网站的 URL ?骆驼索引 |朗链| Haystack 集成即将推出 批量处理数据 基于指定架构的动态分块和结构化数据提取
一个神奇的 API:只需在您的文件提示中输入您想要的内容,我们将处理其余的事情
?动态模型选择和对外部 API 的支持
?一次处理多个文件的批处理
?新的开源模型取代 Surya OCR 和 Marker
最终目标:用单个多模型模型替换当前使用的所有不同模型,以解析任何类型的数据并获取您需要的数据。
由于我们使用深度学习模型,因此需要具有最小 8~10 GB VRAM 的 GPU。
文档解析限制
OmniParse 根据 GPL-3.0 许可证获得许可。请参阅LICENSE
了解更多信息。该项目在底层使用了 Marker,它具有需要遵循的商业许可证。详细信息如下:
Marker 和 Surya OCR 模型旨在尽可能广泛地访问,同时仍然资助开发和培训成本。研究和个人使用始终是允许的,但商业用途有一些限制。模型的权重根据 cc-by-nc-sa-4.0 获得许可。然而,对于最近 12 个月内总收入低于 500 万美元且终身筹集的风险投资/天使资金低于 500 万美元的任何组织,可以免除此限制。要删除 GPL 许可证要求(双重许可证)和/或在收入限制之上使用商业权重,请查看提供的选项。有关模型权重许可的更多信息,请参阅标记
该项目建立在 Vik Paruchuri 创建的卓越 Marker 项目的基础上。我们对这个项目提供的灵感和基础表示感谢。特别感谢 Surya-OCR 和 Texify 在该项目中广泛使用的 OCR 模型,并感谢 Crawl4AI 的贡献。
使用的型号:
感谢作者对这些模型的贡献。