feat: Add presence heartbeat for Matrix online status
- 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
This commit is contained in:
372
NODE1-MULTIMODAL-SERVICES-STATUS.md
Normal file
372
NODE1-MULTIMODAL-SERVICES-STATUS.md
Normal file
@@ -0,0 +1,372 @@
|
||||
# 📊 Статус мультимодальних сервісів на 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 для повної функціональності.
|
||||
|
||||
**Статус:** 🟡 **ГОТОВО ДО ІНТЕГРАЦІЇ** (код є, потрібен деплой)
|
||||
|
||||
Reference in New Issue
Block a user