adithya-s-k/omniparse

GitHub: adithya-s-k/omniparse

OmniParse 是一个完全本地运行的数据摄入与解析平台,能将文档、多媒体及网页等各类数据转化为对大语言模型友好的结构化 Markdown。

Stars: 7635 | Forks: 651

# OmniParse ![OmniParse](https://static.pigsec.cn/wp-content/uploads/repos/cas/0b/0bed3b35904e6241ed1e62a242e08cce1d6f57cb6eb72cab633d8a5c23b0a240.png) [![GitHub Stars](https://img.shields.io/github/stars/adithya-s-k/omniparse?style=social)](https://github.com/adithya-s-k/omniparse/stargazers) [![GitHub Forks](https://img.shields.io/github/forks/adithya-s-k/omniparse?style=social)](https://github.com/adithya-s-k/omniparse/network/members) [![GitHub Issues](https://img.shields.io/github/issues/adithya-s-k/omniparse)](https://github.com/adithya-s-k/omniparse/issues) [![GitHub Pull Requests](https://img.shields.io/github/issues-pr/adithya-s-k/omniparse)](https://github.com/adithya-s-k/omniparse/pulls) [![License](https://img.shields.io/github/license/adithya-s-k/omniparse)](https://github.com/adithya-s-k/omniparse/blob/main/LICENSE) ## 试用 [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/adithya-s-k/omniparse/blob/main/examples/OmniParse_GoogleColab.ipynb) ## 简介 https://github.com/adithya-s-k/omniparse/assets/27956426/457d8b5b-9573-44da-8bcf-616000651a13 ## 功能 ✅ 完全本地运行,无需外部 API \ ✅ 适配单张 T4 GPU \ ✅ 支持约 20 种文件类型 \ ✅ 将文档、多媒体和网页转换为高质量的结构化 Markdown \ ✅ 表格提取、图像提取/字幕生成、音频/视频转录、网页爬取 \ ✅ 可通过 Docker 和 Skypilot 轻松部署 \ ✅ 对 Colab 友好 \ ✅ 由 Gradio 驱动的交互式 UI ### 为什么选择 OmniParse? 处理数据是一项挑战,因为数据具有各种形态和大小。OmniParse 旨在成为一个数据摄入/解析平台,您可以摄入任何类型的数据(如文档、图像、音频、视频和网页内容),并获得结构化且具有高度可操作性、对 GenAI (LLM) 友好的输出结果。 ## 安装 ``` 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 镜像](https://hub.docker.com/r/savatar101/omniparse) ``` 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 |

API 端点

- [API 端点](#api-endpoints) - [文档解析](#document-parsing) - [解析任意文档](#parse-any-document) - [解析 PDF](#parse-pdf) - [解析 PowerPoint](#parse-powerpoint) - [解析 Word 文档](#parse-word-document) - [媒体解析](#media-parsing) - [解析任意媒体](#parse-any-media) - [解析图像](#parse-image) - [处理图像](#process-image) - [解析视频](#parse-video) - [解析音频](#parse-audio) - [网站解析](#website-parsing) - [解析网站](#parse-website) ### 文档解析 #### 解析任意文档 端点:`/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 ``` ### 媒体解析