Важный
OmniParse — это платформа, которая принимает и анализирует любые неструктурированные данные в структурированные, полезные данные, оптимизированные для приложений GenAI (LLM). Независимо от того, работаете ли вы с документами, таблицами, изображениями, видео, аудиофайлами или веб-страницами, OmniParse подготавливает ваши данные чистыми, структурированными и готовыми к использованию приложений искусственного интеллекта, таких как RAG, точная настройка и т. д.
✅ Полностью локальный, без внешних API
✅ Подходит для графического процессора T4
✅ Поддерживает ~20 типов файлов
✅ Преобразуйте документы, мультимедиа и веб-страницы в высококачественную структурированную уценку.
✅ Извлечение таблиц, извлечение изображений/подписей, транскрипция аудио/видео, сканирование веб-страниц.
✅ Легко развертывается с помощью Docker и Skypilot.
✅ Дружелюбен к коллабам
✅ Интерактивный пользовательский интерфейс на базе Gradio
Обрабатывать данные сложно, поскольку они бывают разных форм и размеров. OmniParse стремится стать платформой приема/анализа, с помощью которой вы можете принимать любые типы данных, такие как документы, изображения, аудио, видео и веб-контент, и получать наиболее структурированный и действенный вывод, дружественный 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 ГБ видеопамяти.
Ограничения синтаксического анализа документов
OmniParse распространяется по лицензии GPL-3.0. См. LICENSE
для получения дополнительной информации. В проекте используется Marker, имеющий коммерческую лицензию, которой необходимо следовать. Вот подробности:
Модели Marker и Surya OCR разработаны так, чтобы быть максимально доступными и при этом финансировать затраты на разработку и обучение. Исследования и личное использование всегда разрешены, но существуют некоторые ограничения на коммерческое использование. Веса моделей лицензированы по лицензии cc-by-nc-sa-4.0. Однако это ограничение снимается с любой организации с валовым доходом менее 5 миллионов долларов США за последний 12-месячный период И менее 5 миллионов долларов США за весь срок привлеченного венчурного капитала или ангельского финансирования. Чтобы отменить требования лицензии GPL (двойная лицензия) и/или использовать веса в коммерческих целях сверх предела дохода, ознакомьтесь с предоставленными вариантами. Пожалуйста, обратитесь к Маркеру для получения дополнительной информации о лицензии на модельные гири.
Этот проект основан на замечательном проекте Marker, созданном Виком Паручури. Выражаем благодарность за вдохновение и фундамент, предоставленные этим проектом. Особая благодарность Surya-OCR и Texify за модели оптического распознавания символов, широко используемые в этом проекте, а также Crawl4AI за их вклад.
Используемые модели:
Спасибо авторам за вклад в эти модели.