adithya-s-k

OmniParse: Turn Documents and Media into AI-Ready Data

OmniParse is a self-hosted Python service that converts documents, images, audio, video, and web pages into structured output for GenAI workflows. It suits teams building ingestion pipelines that want local parsing, but requires Linux and a GPU with at least 8–10 GB of VRAM.

PythonGPL-3.0AIAPIOCR
Stars
7.9k
Forks
675
Stars, last 16 days
+1

Our take

Health score

20/100

How it is scored
Activity
20
Community
19
Issues
21
Pull requests
21

+1 stars in the last 16 days

Overview

OmniParse is a self-hosted ingestion and parsing service for converting unstructured files and web pages into structured, GenAI-friendly output, including Markdown. It brings document extraction, OCR, image understanding, audio and video transcription, and web crawling behind a local API, reducing the need to assemble separate ingestion tools for each format.

It is aimed at developers and teams preparing data for retrieval-augmented generation (RAG), fine-tuning, or other LLM applications. It makes sense when you need multiple input types processed locally; it may be a poor fit if you need Windows or macOS support, a lightweight CPU-only setup, or consistently precise document layout extraction.

Key Features

  • Parses PDF, Word, and PowerPoint documents, plus common image, audio, and video formats.
  • Converts content into structured Markdown for downstream AI workflows.
  • Extracts tables and images, and supports image OCR, captions, and object detection.
  • Transcribes audio and video using Whisper.
  • Crawls and parses web pages, including dynamic pages.
  • Offers HTTP API endpoints and an interactive Gradio UI.
  • Supports local deployment with Docker, including GPU-enabled runs.

Use Cases

  • RAG developers can ingest mixed document collections and prepare their contents for retrieval pipelines.
  • Data and ML teams can turn scanned pages, images, and tables into text and structured content for model workflows.
  • Teams building media search or summarization can transcribe audio and video before indexing or analysis.
  • Developers collecting web content can crawl pages and add their output to an AI knowledge base.

Getting Started

The server requires Linux. Clone the repository and install its dependencies:

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

See the README for Docker instructions, model setup, server options, and API examples.

Alternatives

  • xberg: Xberg focuses on document extraction across file types, while OmniParse also handles audio, video, and web pages.
  • docling-api: docling-api is a self-hosted conversion service for documents and images, with CPU or GPU deployment; OmniParse covers more media types.
  • marker: Marker converts documents to structured formats such as Markdown and JSON, rather than serving OmniParse’s broader media-parsing API.
  • RAG-Anything: RAG-Anything combines multimodal document parsing with retrieval and querying, while OmniParse focuses on parsing into structured output.
ProjectLanguageLicenseStarsStatus
OmniParsePythonGPL-3.07.9kNot checked yet
xbergRustMIT9.4kActive
docling-apiPythonMIT1.7kMaintained
markerPythonApache-2.040.2kActive
RAG-AnythingPythonMIT23.5kActive

Considerations

  • The README states that the server only works on Linux-based systems.
  • A GPU with at least 8–10 GB of VRAM is needed for the deep-learning models.
  • Document parsing is not exact: tables, equations, whitespace, and line joining can be imperfect. The project notes that parsing works best on digital PDFs and may struggle with languages such as Chinese.
  • The README identifies Marker and Surya model-weight licensing restrictions for some commercial uses. Review the project and model licenses before deployment.
  • The repository is not archived, but its open-issue count is 75; check the issue tracker for current limitations and support status.

Found this useful?

Share it with someone who would like OmniParse.

Comparisons