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:
Apple
2025-11-27 00:19:40 -08:00
parent 5bed515852
commit 3de3c8cb36
6371 changed files with 1317450 additions and 932 deletions

View File

@@ -0,0 +1,338 @@
# 📋 Інструкція: Налаштування Swapper Service на Node #1
**Дата:** 2025-11-22
**Мета:** Налаштувати Swapper Service на Node #1 для відображення моделей в моніторі
---
## 🔍 Поточний стан
- ✅ Swapper Service працює (`/health` повертає `healthy`)
- ✅ Endpoint `/status` доступний
- ✅ Endpoint `/models` доступний
- ❌ Моделі не налаштовані (порожній список: `{"object":"list","data":[]}`)
---
## 📝 Крок 1: Підключитися до Node #1
```bash
# SSH підключення до Node #1
ssh root@144.76.224.179
# або через ваш SSH ключ
```
---
## 📝 Крок 2: Перевірити конфігурацію Swapper Service
### 2.1 Знайти конфігураційний файл
```bash
# Перевірити де знаходиться Swapper Service
docker ps | grep swapper
# Знайти конфігураційний файл
find / -name "swapper_config.yaml" 2>/dev/null
# або
find /opt /var /home -name "swapper_config.yaml" 2>/dev/null
```
### 2.2 Перевірити поточну конфігурацію
```bash
# Якщо знайдено файл, переглянути його
cat /path/to/swapper-service/config/swapper_config.yaml
```
**Очікуваний формат:**
```yaml
mode: single-active
max_concurrent_models: 1
model_swap_timeout: 300
gpu_acceleration: true
metal_acceleration: false
models:
qwen3:8b:
path: ollama:qwen3:8b
type: llm
size_gb: 4.7
priority: high
vision-8b:
path: ollama:qwen3-vl:8b
type: vision
size_gb: 8.2
priority: high
```
---
## 📝 Крок 3: Перевірити Ollama на Node #1
### 3.1 Перевірити чи працює Ollama
```bash
# Перевірити чи працює Ollama
curl http://localhost:11434/api/tags
# Або через Docker
docker exec ollama ollama list
```
### 3.2 Якщо Ollama працює, перевірити доступні моделі
```bash
# Список моделей в Ollama
curl http://localhost:11434/api/tags | jq '.models[].name'
# Приклад виводу:
# "qwen3:8b"
# "qwen3-vl:8b"
```
---
## 📝 Крок 4: Налаштувати моделі
### Варіант A: Якщо є конфігураційний файл
1. **Відредагувати конфігурацію:**
```bash
# Відкрити файл для редагування
nano /path/to/swapper-service/config/swapper_config.yaml
# або
vi /path/to/swapper-service/config/swapper_config.yaml
```
2. **Додати моделі до конфігурації:**
```yaml
models:
qwen3:8b:
path: ollama:qwen3:8b
type: llm
size_gb: 4.7
priority: high
vision-8b:
path: ollama:qwen3-vl:8b
type: vision
size_gb: 8.2
priority: high
```
3. **Зберегти файл**
### Варіант B: Якщо конфігураційного файлу немає
1. **Створити конфігураційний файл:**
```bash
# Створити директорію для конфігурації
mkdir -p /opt/swapper-service/config
# Створити файл конфігурації
cat > /opt/swapper-service/config/swapper_config.yaml << 'EOF'
mode: single-active
max_concurrent_models: 1
model_swap_timeout: 300
gpu_acceleration: true
metal_acceleration: false
models:
qwen3:8b:
path: ollama:qwen3:8b
type: llm
size_gb: 4.7
priority: high
vision-8b:
path: ollama:qwen3-vl:8b
type: vision
size_gb: 8.2
priority: high
EOF
```
2. **Переконатися, що файл доступний для Swapper Service**
### Варіант C: Автоматичне завантаження з Ollama
Якщо Swapper Service налаштований на автоматичне завантаження моделей з Ollama:
1. **Переконатися, що Ollama працює**
2. **Перезапустити Swapper Service** - він автоматично завантажить моделі
---
## 📝 Крок 5: Перезапустити Swapper Service
### 5.1 Перезапустити через Docker Compose
```bash
# Знайти docker-compose.yml
find / -name "docker-compose.yml" -path "*/swapper*" 2>/dev/null
# Перезапустити Swapper Service
docker-compose restart swapper-service
# або
docker restart swapper-service
```
### 5.2 Перевірити логи
```bash
# Перевірити логи Swapper Service
docker logs swapper-service --tail 50
# Перевірити чи моделі завантажені
docker logs swapper-service | grep -i "model\|initialized"
```
---
## 📝 Крок 6: Перевірити результат
### 6.1 Перевірити через API
```bash
# Перевірити статус
curl http://localhost:8890/status
# Перевірити моделі
curl http://localhost:8890/models
# Перевірити health
curl http://localhost:8890/health
```
### 6.2 Очікуваний результат
**`/models` має повертати:**
```json
{
"models": [
{
"name": "qwen3:8b",
"ollama_name": "qwen3:8b",
"type": "llm",
"size_gb": 4.7,
"priority": "high",
"status": "unloaded"
},
{
"name": "vision-8b",
"ollama_name": "qwen3-vl:8b",
"type": "vision",
"size_gb": 8.2,
"priority": "high",
"status": "unloaded"
}
]
}
```
### 6.3 Перевірити в моніторі
Відкрити в браузері:
```
http://localhost:8899/node/node-1
```
**Очікуваний результат:**
- ✅ Swapper Service Connections відображається
- ✅ Список моделей показується
- ✅ Активна модель (якщо є) підсвічена зеленим
- ✅ Детальна інформація про кожну модель
---
## 🔧 Додаткові налаштування
### Налаштування через змінні оточення
Якщо Swapper Service використовує змінні оточення:
```bash
# Перевірити змінні оточення
docker inspect swapper-service | grep -A 20 "Env"
# Встановити змінні оточення в docker-compose.yml
environment:
- SWAPPER_CONFIG_PATH=/app/config/swapper_config.yaml
- OLLAMA_BASE_URL=http://ollama:11434
- SWAPPER_MODE=single-active
```
### Монтування конфігурації
Якщо конфігурація монтується як volume:
```yaml
volumes:
- ./config/swapper_config.yaml:/app/config/swapper_config.yaml:ro
```
---
## ❓ Troubleshooting
### Проблема: Моделі все ще не відображаються
1. **Перевірити логи:**
```bash
docker logs swapper-service --tail 100
```
2. **Перевірити чи Ollama доступний:**
```bash
curl http://localhost:11434/api/tags
```
3. **Перевірити конфігурацію:**
```bash
docker exec swapper-service cat /app/config/swapper_config.yaml
```
### Проблема: Swapper Service не може підключитися до Ollama
1. **Перевірити мережеві налаштування:**
```bash
docker network ls
docker network inspect <network_name>
```
2. **Перевірити URL Ollama в конфігурації:**
```yaml
OLLAMA_BASE_URL: http://ollama:11434
# або
OLLAMA_BASE_URL: http://localhost:11434
```
---
## ✅ Чеклист
- [ ] Підключено до Node #1
- [ ] Знайдено конфігураційний файл Swapper Service
- [ ] Перевірено чи працює Ollama
- [ ] Додано моделі до конфігурації
- [ ] Перезапущено Swapper Service
- [ ] Перевірено логи Swapper Service
- [ ] Перевірено через API (`/models` повертає моделі)
- [ ] Перевірено в моніторі (моделі відображаються)
---
## 📞 Контакти
Якщо виникли проблеми:
1. Перевірте логи Swapper Service
2. Перевірте чи працює Ollama
3. Перевірте конфігурацію
---
**Last Updated:** 2025-11-22
**Status:** ✅ Готово до використання