- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
373 lines
13 KiB
Markdown
373 lines
13 KiB
Markdown
# 📊 Статус мультимодальних сервісів на NODE1
|
||
|
||
**Дата:** 2025-11-23
|
||
**Питання:** Чи працюють мультимодальні сервіси з кожним агентом на NODE1?
|
||
**Відповідь:** ⚠️ **ЧАСТКОВО** - потрібна інтеграція
|
||
|
||
---
|
||
|
||
## 🎯 ПОТОЧНА СИТУАЦІЯ
|
||
|
||
### ✅ Що ВЖЕ працює на NODE1:
|
||
|
||
#### 1. **Router (9102)** - Базова маршрутизація
|
||
- ✅ Telegram боти підключені (DAARWIZZ, Helion, GREENFOOD)
|
||
- ✅ Всі 13 агентів NODE1 доступні через Router
|
||
- ✅ Текстові повідомлення працюють
|
||
- ✅ Базовий чат з агентами
|
||
|
||
**Поточний запит:**
|
||
```json
|
||
POST http://144.76.224.179:9102/route
|
||
{
|
||
"agent": "helion",
|
||
"message": "Привіт!",
|
||
"mode": "chat"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
#### 2. **Telegram Gateway (9200)** - Базова інтеграція
|
||
**Файл:** `telegram-infrastructure/telegram-gateway`
|
||
|
||
**Що працює:**
|
||
- ✅ Long polling через Local Telegram Bot API (8081)
|
||
- ✅ NATS event bus (`agent.telegram.update`)
|
||
- ✅ 3 активні боти:
|
||
- @DAARWIZZBot
|
||
- @energyunionBot
|
||
- @greenfoodliveBot
|
||
|
||
**Поточні можливості:**
|
||
- 📝 Текстові повідомлення
|
||
- 📷 Фото (але не обробляються!)
|
||
- 🎤 Голосові (але не транскрибуються!)
|
||
- 📎 Файли (але не обробляються!)
|
||
|
||
---
|
||
|
||
#### 3. **Існуючі сервіси на NODE1** (з інвентаризації)
|
||
```bash
|
||
# STT Service (старий)
|
||
http://dagi-stt:9000/stt # через docker network
|
||
|
||
# TTS Service
|
||
http://dagi-tts:9100/tts
|
||
|
||
# Parser Service
|
||
http://dagi-parser:9400
|
||
|
||
# Vision / Swapper
|
||
http://144.76.224.179:8890 # qwen3-vl:8b
|
||
```
|
||
|
||
---
|
||
|
||
### ❌ Що НЕ працює (потрібна інтеграція):
|
||
|
||
#### 1. **Мультимодальні сервіси (НОДА2)**
|
||
**Розташування:** НОДА2 (192.168.1.244)
|
||
|
||
| Сервіс | Порт | Статус | Доступ з NODE1 |
|
||
|--------|------|--------|----------------|
|
||
| STT Service (новий) | 8895 | ✅ Готовий | ❌ Не підключено |
|
||
| OCR Service | 8896 | ✅ Готовий | ❌ Не підключено |
|
||
| Web Search | 8897 | ✅ Готовий | ❌ Не підключено |
|
||
| Vector DB | 8898 | ✅ Готовий | ❌ Не підключено |
|
||
|
||
**Проблема:** Сервіси створені, але не інтегровані з Router на NODE1!
|
||
|
||
---
|
||
|
||
#### 2. **Router Multimodal Support**
|
||
**Файл:** `services/router-multimodal/router_multimodal.py`
|
||
|
||
**Статус:** 📝 Код готовий, але НЕ інтегрований!
|
||
|
||
**Що потрібно:**
|
||
- [ ] Додати `process_images()` в Router
|
||
- [ ] Додати `process_files()` в Router
|
||
- [ ] Оновити `/route` endpoint
|
||
- [ ] Додати Vision agents маппінг
|
||
|
||
---
|
||
|
||
## 🤔 ВІДПОВІДЬ НА ПИТАННЯ
|
||
|
||
### Чи працюють мультимодальні сервіси з агентами NODE1?
|
||
|
||
**Коротка відповідь:** ❌ **НІ**, поки що не працюють.
|
||
|
||
**Детальна відповідь:**
|
||
|
||
#### 📝 **Текстовий чат:**
|
||
✅ **ТАК** - працює для всіх агентів через:
|
||
- Frontend чат (`http://localhost:8899`)
|
||
- Telegram боти (@DAARWIZZBot, @energyunionBot, @greenfoodliveBot)
|
||
- Router API (`http://144.76.224.179:9102/route`)
|
||
|
||
---
|
||
|
||
#### 🎤 **Голосові повідомлення (Voice → Text):**
|
||
⚠️ **ЧАСТКОВО**
|
||
|
||
**Telegram боти:**
|
||
- ❌ **НЕ транскрибуються** - голос надходить, але не конвертується в текст
|
||
- Існує старий STT на NODE1 (`dagi-stt:9000`), але він не інтегрований з Telegram Gateway
|
||
|
||
**Frontend чат:**
|
||
- ✅ **Запис працює** (Web Audio API)
|
||
- ❌ **Транскрипція НЕ працює** - новий STT Service (НОДА2:8895) готовий, але не підключений
|
||
|
||
**Що потрібно:**
|
||
1. Інтегрувати STT Service (НОДА2:8895) з Telegram Gateway
|
||
2. Додати автоматичну транскрипцію голосових повідомлень
|
||
|
||
---
|
||
|
||
#### 📷 **Зображення (Image → Analysis):**
|
||
⚠️ **ЧАСТКОВО**
|
||
|
||
**Telegram боти:**
|
||
- ✅ Можуть **отримувати** фото
|
||
- ❌ **НЕ обробляють** - потрібна інтеграція з Vision agents
|
||
|
||
**Frontend чат:**
|
||
- ✅ **Upload працює** (Enhanced Chat)
|
||
- ❌ **Vision аналіз НЕ працює** - Router не підтримує `payload.context.images`
|
||
|
||
**Що потрібно:**
|
||
1. Оновити Router для підтримки `images` в payload
|
||
2. Підключити Vision agents (Sofia grok-4.1, Spectra qwen3-vl)
|
||
3. Інтегрувати з Telegram Gateway
|
||
|
||
---
|
||
|
||
#### 📎 **Файли (Document → Extract Text):**
|
||
⚠️ **ЧАСТКОВО**
|
||
|
||
**Telegram боти:**
|
||
- ✅ Можуть **отримувати** документи
|
||
- ⚠️ **Parser Service існує** (`dagi-parser:9400`), але обмежений
|
||
- ❌ **OCR НЕ підключений** для сканів/зображень з текстом
|
||
|
||
**Frontend чат:**
|
||
- ✅ **Upload працює** (Enhanced Chat)
|
||
- ❌ **OCR НЕ працює** - OCR Service (НОДА2:8896) не підключений
|
||
|
||
**Що потрібно:**
|
||
1. Інтегрувати OCR Service для витягу тексту з зображень
|
||
2. Розширити Parser Service для більшої кількості форматів
|
||
3. Додати підтримку `files` в Router payload
|
||
|
||
---
|
||
|
||
#### 🌐 **Веб-пошук (Web Search):**
|
||
⚠️ **ЧАСТКОВО**
|
||
|
||
**Router:**
|
||
- ✅ Існує `mode=web_search` в Router
|
||
- ❌ Не використовує новий Web Search Service (НОДА2:8897)
|
||
|
||
**Frontend чат:**
|
||
- ✅ **UI кнопка є** (Enhanced Chat)
|
||
- ❌ **Не підключена** до Web Search Service
|
||
|
||
**Що потрібно:**
|
||
1. Інтегрувати Web Search Service в Router
|
||
2. Підключити до Telegram Gateway
|
||
3. Активувати в Frontend
|
||
|
||
---
|
||
|
||
#### 📚 **Knowledge Base (Vector DB):**
|
||
❌ **НІ** - зовсім не працює
|
||
|
||
**Статус:**
|
||
- ✅ Vector DB Service готовий (НОДА2:8898)
|
||
- ✅ Frontend UI готовий (Knowledge Base компонент)
|
||
- ❌ **Не інтегрований** з жодним агентом
|
||
- ❌ **RAG не працює**
|
||
|
||
**Що потрібно:**
|
||
1. Підключити Vector DB до Router
|
||
2. Реалізувати RAG (Retrieval-Augmented Generation)
|
||
3. Додати API для завантаження документів
|
||
|
||
---
|
||
|
||
## 🔧 ЩО ПОТРІБНО ЗРОБИТИ
|
||
|
||
### Пріоритет 1: Інтеграція Router Multimodal
|
||
|
||
**Файли для оновлення:**
|
||
```bash
|
||
# NODE1
|
||
/opt/microdao-daarion/router/main.py
|
||
/opt/microdao-daarion/router/router-config-final.yml
|
||
```
|
||
|
||
**Код готовий:** `services/router-multimodal/router_multimodal.py`
|
||
|
||
**Зміни:**
|
||
1. Додати `process_images()` функцію
|
||
2. Додати `process_files()` функцію
|
||
3. Оновити `/route` endpoint для підтримки `payload.context.images` та `payload.context.files`
|
||
4. Додати Vision agents маппінг (Sofia, Spectra)
|
||
|
||
**Час:** ~2-3 години
|
||
|
||
---
|
||
|
||
### Пріоритет 2: Інтеграція Telegram Gateway з мультимодальними сервісами
|
||
|
||
**Файл для оновлення:**
|
||
```bash
|
||
telegram-infrastructure/telegram-gateway/app/main.py
|
||
```
|
||
|
||
**Зміни:**
|
||
1. При отриманні голосового повідомлення → викликати STT Service (НОДА2:8895)
|
||
2. При отриманні фото → передати в Router з `images` payload
|
||
3. При отриманні документа → викликати OCR/Parser
|
||
4. Додати підтримку веб-пошуку через команди
|
||
|
||
**Час:** ~3-4 години
|
||
|
||
---
|
||
|
||
### Пріоритет 3: Інтеграція Frontend з мультимодальними сервісами
|
||
|
||
**Файли для оновлення:**
|
||
```
|
||
src/components/microdao/MicroDaoOrchestratorChatEnhanced.tsx
|
||
src/components/microdao/chat/MultimodalInput.tsx
|
||
```
|
||
|
||
**Зміни:**
|
||
1. ✅ STT вже інтегрований
|
||
2. Додати виклик OCR Service при upload зображення з текстом
|
||
3. Активувати Web Search Service
|
||
4. Підключити Vector DB для Knowledge Base
|
||
|
||
**Час:** ~2 години
|
||
|
||
---
|
||
|
||
## 📊 ПІДСУМОК
|
||
|
||
### Поточний стан мультимодальності:
|
||
|
||
| Функція | Frontend | Telegram | Router | Статус |
|
||
|---------|----------|----------|--------|--------|
|
||
| 📝 Текст | ✅ | ✅ | ✅ | **ПРАЦЮЄ** |
|
||
| 🎤 Голос → Текст | ⚠️ | ❌ | ❌ | **ЧАСТКОВО** |
|
||
| 📷 Зображення → Vision | ❌ | ❌ | ❌ | **НЕ ПРАЦЮЄ** |
|
||
| 📷 Зображення → OCR | ❌ | ❌ | ❌ | **НЕ ПРАЦЮЄ** |
|
||
| 📎 Документи | ⚠️ | ⚠️ | ⚠️ | **ЧАСТКОВО** |
|
||
| 🌐 Веб-пошук | ❌ | ❌ | ⚠️ | **НЕ ПРАЦЮЄ** |
|
||
| 📚 Knowledge Base | ❌ | ❌ | ❌ | **НЕ ПРАЦЮЄ** |
|
||
|
||
---
|
||
|
||
### Відповідь на питання:
|
||
|
||
**"На НОДА1 всі мультимодальні сервіси працюють з кожним агентом який підключено до чату або телеграм бота?"**
|
||
|
||
❌ **НІ**, на даний момент:
|
||
|
||
1. **Мультимодальні сервіси створені** (STT, OCR, Web Search, Vector DB) на НОДА2
|
||
2. **Frontend UI готовий** (Enhanced Chat з кнопками)
|
||
3. **Router НЕ підтримує** multimodal payload
|
||
4. **Telegram боти НЕ обробляють** голос/фото/файли через нові сервіси
|
||
5. **Агенти отримують** тільки текстові повідомлення
|
||
|
||
---
|
||
|
||
### Щоб запрацювало:
|
||
|
||
**Необхідні кроки:**
|
||
|
||
1. **Інтегрувати Router Multimodal** (NODE1)
|
||
- Час: ~2-3 години
|
||
- Файл: `router/main.py`
|
||
- Код готовий: `services/router-multimodal/router_multimodal.py`
|
||
|
||
2. **Оновити Telegram Gateway** (NODE1)
|
||
- Час: ~3-4 години
|
||
- Файл: `telegram-gateway/app/main.py`
|
||
- Додати виклики STT/OCR/Parser
|
||
|
||
3. **Налаштувати мережеве з'єднання** НОДА2 → NODE1
|
||
- Час: ~1 година
|
||
- Відкрити порти: 8895, 8896, 8897, 8898
|
||
- Налаштувати firewall/SSH тунелі
|
||
|
||
**Загальний час:** ~7-9 годин роботи
|
||
|
||
---
|
||
|
||
## 🚀 ШВИДКИЙ СТАРТ
|
||
|
||
### Варіант 1: Мінімальна інтеграція (тільки STT для голосу)
|
||
|
||
```bash
|
||
# 1. Відкрити порт STT Service на НОДА2
|
||
ssh apple@192.168.1.244
|
||
sudo ufw allow 8895/tcp
|
||
|
||
# 2. Оновити Telegram Gateway на NODE1
|
||
ssh root@144.76.224.179
|
||
cd /opt/microdao-daarion/telegram-gateway
|
||
|
||
# Додати в app/main.py:
|
||
# async def transcribe_voice(file_id: str) -> str:
|
||
# # Download voice from Telegram
|
||
# # Send to НОДА2:8895/api/stt
|
||
# # Return transcribed text
|
||
```
|
||
|
||
**Результат:** Голосові повідомлення в Telegram → автоматично конвертуються в текст → агент отримує текст
|
||
|
||
**Час:** ~1-2 години
|
||
|
||
---
|
||
|
||
### Варіант 2: Повна інтеграція (всі сервіси)
|
||
|
||
1. Деплой всіх сервісів на НОДА2
|
||
2. Інтеграція Router Multimodal
|
||
3. Оновлення Telegram Gateway
|
||
4. Налаштування мережі
|
||
5. End-to-end тестування
|
||
|
||
**Час:** ~7-9 годин
|
||
|
||
---
|
||
|
||
## 📞 РЕКОМЕНДАЦІЇ
|
||
|
||
### Для швидкого результату:
|
||
|
||
1. **Почати з STT** (голосові → текст)
|
||
- Найпростіша інтеграція
|
||
- Великий ефект для користувачів
|
||
- 1-2 години роботи
|
||
|
||
2. **Потім Vision** (зображення → аналіз)
|
||
- Інтеграція Sofia/Spectra
|
||
- Router Multimodal
|
||
- 3-4 години роботи
|
||
|
||
3. **Останнім OCR + Web Search**
|
||
- Менше використовується
|
||
- Може почекати
|
||
|
||
---
|
||
|
||
**ВИСНОВОК:** Мультимодальні сервіси **створені та готові**, але **не інтегровані** з агентами. Потрібна інтеграція Router + Telegram Gateway для повної функціональності.
|
||
|
||
**Статус:** 🟡 **ГОТОВО ДО ІНТЕГРАЦІЇ** (код є, потрібен деплой)
|
||
|