Комплексный инструментарий для OCR документов и мультимодальных AI-приложений
🚀 Быстрый старт • 📦 Модели • 🐳 Docker • 📊 GPU
🎯 Основные
|
⚡ Производительность
|
| Модель | Описание | Статус |
|---|---|---|
| Qwen3-VL 2B | OCR на 32 языках, визуальный агент, контекст 256K (включая Emergency Mode) | 🟢 Основная |
| dots.ocr | SOTA парсер документов, 100+ языков | 🟢 Работает |
| Модель | Проблема | Статус |
|---|---|---|
| Phi-3 Vision | Microsoft, есть только в vLLM, не функционирует | 🔴 Не работает |
| DeepSeek OCR | Интеграция не завершена | 🔴 Не работает |
| GOT-OCR 2.0 | Требует доработки | 🔴 Не работает |
| Qwen2-VL | Нестабильная, не доработана | 🟡 Нестабильна |
Все модели наследуют от BaseModel (ABC):
BaseModel (abstract)
├── _get_device() # Auto-detect CUDA/MPS/CPU
├── _get_load_kwargs() # dtype + device_map
├── extract_fields() # JSON field extraction
├── run() # Unified inference entry point
├── unload() # GPU memory cleanup
├── load() *abstract*
└── inference() *abstract*
┃
├── Qwen3VLModel # Qwen3-VL 2B
├── DotsOCRModel # dots.ocr
├── QwenVLModel # Qwen2-VL
└── GOTOCRModel # GOT-OCR 2.0
# Клонирование
git clone https://github.com/dispersi0no/CHAT-VLM-LLM.git
cd CHAT-VLM-LLM
# Зависимости
pip install -r requirements.txt
cp .env.example .env
# Отредактируйте .env под свои нужды
# 📦 Стандартная сборка
docker build -t chat-vlm-llm .
# 💨 Облегчённая версия
docker build -f Dockerfile.light -t chat-vlm-llm-light .
# ▶️ Запуск
docker-compose up -d
pytest tests/ -v
black . && isort .
При каждом push/PR автоматически запускаются:
| GPU | VRAM | Рекомендация | Статус |
|---|---|---|---|
| RTX 5090 | 32GB | Qwen3-VL 2B @ FP16 | 🟢 Идеально |
| RTX 5080 | 16GB | Qwen3-VL 2B @ FP16 | 🟢 Отлично |
| RTX 4090 | 24GB | Qwen3-VL 2B @ FP16 | 🟢 Отлично |
| RTX 4080 | 16GB | Qwen3-VL 2B @ INT8 | 🟡 Хорошо |
| RTX 3090 | 24GB | Qwen3-VL 2B @ FP16 | 🟡 Хорошо |
📂 CHAT-VLM-LLM/
├── 📂 models/
│ ├── ⬜ __init__.py
│ ├── ⬜ base_model.py # Abstract base — device, unload, extract_fields
│ ├── 🟢 qwen3_vl.py # Qwen3-VL 2B (основная)
│ ├── 🟢 dots_ocr.py # dots.ocr parser
│ ├── 🟡 qwen_vl.py # Qwen2-VL (нестабильна)
│ ├── 🔴 got_ocr.py # GOT-OCR 2.0 (не работает)
│ ├── ⬜ model_loader.py # Фабрика загрузки моделей
│ └── 📂 experimental/ # Экспериментальные модели
├── 📂 utils/ # Утилиты обработки
├── 📂 ui/ # Streamlit UI компоненты
│ ├── 📂 pages/ # Страницы (home, chat, ocr, docs)
│ ├── sidebar.py # Боковая панель
│ ├── components.py # Переиспользуемые компоненты
│ ├── message_renderer.py # Рендер сообщений чата
│ ├── bbox_display.py # Отображение bounding boxes
│ └── styles.py # CSS стили
├── 📂 tests/ # Pytest тесты
├── 📂 docs/ # Документация
├── 📂 .github/workflows/ # CI/CD (black, isort, pytest)
├── 🐳 Dockerfile # Docker образ
├── 💨 Dockerfile.light # Light версия
├── ⚙️ config.yaml # Конфигурация моделей
├── 🚀 app.py # Streamlit приложение
├── 🔌 api.py # FastAPI REST API
├── 📄 requirements.txt # Зависимости
└── 📄 LICENSE # MIT
Приветствуем вклад в проект! Смотрите CONTRIBUTING.md.
Этот проект распространяется под лицензией MIT
Python
96.6%
Jupyter Notebook
2.3%
Комплексный инструментарий для OCR документов и мультимодальных AI-приложений
🚀 Быстрый старт • 📦 Модели • 🐳 Docker • 📊 GPU
🎯 Основные
|
⚡ Производительность
|
| Модель | Описание | Статус |
|---|---|---|
| Qwen3-VL 2B | OCR на 32 языках, визуальный агент, контекст 256K (включая Emergency Mode) | 🟢 Основная |
| dots.ocr | SOTA парсер документов, 100+ языков | 🟢 Работает |
| Модель | Проблема | Статус |
|---|---|---|
| Phi-3 Vision | Microsoft, есть только в vLLM, не функционирует | 🔴 Не работает |
| DeepSeek OCR | Интеграция не завершена | 🔴 Не работает |
| GOT-OCR 2.0 | Требует доработки | 🔴 Не работает |
| Qwen2-VL | Нестабильная, не доработана | 🟡 Нестабильна |
Все модели наследуют от BaseModel (ABC):
BaseModel (abstract)
├── _get_device() # Auto-detect CUDA/MPS/CPU
├── _get_load_kwargs() # dtype + device_map
├── extract_fields() # JSON field extraction
├── run() # Unified inference entry point
├── unload() # GPU memory cleanup
├── load() *abstract*
└── inference() *abstract*
┃
├── Qwen3VLModel # Qwen3-VL 2B
├── DotsOCRModel # dots.ocr
├── QwenVLModel # Qwen2-VL
└── GOTOCRModel # GOT-OCR 2.0
# Клонирование
git clone https://github.com/dispersi0no/CHAT-VLM-LLM.git
cd CHAT-VLM-LLM
# Зависимости
pip install -r requirements.txt
cp .env.example .env
# Отредактируйте .env под свои нужды
# 📦 Стандартная сборка
docker build -t chat-vlm-llm .
# 💨 Облегчённая версия
docker build -f Dockerfile.light -t chat-vlm-llm-light .
# ▶️ Запуск
docker-compose up -d
pytest tests/ -v
black . && isort .
При каждом push/PR автоматически запускаются:
| GPU | VRAM | Рекомендация | Статус |
|---|---|---|---|
| RTX 5090 | 32GB | Qwen3-VL 2B @ FP16 | 🟢 Идеально |
| RTX 5080 | 16GB | Qwen3-VL 2B @ FP16 | 🟢 Отлично |
| RTX 4090 | 24GB | Qwen3-VL 2B @ FP16 | 🟢 Отлично |
| RTX 4080 | 16GB | Qwen3-VL 2B @ INT8 | 🟡 Хорошо |
| RTX 3090 | 24GB | Qwen3-VL 2B @ FP16 | 🟡 Хорошо |
📂 CHAT-VLM-LLM/
├── 📂 models/
│ ├── ⬜ __init__.py
│ ├── ⬜ base_model.py # Abstract base — device, unload, extract_fields
│ ├── 🟢 qwen3_vl.py # Qwen3-VL 2B (основная)
│ ├── 🟢 dots_ocr.py # dots.ocr parser
│ ├── 🟡 qwen_vl.py # Qwen2-VL (нестабильна)
│ ├── 🔴 got_ocr.py # GOT-OCR 2.0 (не работает)
│ ├── ⬜ model_loader.py # Фабрика загрузки моделей
│ └── 📂 experimental/ # Экспериментальные модели
├── 📂 utils/ # Утилиты обработки
├── 📂 ui/ # Streamlit UI компоненты
│ ├── 📂 pages/ # Страницы (home, chat, ocr, docs)
│ ├── sidebar.py # Боковая панель
│ ├── components.py # Переиспользуемые компоненты
│ ├── message_renderer.py # Рендер сообщений чата
│ ├── bbox_display.py # Отображение bounding boxes
│ └── styles.py # CSS стили
├── 📂 tests/ # Pytest тесты
├── 📂 docs/ # Документация
├── 📂 .github/workflows/ # CI/CD (black, isort, pytest)
├── 🐳 Dockerfile # Docker образ
├── 💨 Dockerfile.light # Light версия
├── ⚙️ config.yaml # Конфигурация моделей
├── 🚀 app.py # Streamlit приложение
├── 🔌 api.py # FastAPI REST API
├── 📄 requirements.txt # Зависимости
└── 📄 LICENSE # MIT
Приветствуем вклад в проект! Смотрите CONTRIBUTING.md.
Этот проект распространяется под лицензией MIT
Python
96.6%
Jupyter Notebook
2.3%