- 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)
135 lines
3.5 KiB
Markdown
135 lines
3.5 KiB
Markdown
# 🚀 Datalab Chandra - Швидкий старт
|
||
|
||
**Дата:** 2026-01-12
|
||
|
||
---
|
||
|
||
## ✅ Підтверджено: Це нормально!
|
||
|
||
**Так, встановлення Datalab Chandra для обробки документів та таблиць — відмінна ідея!**
|
||
|
||
---
|
||
|
||
## 📋 Що вже зроблено
|
||
|
||
1. ✅ Створено `chandra-service` — API wrapper для Chandra
|
||
2. ✅ Додано в `docker-compose.node1.yml`:
|
||
- `chandra-inference` — контейнер для inference (потрібен реальний образ)
|
||
- `chandra-service` — API wrapper сервіс
|
||
3. ✅ Оновлено Router:
|
||
- `OCR_URL` → `http://chandra-service:8002`
|
||
- Додано `CHANDRA_URL`
|
||
|
||
---
|
||
|
||
## 🔧 Що потрібно зробити
|
||
|
||
### 1. Отримати Docker образ Chandra
|
||
|
||
**Варіант A: Офіційний Datalab (потрібна ліцензія)**
|
||
```bash
|
||
# Потрібно отримати доступ до Datalab registry
|
||
docker pull datalab/chandra-inference:latest
|
||
```
|
||
|
||
**Варіант B: HuggingFace модель (open-source)**
|
||
- Використати модель з HuggingFace
|
||
- Створити власний Dockerfile
|
||
|
||
### 2. Оновити docker-compose.node1.yml
|
||
|
||
Замінити placeholder:
|
||
```yaml
|
||
chandra-inference:
|
||
image: python:3.11-slim # ← Замінити на реальний образ
|
||
```
|
||
|
||
На реальний образ:
|
||
```yaml
|
||
chandra-inference:
|
||
image: datalab/chandra-inference:latest # або ваш образ
|
||
```
|
||
|
||
### 3. Налаштувати ліцензію (якщо потрібна)
|
||
|
||
Додати в `.env`:
|
||
```bash
|
||
CHANDRA_LICENSE_KEY=your_license_key_here
|
||
CHANDRA_MODEL=chandra-small # або chandra
|
||
```
|
||
|
||
### 4. Запустити сервіси
|
||
|
||
```bash
|
||
cd /opt/microdao-daarion
|
||
docker compose -f docker-compose.node1.yml up -d chandra-inference chandra-service
|
||
```
|
||
|
||
### 5. Перевірити
|
||
|
||
```bash
|
||
# Health check
|
||
curl http://localhost:8002/health
|
||
|
||
# Список моделей
|
||
curl http://localhost:8002/models
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 Вимоги
|
||
|
||
- **GPU:** NVIDIA RTX 4000 SFF Ada (20GB VRAM) — достатньо для `chandra-small`
|
||
- **VRAM:**
|
||
- `chandra-small`: ~8GB
|
||
- `chandra`: ~16GB
|
||
- **Ліцензія:** Потрібна для комерційного використання
|
||
|
||
---
|
||
|
||
## 🔗 Інтеграція
|
||
|
||
### Router:
|
||
- Використовує `CHANDRA_URL` для обробки документів
|
||
- Автоматично маршрутизує OCR запити
|
||
|
||
### Gateway:
|
||
- `doc_service.py` може викликати Chandra через Router
|
||
- Або напряму через `chandra-service:8002`
|
||
|
||
---
|
||
|
||
## 📝 Приклад використання
|
||
|
||
```python
|
||
import httpx
|
||
|
||
async with httpx.AsyncClient() as client:
|
||
response = await client.post(
|
||
"http://chandra-service:8002/process",
|
||
files={"file": ("document.pdf", file_data)},
|
||
data={
|
||
"output_format": "markdown",
|
||
"accurate_mode": "false"
|
||
}
|
||
)
|
||
result = response.json()
|
||
markdown = result["result"]["markdown"]
|
||
```
|
||
|
||
---
|
||
|
||
## ⚠️ Важливо
|
||
|
||
1. **Docker образ:** Потрібно замінити placeholder на реальний образ
|
||
2. **Ліцензія:** Для повної версії потрібна ліцензія Datalab
|
||
3. **VRAM:** Переконайтеся, що GPU має достатньо пам'яті
|
||
|
||
---
|
||
|
||
**Готово до встановлення!**
|
||
|
||
---
|
||
|
||
**Оновлено:** 2026-01-12
|