[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72028":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},72028,"omniparse","adithya-s-k\u002Fomniparse","adithya-s-k","Ingest, parse, and optimize any data format ➡️ from documents to multimedia ➡️ for enhanced compatibility with GenAI frameworks","https:\u002F\u002Fomniparse.cognitivelab.in\u002F",null,"Python",7544,637,43,63,0,10,66,727,30,39.41,"GNU General Public License v3.0",false,"main",[26,27,28,29,30,31,32,33],"ingestion-api","ocr","omniparser","parse-server","parser-library","vision-transformer","web-crawler","whisper-api","2026-06-12 02:02:57","# OmniParse\n\n![OmniParse](https:\u002F\u002Fraw.githubusercontent.com\u002Fadithya-s-k\u002Fomniparse\u002Fmain\u002Fdocs\u002Fassets\u002Fhero_image_2.png)\n[![GitHub Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fadithya-s-k\u002Fomniparse?style=social)](https:\u002F\u002Fgithub.com\u002Fadithya-s-k\u002Fomniparse\u002Fstargazers)\n[![GitHub Forks](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fadithya-s-k\u002Fomniparse?style=social)](https:\u002F\u002Fgithub.com\u002Fadithya-s-k\u002Fomniparse\u002Fnetwork\u002Fmembers)\n[![GitHub Issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002Fadithya-s-k\u002Fomniparse)](https:\u002F\u002Fgithub.com\u002Fadithya-s-k\u002Fomniparse\u002Fissues)\n[![GitHub Pull Requests](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues-pr\u002Fadithya-s-k\u002Fomniparse)](https:\u002F\u002Fgithub.com\u002Fadithya-s-k\u002Fomniparse\u002Fpulls)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fadithya-s-k\u002Fomniparse)](https:\u002F\u002Fgithub.com\u002Fadithya-s-k\u002Fomniparse\u002Fblob\u002Fmain\u002FLICENSE)\n\n\n> [!IMPORTANT]\n>\n>OmniParse is a platform that ingests and parses any unstructured data into structured, actionable data optimized for GenAI (LLM) applications. Whether you are working with documents, tables, images, videos, audio files, or web pages, OmniParse prepares your data to be clean, structured, and ready for AI applications such as RAG, fine-tuning, and more\n\n## Try it out\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fadithya-s-k\u002Fomniparse\u002Fblob\u002Fmain\u002Fexamples\u002FOmniParse_GoogleColab.ipynb)\n\n## Intro\nhttps:\u002F\u002Fgithub.com\u002Fadithya-s-k\u002Fomniparse\u002Fassets\u002F27956426\u002F457d8b5b-9573-44da-8bcf-616000651a13\n\n## Features\n✅ Completely local, no external APIs  \\\n✅ Fits in a T4 GPU \\\n✅ Supports ~20 file types  \\\n✅ Convert documents, multimedia, and web pages to high-quality structured markdown  \\\n✅ Table extraction, image extraction\u002Fcaptioning, audio\u002Fvideo transcription, web page crawling  \\\n✅ Easily deployable using Docker and Skypilot  \\\n✅ Colab friendly  \\\n✅ Interative UI powered by Gradio  \n\n### Why OmniParse ?\nIt's challenging to process data as it comes in different shapes and sizes. OmniParse aims to be an ingestion\u002Fparsing platform where you can ingest any type of data, such as documents, images, audio, video, and web content, and get the most structured and actionable output that is GenAI (LLM) friendly.\n\n## Installation\n> [!IMPORTANT] \n> The server only works on Linux-based systems. This is due to certain dependencies and system-specific configurations that are not compatible with Windows or macOS.\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fadithya-s-k\u002Fomniparse\ncd omniparse\n```\n\nCreate a Virtual Environment:\n\n```bash\nconda create -n omniparse-venv python=3.10\nconda activate omniparse-venv\n```\n\nInstall Dependencies:\n\n```bash\npoetry install\n# or\npip install -e .\n# or\npip install -r pyproject.toml\n```\n\n### 🛳️ Docker\n\nTo use OmniParse with Docker, execute the following commands:\n\n1. Pull the OmniParse API Docker image from Docker Hub:\n2. Run the Docker container, exposing port 8000:\n 👉🏼[Docker Image](https:\u002F\u002Fhub.docker.com\u002Fr\u002Fsavatar101\u002Fomniparse)\n```bash\ndocker pull savatar101\u002Fomniparse:0.1\n# if you are running on a gpu \ndocker run --gpus all -p 8000:8000 savatar101\u002Fomniparse:0.1\n# else\ndocker run -p 8000:8000 savatar101\u002Fomniparse:0.1\n```\n\nAlternatively, if you prefer to build the Docker image locally:\nThen, run the Docker container as follows:\n\n```bash\ndocker build -t omniparse .\n# if you are running on a gpu\ndocker run --gpus all -p 8000:8000 omniparse\n# else\ndocker run -p 8000:8000 omniparse\n\n```\n## Usage\n\nRun the Server:\n\n```bash\npython server.py --host 0.0.0.0 --port 8000 --documents --media --web\n```\n\n- `--documents`: Load in all the models that help you parse and ingest documents (Surya OCR series of models and Florence-2).\n- `--media`: Load in Whisper model to transcribe audio and video files.\n- `--web`: Set up selenium crawler.\n\nDownload Models:\nIf you want to download the models before starting the server\n\n```bash\npython download.py --documents --media --web\n```\n\n- `--documents`: Load in all the models that help you parse and ingest documents (Surya OCR series of models and Florence-2).\n- `--media`: Load in Whisper model to transcribe audio and video files.\n- `--web`: Set up selenium crawler.\n\n## Supported Data Types\n\n| Type      | Supported Extensions                                |\n|-----------|-----------------------------------------------------|\n| Documents | .doc, .docx, .pdf, .ppt, .pptx                      |\n| Images    | .png, .jpg, .jpeg, .tiff, .bmp, .heic               |\n| Video     | .mp4, .mkv, .avi, .mov                              |\n| Audio     | .mp3, .wav, .aac                                    |\n| Web       | dynamic webpages, http:\u002F\u002F\u003Canything>.com             |\n\n\n\u003Cdetails>\n\u003Csummary>\u003Ch2>API Endpoints\u003C\u002Fh>\u003C\u002Fsummary>\n\n> Client library compatible with Langchain, llamaindex, and haystack integrations coming soon.\n\n- [API Endpoints](#api-endpoints)\n  - [Document Parsing](#document-parsing)\n    - [Parse Any Document](#parse-any-document)\n    - [Parse PDF](#parse-pdf)\n    - [Parse PowerPoint](#parse-powerpoint)\n    - [Parse Word Document](#parse-word-document)\n  - [Media Parsing](#media-parsing)\n    - [Parse Any Media](#parse-any-media)\n    - [Parse Image](#parse-image)\n    - [Process Image](#process-image)\n    - [Parse Video](#parse-video)\n    - [Parse Audio](#parse-audio)\n  - [Website Parsing](#website-parsing)\n    - [Parse Website](#parse-website)\n\n### Document Parsing\n\n#### Parse Any Document\n\nEndpoint: `\u002Fparse_document`\nMethod: POST\n\nParses PDF, PowerPoint, or Word documents.\n\nCurl command:\n```\ncurl -X POST -F \"file=@\u002Fpath\u002Fto\u002Fdocument\" http:\u002F\u002Flocalhost:8000\u002Fparse_document\n```\n\n#### Parse PDF\n\nEndpoint: `\u002Fparse_document\u002Fpdf`\nMethod: POST\n\nParses PDF documents.\n\nCurl command:\n```\ncurl -X POST -F \"file=@\u002Fpath\u002Fto\u002Fdocument.pdf\" http:\u002F\u002Flocalhost:8000\u002Fparse_document\u002Fpdf\n```\n\n#### Parse PowerPoint\n\nEndpoint: `\u002Fparse_document\u002Fppt`\nMethod: POST\n\nParses PowerPoint presentations.\n\nCurl command:\n```\ncurl -X POST -F \"file=@\u002Fpath\u002Fto\u002Fpresentation.ppt\" http:\u002F\u002Flocalhost:8000\u002Fparse_document\u002Fppt\n```\n\n#### Parse Word Document\n\nEndpoint: `\u002Fparse_document\u002Fdocs`\nMethod: POST\n\nParses Word documents.\n\nCurl command:\n```\ncurl -X POST -F \"file=@\u002Fpath\u002Fto\u002Fdocument.docx\" http:\u002F\u002Flocalhost:8000\u002Fparse_document\u002Fdocs\n```\n\n### Media Parsing\n\n\u003C!-- #### Parse Any Media\n\nEndpoint: `\u002Fparse_media`\nMethod: POST\n\nParses images, videos, or audio files.\n\nCurl command:\n```\ncurl -X POST -F \"file=@\u002Fpath\u002Fto\u002Fmedia_file\" http:\u002F\u002Flocalhost:8000\u002Fparse_media\n``` -->\n\n#### Parse Image\n\nEndpoint: `\u002Fparse_image\u002Fimage`\nMethod: POST\n\nParses image files (PNG, JPEG, JPG, TIFF, WEBP).\n\nCurl command:\n```\ncurl -X POST -F \"file=@\u002Fpath\u002Fto\u002Fimage.jpg\" http:\u002F\u002Flocalhost:8000\u002Fparse_media\u002Fimage\n```\n\n#### Process Image\n\nEndpoint: `\u002Fparse_image\u002Fprocess_image`\nMethod: POST\n\nProcesses an image with a specific task.\n\nPossible task inputs:\n`OCR | OCR with Region | Caption | Detailed Caption | More Detailed Caption | Object Detection | Dense Region Caption | Region Proposal`\n\nCurl command:\n```\ncurl -X POST -F \"image=@\u002Fpath\u002Fto\u002Fimage.jpg\" -F \"task=Caption\" -F \"prompt=Optional prompt\" http:\u002F\u002Flocalhost:8000\u002Fparse_media\u002Fprocess_image\n```\n\nArguments:\n- `image`: The image file\n- `task`: The processing task (e.g., Caption, Object Detection)\n- `prompt`: Optional prompt for certain tasks\n\n#### Parse Video\n\nEndpoint: `\u002Fparse_media\u002Fvideo`\nMethod: POST\n\nParses video files (MP4, AVI, MOV, MKV).\n\nCurl command:\n```\ncurl -X POST -F \"file=@\u002Fpath\u002Fto\u002Fvideo.mp4\" http:\u002F\u002Flocalhost:8000\u002Fparse_media\u002Fvideo\n```\n\n#### Parse Audio\n\nEndpoint: `\u002Fparse_media\u002Faudio`\nMethod: POST\n\nParses audio files (MP3, WAV, FLAC).\n\nCurl command:\n```\ncurl -X POST -F \"file=@\u002Fpath\u002Fto\u002Faudio.mp3\" http:\u002F\u002Flocalhost:8000\u002Fparse_media\u002Faudio\n```\n\n### Website Parsing\n\n#### Parse Website\n\nEndpoint: `\u002Fparse_website\u002Fparse`\nMethod: POST\n\nParses a website given its URL.\n\nCurl command:\n```\ncurl -X POST -H \"Content-Type: application\u002Fjson\" -d '{\"url\": \"https:\u002F\u002Fexample.com\"}' http:\u002F\u002Flocalhost:8000\u002Fparse_website\n```\nArguments:\n- `url`: The URL of the website to parse\n\n\u003C\u002Fdetails>\n\n\n## Coming Soon\u002F RoadMap\n🦙 LlamaIndex | Langchain | Haystack integrations coming soon\n📚 Batch processing data\n⭐ Dynamic chunking and structured data extraction based on specified Schema  \n🛠️ One magic API: just feed in your file prompt what you want, and we will take care of the rest  \n🔧 Dynamic model selection and support for external APIs  \n📄 Batch processing for handling multiple files at once  \n📦 New open-source model to replace Surya OCR and Marker  \n\n**Final goal**: replace all the different models currently being used with a single MultiModel Model to parse any type of data and get the data you need.\n\n\n## Limitations\nThere is a need for a GPU with 8~10 GB minimum VRAM as we are using deep learning models.\n\\\n\nDocument Parsing Limitations\n\\\n- [Marker](https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Fmarker) which is the underlying PDF parser will not convert 100% of equations to LaTeX because it has to detect and then convert them.\n- It is good at parsing english but might struggle for languages such as Chinese\n- Tables are not always formatted 100% correctly; text can be in the wrong column.\n- Whitespace and indentations are not always respected.\n- Not all lines\u002Fspans will be joined properly.\n- This works best on digital PDFs that won't require a lot of OCR. It's optimized for speed, and limited OCR is used to fix errors.\n- To fit all the models in the GPU, we are using the smallest variants, which might not offer the best-in-class performance.\n\n## License\nOmniParse is licensed under the GPL-3.0 license. See `LICENSE` for more information.\nThe project uses Marker under the hood, which has a commercial license that needs to be followed. Here are the details:\n\n### Commercial Usage\nMarker and Surya OCR Models are designed to be as widely accessible as possible while still funding development and training costs. Research and personal usage are always allowed, but there are some restrictions on commercial usage.\nThe weights for the models are licensed under cc-by-nc-sa-4.0. However, this restriction is waived for any organization with less than $5M USD in gross revenue in the most recent 12-month period AND less than $5M in lifetime VC\u002Fangel funding raised. To remove the GPL license requirements (dual-license) and\u002For use the weights commercially over the revenue limit, check out the options provided.\nPlease refer to [Marker](https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Fmarker) for more Information about the License of the Model weights\n\n## Acknowledgements\n\nThis project builds upon the remarkable [Marker](https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Fmarker) project created by [Vik Paruchuri](https:\u002F\u002Ftwitter.com\u002FVikParuchuri). We express our gratitude for the inspiration and foundation provided by this project. Special thanks to [Surya-OCR](https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Fsurya) and [Texify](https:\u002F\u002Fgithub.com\u002FVikParuchuri\u002Ftexify) for the OCR models extensively used in this project, and to [Crawl4AI](https:\u002F\u002Fgithub.com\u002Funclecode\u002Fcrawl4ai) for their contributions.\n\nModels being used:\n- Surya OCR, Detect, Layout, Order, and Texify\n- Florence-2 base\n- Whisper Small\n\nThank you to the authors for their contributions to these models.\n\n---\n\n## Contact\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fadithyask.com\">\n    \u003Cimg src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=adithya-s-k\u002Fomniparse&type=Date\" alt=\"Star History Chart\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\nFor any inquiries, please contact us at adithyaskolavi@gmail.com\n\n\n\u003C!-- \nInstall the client:\n\n```bash\npip install omniparse_client\n```\n\nExample usage:\n\n```python\nfrom omniparse_client import OmniParse\n\n# Initialize the parser\nparser = OmniParse(\n    base_url=\"http:\u002F\u002Flocalhost:8000\",\n    api_key=\"op-...\",  # get the API key from dev.omniparse.com\n    verbose=True,\n    language=\"en\"\n)\n\n# Parse a document\ndocument = parser.load_data('path\u002Fto\u002Fdocument.pdf')\n\n# Convert to markdown\nparser.save_to_markdown(document)\n```\n -->\n","OmniParse 是一个用于处理非结构化数据的平台，能够将文档、多媒体和网页等格式的数据解析并转换为适用于生成式人工智能（GenAI）框架的结构化数据。该项目支持约20种文件类型，包括文本、表格、图片、音频、视频及网页内容的提取与转录，并且可以完全本地运行而无需依赖外部API。其核心功能涵盖高质量结构化Markdown输出、表格抽取、图像识别与标注、音视频转录以及网页爬取等。特别适合需要对多种类型的数据进行预处理以供后续AI应用如检索增强生成（RAG）、模型微调等领域使用。此外，OmniParse提供了易于部署的Docker镜像以及友好的Colab集成方式，使得开发者能够快速上手体验。",2,"2026-06-11 03:40:01","high_star"]