- TTS: xtts-v2 integration with voice cloning support
- Document: docling integration for PDF/DOCX/PPTX processing
- Memory Service: added /facts/upsert, /facts/{key}, /facts endpoints
- Added required dependencies (TTS, docling)
90 lines
4.1 KiB
Markdown
90 lines
4.1 KiB
Markdown
# 🔍 OCR Architecture Summary
|
||
|
||
**Дата:** 2026-01-16
|
||
|
||
---
|
||
|
||
## ❓ Питання та відповіді
|
||
|
||
### 1. Чи можу я отримати ліцензію Datalab Chandra?
|
||
**Ні** — це потребує контакту з Datalab та оплати. Модель закрита.
|
||
|
||
### 2. Альтернативи OCR моделей:
|
||
|
||
| Модель | Статус | Призначення | VRAM |
|
||
|--------|--------|-------------|------|
|
||
| **GOT-OCR2.0** | ✅ Встановлюється | Документи, таблиці, формули, рукопис | ~8GB |
|
||
| **TrOCR** | ✅ Резервна | Друкований текст | ~2GB |
|
||
| **DeepSeek VL** | ⚠️ Через API | Vision + OCR | - |
|
||
| **IBM Docling** | ⚠️ Python бібліотека | PDF парсинг | CPU |
|
||
|
||
### 3. Чи потрібен MoE роутер?
|
||
**НІ** — MoE (Mixture of Experts) це внутрішня архітектура моделей, не для маршрутизації сервісів.
|
||
|
||
### 4. Чи достатньо Swapper сервісу?
|
||
**ТАК** — Swapper може:
|
||
- Керувати завантаженням OCR моделей
|
||
- Динамічно перемикати між моделями
|
||
- Вивантажувати неактивні моделі
|
||
|
||
### 5. Коли потрібен окремий OCR роутер?
|
||
Якщо потрібно:
|
||
- Кілька OCR сервісів одночасно
|
||
- Маршрутизація за типом документа (таблиці → GOT-OCR, текст → TrOCR)
|
||
- Fallback між сервісами
|
||
|
||
---
|
||
|
||
## 🎯 Обрана архітектура
|
||
|
||
```
|
||
┌─────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
||
│ Gateway │────▶│ DAGI Router │────▶│ OCR Service │
|
||
└─────────────┘ └──────────────────┘ │ (GOT-OCR2.0) │
|
||
└─────────────────┘
|
||
│
|
||
┌───────▼───────┐
|
||
│ Swapper │
|
||
│ (керування) │
|
||
└───────────────┘
|
||
```
|
||
|
||
### Чому GOT-OCR2.0?
|
||
1. **Найкраща open-source OCR** для документів та таблиць
|
||
2. **Доступна на HuggingFace** без ліцензії
|
||
3. **Підтримує**: документи, таблиці, формули, рукопис
|
||
4. **~8GB VRAM** — підходить для RTX 4000 SFF Ada (20GB)
|
||
|
||
---
|
||
|
||
## 📊 Порівняння OCR рішень
|
||
|
||
| Критерій | GOT-OCR2.0 | TrOCR | DeepSeek VL | Chandra |
|
||
|----------|------------|-------|-------------|---------|
|
||
| Таблиці | ✅ Відмінно | ❌ Базово | ⚠️ Через vision | ✅ Відмінно |
|
||
| Рукопис | ✅ Так | ✅ Окрема модель | ⚠️ Обмежено | ✅ Так |
|
||
| Формули | ✅ Так | ❌ Ні | ❌ Ні | ✅ Так |
|
||
| Ліцензія | ✅ Open | ✅ Open | ✅ Open | ❌ Платна |
|
||
| VRAM | 8GB | 2GB | API | 16GB+ |
|
||
|
||
---
|
||
|
||
## 🔧 Що встановлено
|
||
|
||
1. ✅ **OCR Inference Service** — з GOT-OCR2.0
|
||
2. ✅ **OCR API Service** — wrapper на порту 8002
|
||
3. ✅ **Router інтеграція** — `OCR_URL` та `CHANDRA_URL`
|
||
4. ✅ **Fallback** — TrOCR як резервна модель
|
||
|
||
---
|
||
|
||
## 📝 Наступні кроки (опціонально)
|
||
|
||
1. **Додати IBM Docling** — для PDF парсингу з таблицями
|
||
2. **Додати OCR роутер** — якщо потрібно кілька моделей одночасно
|
||
3. **Інтегрувати DeepSeek API** — для складних випадків
|
||
|
||
---
|
||
|
||
**Оновлено:** 2026-01-16
|