omniparse

omniparse

多类型非结构化数据解析与结构化平台

OmniParse是一个专注于非结构化数据处理的开源平台。该平台能够解析文档、表格、图像、视频、音频和网页等多种格式,将其转化为结构化数据,以便于生成式AI应用使用。OmniParse支持约20种文件类型,具备本地处理能力,无需依赖外部API。这使其适用于多种AI应用场景,包括检索增强生成(RAG)和模型微调等。

OmniParse结构化数据文档解析多媒体处理网页爬取Github开源项目

OmniParse

OmniParse GitHub Stars GitHub Forks GitHub Issues GitHub Pull Requests License

[!重要]

OmniParse是一个平台,可以摄取和解析任何非结构化数据,将其转换为结构化的、可操作的数据,专为生成式人工智能(LLM)应用程序优化。无论您处理的是文档、表格、图像、视频、音频文件还是网页,OmniParse都能将您的数据准备得干净、结构化,随时可用于人工智能应用,如RAG、微调等。

立即体验

在Colab中打开

简介

https://github.com/adithya-s-k/omniparse/assets/27956426/457d8b5b-9573-44da-8bcf-616000651a13

特性

✅ 完全本地化,无需外部API
✅ 适用于T4 GPU
✅ 支持约20种文件类型
✅ 将文档、多媒体和网页转换为高质量的结构化Markdown
✅ 表格提取、图像提取/描述、音频/视频转录、网页爬取
✅ 使用Docker和Skypilot轻松部署
✅ 兼容Colab
✅ 基于Gradio的交互式用户界面

为什么选择OmniParse?

处理数据是一项挑战,因为数据以不同的形式和大小呈现。OmniParse旨在成为一个摄取/解析平台,您可以在其中摄取任何类型的数据,如文档、图像、音频、视频和网页内容,并获得最结构化和可操作的输出,这些输出对生成式人工智能(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 # 或 pip install -e . # 或 pip install -r pyproject.toml

🛳️ Docker

要使用Docker运行OmniParse,请执行以下命令:

  1. 从Docker Hub拉取OmniParse API Docker镜像:
  2. 运行Docker容器,暴露8000端口: 👉🏼Docker镜像
docker pull savatar101/omniparse:0.1 # 如果您在GPU上运行 docker run --gpus all -p 8000:8000 savatar101/omniparse:0.1 # 否则 docker run -p 8000:8000 savatar101/omniparse:0.1

或者,如果您更喜欢在本地构建Docker镜像: 然后,按如下方式运行Docker容器:

docker build -t omniparse . # 如果您在GPU上运行 docker run --gpus all -p 8000:8000 omniparse # 否则 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:设置selenium爬虫。

下载模型: 如果您想在启动服务器之前下载模型

python download.py --documents --media --web
  • --documents:加载所有帮助解析和摄取文档的模型(Surya OCR系列模型和Florence-2)。
  • --media:加载Whisper模型以转录音频和视频文件。
  • --web:设置selenium爬虫。

支持的数据类型

类型支持的扩展名
文档.doc, .docx, .pdf, .ppt, .pptx
图像.png, .jpg, .jpeg, .tiff, .bmp, .heic
视频.mp4, .mkv, .avi, .mov
音频.mp3, .wav, .aac
网页动态网页, http://<任何域名>.com
<details> <summary><h2>API端点</h></summary>

与Langchain、llamaindex和haystack集成兼容的客户端库即将推出。

文档解析

解析任何文档

端点:/parse_document 方法:POST

解析PDF、PowerPoint或Word文档。

Curl命令:

curl -X POST -F "file=@/path/to/document" http://localhost:8000/parse_document

解析PDF

端点:/parse_document/pdf 方法:POST

解析PDF文档。

Curl命令:

curl -X POST -F "file=@/path/to/document.pdf" http://localhost:8000/parse_document/pdf

解析PowerPoint

端点:/parse_document/ppt 方法:POST

解析PowerPoint演示文稿。

Curl命令:

curl -X POST -F "file=@/path/to/presentation.ppt" http://localhost:8000/parse_document/ppt

解析Word文档

端点:/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:处理任务(例如,Caption、Object Detection)
  • 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 | Langchain | Haystack 集成即将推出 📚 批量处理数据 ⭐ 基于指定架构的动态分块和结构化数据提取 🛠️ 一个神奇的 API:只需提供文件和需求,我们将处理剩下的一切 🔧 动态模型选择和外部 API 支持 📄 批量处理多个文件 📦 新的开源模型替代 Surya OCR 和 Marker

最终目标:用单一的多模态模型替换目前使用的所有不同模型,以解析任何类型的数据并获取所需信息。

局限性

由于我们使用深度学习模型,需要至少 8~10 GB 显存的 GPU。

文档解析局限性

  • 底层 PDF 解析器 Marker 无法将 100% 的方程转换为 LaTeX,因为它需要先检测再转换。
  • 它擅长解析英语,但可能在处理中文等语言时遇到困难。
  • 表格并非总是 100% 正确格式化;文本可能出现在错误的列中。
  • 空白和缩进并非总是得到尊重。
  • 并非所有行/跨度都能正确连接。
  • 这最适用于不需要大量 OCR 的数字 PDF。它针对速度进行了优化,仅使用有限的 OCR 来修复错误。
  • 为了将所有模型装入 GPU,我们使用最小的变体,可能无法提供最佳性能。

许可证

OmniParse 使用 GPL-3.0 许可证。详情请参阅 LICENSE。 该项目在底层使用 Marker,需要遵循其商业许可。详情如下:

商业使用

Marker 和 Surya OCR 模型旨在尽可能广泛地accessible,同时仍能为开发和训练成本提供资金。研究和个人使用始终被允许,但商业使用有一些限制。 模型权重采用 cc-by-nc-sa-4.0 许可。然而,对于最近 12 个月总收入低于 500 万美元且累计风险投资/天使投资融资低于 500 万美元的任何组织,此限制将被豁免。要删除 GPL 许可要求(双重许可)和/或在超过收入限制的情况下商业使用权重,请查看提供的选项。 有关模型权重许可的更多信息,请参阅 Marker

致谢

本项目基于 Vik Paruchuri 创建的出色的 Marker 项目。我们对该项目提供的灵感和基础表示感谢。特别感谢 Surya-OCRTexify 提供本项目广泛使用的 OCR 模型,以及 Crawl4AI 的贡献。

使用的模型:

  • Surya OCR、Detect、Layout、Order 和 Texify
  • Florence-2 base
  • Whisper Small

感谢这些模型的作者们的贡献。


联系方式

如有任何疑问,请发送邮件至 adithyaskolavi@gmail.com 与我们联系。

编辑推荐精选

Keevx

Keevx

AI数字人视频创作平台

Keevx 一款开箱即用的AI数字人视频创作平台,广泛适用于电商广告、企业培训与社媒宣传,让全球企业与个人创作者无需拍摄剪辑,就能快速生成多语言、高质量的专业视频。

即梦AI

即梦AI

一站式AI创作平台

提供 AI 驱动的图片、视频生成及数字人等功能,助力创意创作

扣子-AI办公

扣子-AI办公

AI办公助手,复杂任务高效处理

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

下拉加载更多