- 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
200 lines
8.6 KiB
Markdown
200 lines
8.6 KiB
Markdown
# ✅ Swapper Service інтегровано в кабінети нод
|
||
|
||
**Дата:** 2025-11-23
|
||
**Статус:** ✅ Готово до використання
|
||
|
||
---
|
||
|
||
## 🎉 Що зроблено
|
||
|
||
### ✅ 1. Видалено окрему сторінку Swapper
|
||
|
||
**Зміни:**
|
||
- ✅ Видалено маршрути `/swapper` та `/admin/swapper` з `src/App.tsx`
|
||
- ✅ Видалено імпорт `SwapperPage`
|
||
- ✅ Сторінка `SwapperPage` більше не використовується
|
||
|
||
**Результат:**
|
||
- ❌ `http://localhost:8899/swapper` - більше не доступна
|
||
- ✅ Інформація про Swapper Service тепер в кабінетах нод
|
||
|
||
---
|
||
|
||
### ✅ 2. Інтегровано Swapper Service в кабінети нод
|
||
|
||
**Файл:** `src/pages/NodeCabinetPage.tsx`
|
||
|
||
**Зміни:**
|
||
- ✅ Додано імпорт `SwapperStatusCard` та `SwapperMetricsSummary`
|
||
- ✅ Додано окрему секцію "Swapper Service" в вкладці "Сервіси"
|
||
- ✅ Відображення детальної інформації про Swapper Service для кожної ноди окремо
|
||
- ✅ Автоматичне визначення URL Swapper Service в залежності від ноди:
|
||
- НОДА1: `http://144.76.224.179:8890`
|
||
- НОДА2: `http://192.168.1.244:8890`
|
||
|
||
**Структура:**
|
||
```
|
||
Вкладка "Сервіси"
|
||
├── 🔄 Swapper Service (детальна інформація)
|
||
│ ├── SwapperStatusCard (статус, активна модель, список моделей)
|
||
│ └── SwapperMetricsSummary (метрики, статистика)
|
||
└── Інші сервіси ноди
|
||
├── Node Registry
|
||
├── NATS JetStream
|
||
└── NodeAgent (тільки НОДА2)
|
||
```
|
||
|
||
---
|
||
|
||
### ✅ 3. Оновлено SwapperComponents для підтримки нод
|
||
|
||
**Файл:** `src/components/swapper/SwapperComponents.tsx`
|
||
|
||
**Зміни:**
|
||
- ✅ Додано функцію `getSwapperUrl(nodeId)` для визначення URL по ноді
|
||
- ✅ `SwapperStatusCard` тепер приймає `nodeId` як prop
|
||
- ✅ `SwapperMetricsSummary` тепер приймає `nodeId` як prop
|
||
- ✅ Автоматичне визначення правильного URL для кожної ноди
|
||
|
||
**Environment Variables:**
|
||
```bash
|
||
VITE_SWAPPER_NODE1_URL=http://144.76.224.179:8890
|
||
VITE_SWAPPER_NODE2_URL=http://192.168.1.244:8890
|
||
VITE_SWAPPER_URL=http://localhost:8890 # fallback
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 Структура кабінету ноди
|
||
|
||
### Вкладка "Сервіси"
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────┐
|
||
│ 🔄 Swapper Service │
|
||
│ Динамічне завантаження та управління AI моделями │
|
||
├─────────────────────────────────────────────────┤
|
||
│ ┌─────────────────────┬──────────────────────┐ │
|
||
│ │ SwapperStatusCard │ SwapperMetricsSummary │ │
|
||
│ │ (2/3 ширини) │ (1/3 ширини) │ │
|
||
│ │ │ │ │
|
||
│ │ - Статус сервісу │ - Всього моделей │ │
|
||
│ │ - Активна модель │ - Активних │ │
|
||
│ │ - Список моделей │ - Доступних │ │
|
||
│ │ - Кнопки управління │ - Uptime │ │
|
||
│ │ │ - Запитів │ │
|
||
│ └─────────────────────┴──────────────────────┘ │
|
||
└─────────────────────────────────────────────────┘
|
||
|
||
┌─────────────────────────────────────────────────┐
|
||
│ Інші сервіси ноди │
|
||
│ Сервіси та координатори НОДА1/НОДА2 │
|
||
├─────────────────────────────────────────────────┤
|
||
│ • Node Registry (порт 9205) │
|
||
│ • NATS JetStream (порт 4222) │
|
||
│ • NodeAgent (порт 9600) - тільки НОДА2 │
|
||
│ • RAG Router (порт 9401) - тільки НОДА2 │
|
||
└─────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 Як використати
|
||
|
||
### 1. Відкрити кабінет ноди
|
||
|
||
```bash
|
||
# НОДА1
|
||
http://localhost:8899/nodes/node-1-hetzner-gex44
|
||
|
||
# НОДА2
|
||
http://localhost:8899/nodes/node-2
|
||
```
|
||
|
||
### 2. Перейти на вкладку "Сервіси"
|
||
|
||
1. Відкрити кабінет ноди
|
||
2. Натиснути на вкладку "Сервіси"
|
||
3. Побачити детальну інформацію про Swapper Service
|
||
|
||
### 3. Переглянути інформацію про Swapper Service
|
||
|
||
- **Статус сервісу** - healthy/degraded/unhealthy
|
||
- **Активна модель** - яка модель зараз завантажена
|
||
- **Список моделей** - всі доступні моделі з їх статусами
|
||
- **Метрики** - статистика використання
|
||
- **Кнопки управління** - завантажити/вивантажити модель
|
||
|
||
---
|
||
|
||
## 🔧 Налаштування
|
||
|
||
### Environment Variables
|
||
|
||
Додати до `.env`:
|
||
|
||
```bash
|
||
# Swapper Service URLs для кожної ноди
|
||
VITE_SWAPPER_NODE1_URL=http://144.76.224.179:8890
|
||
VITE_SWAPPER_NODE2_URL=http://192.168.1.244:8890
|
||
VITE_SWAPPER_URL=http://localhost:8890 # fallback
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Переваги нової структури
|
||
|
||
1. **Відокремленість по НОДАХ**
|
||
- Кожна нода має свою інформацію про Swapper Service
|
||
- Не плутаються дані з різних нод
|
||
- Чітке розділення метрик та сервісів
|
||
|
||
2. **Централізована інформація**
|
||
- Вся інформація про ноду в одному місці
|
||
- Swapper Service, інші сервіси, агенти, метрики - все в кабінеті ноди
|
||
|
||
3. **Зручність**
|
||
- Не потрібно переходити на окрему сторінку
|
||
- Вся інформація доступна в контексті ноди
|
||
|
||
---
|
||
|
||
## 📝 Наступні кроки (опціонально)
|
||
|
||
1. **Додати реальні метрики з Prometheus**
|
||
- Підключити до Prometheus для отримання реальних метрик
|
||
- Відображати графіки використання моделей
|
||
|
||
2. **Додати історію завантаження моделей**
|
||
- Показувати коли та які моделі завантажувалися
|
||
- Статистика використання кожної моделі
|
||
|
||
3. **Додати автоматичне завантаження моделей**
|
||
- Налаштування правил автоматичного завантаження
|
||
- Тригери для завантаження моделей
|
||
|
||
---
|
||
|
||
## ✅ Статус
|
||
|
||
**Готово:**
|
||
- ✅ Видалено окрему сторінку `/swapper`
|
||
- ✅ Інтегровано Swapper Service в кабінети нод
|
||
- ✅ Відокремлена інформація по НОДАХ
|
||
- ✅ Детальна інформація про Swapper Service для кожної ноди
|
||
- ✅ Автоматичне визначення URL по ноді
|
||
|
||
**Результат:**
|
||
- ✅ Інформація по НОДАХ відокремлена
|
||
- ✅ Swapper Service відображається в кабінетах нод
|
||
- ✅ Зручна навігація та структура
|
||
|
||
---
|
||
|
||
**Swapper Service повністю інтегровано в кабінети нод!** 🎉
|
||
|
||
**Доступ:**
|
||
- НОДА1: `http://localhost:8899/nodes/node-1-hetzner-gex44` → Вкладка "Сервіси"
|
||
- НОДА2: `http://localhost:8899/nodes/node-2` → Вкладка "Сервіси"
|
||
|