feat: implement TTS, Document processing, and Memory Service /facts API

- 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)
This commit is contained in:
Apple
2026-01-17 08:16:37 -08:00
parent a9fcadc6e2
commit 5290287058
121 changed files with 17071 additions and 436 deletions

View File

@@ -0,0 +1,89 @@
# 🔍 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