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

110
HELION-EMBEDDING-API.md Normal file
View File

@@ -0,0 +1,110 @@
# 🔌 API для ембендінгу
**Дата:** 2026-01-12
---
## 📋 Знайдені API для ембендінгу
### 1. **Vision Encoder Service** (OpenCLIP)
**Призначення:** Текст та зображення embeddings
- **Порт:** 8001
- **Технологія:** OpenCLIP (ViT-L-14)
- **Модель:** OpenAI pretrained
- **Функції:**
- Текст embeddings
- Зображення embeddings
- Multimodal embeddings
- Інтеграція з Qdrant
**Endpoints:**
- `POST /embed` - генерація embeddings
- `GET /health` - health check
**Конфігурація:**
```yaml
vision-encoder:
ports:
- "8001:8001"
environment:
- DEVICE=cpu # або cuda для GPU
- MODEL_NAME=ViT-L-14
- MODEL_PRETRAINED=openai
- NORMALIZE_EMBEDDINGS=true
- QDRANT_HOST=qdrant
- QDRANT_PORT=6333
```
---
### 2. **Memory Service Embedding Layer** (Cohere)
**Призначення:** Текст embeddings через Cohere API
- **Технологія:** Cohere API
- **Модель:** `embed-multilingual-v3.0`
- **Розмірність:** 1024
- **Функції:**
- Текст embeddings
- Batch embeddings
- Search document embeddings
- Search query embeddings
**Використання:**
```python
from services.memory-service.app.embedding import get_embeddings
embeddings = await get_embeddings(
texts=["текст для embedding"],
input_type="search_document" # або "search_query"
)
```
---
### 3. **Memory Orchestrator Embedding Client**
**Призначення:** Простий клієнт для embeddings
- **Endpoint:** `http://localhost:8001/embed` (Vision Encoder)
- **Fallback:** Stub embeddings якщо сервіс недоступний
**Використання:**
```python
from services.memory-orchestrator.embedding_client import EmbeddingClient
client = EmbeddingClient(endpoint="http://vision-encoder:8001/embed")
embedding = await client.embed("текст")
```
---
## 🔄 Інтеграція з Helion
### Через Router:
Router має доступ до Vision Encoder через:
- `VISION_ENCODER_URL=http://vision-encoder:8001`
### Через Memory Service:
Memory Service використовує Cohere API для embeddings документів.
### Через Qdrant:
Vision Encoder автоматично зберігає embeddings в Qdrant для векторного пошуку.
---
## 📝 Конфігурація для НОДА1
В `docker-compose.node1.yml` додано:
```yaml
vision-encoder:
ports:
- "8001:8001"
environment:
- DEVICE=cpu # НОДА1 без GPU
- QDRANT_HOST=qdrant
- QDRANT_PORT=6333
```
---
**Оновлено:** 2026-01-12