- 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
8.2 KiB
8.2 KiB
⚙️ Налаштування Swapper Service на Node #1
Дата: 2025-11-22
Мета: Налаштувати Swapper Service з доступними моделями Ollama на Node #1
🔍 Виявлені моделі на Node #1
На Node #1 в Ollama доступні такі моделі:
-
qwen2.5:7b-instruct-q4_K_M - 4.36 GB
- Тип: LLM (General Purpose)
- Пріоритет: High
- Призначення: Основна модель для загальних завдань
-
qwen2.5:3b-instruct-q4_K_M - 1.80 GB
- Тип: LLM (Lightweight)
- Пріоритет: Medium
- Призначення: Швидкі відповіді, менше ресурсів
-
qwen2-math:7b - 4.13 GB
- Тип: Math Specialist
- Пріоритет: High
- Призначення: Математичні завдання
📝 Крок 1: Підключитися до Node #1
ssh root@144.76.224.179
📝 Крок 2: Знайти директорію Swapper Service
# Знайти де знаходиться Swapper Service
docker ps | grep swapper
# Знайти конфігураційну директорію
find /opt /var /home -name "swapper*" -type d 2>/dev/null
# або
docker inspect swapper-service | grep -A 10 "Mounts"
📝 Крок 3: Створити конфігураційний файл
Варіант A: Якщо конфігурація монтується як volume
# Знайти шлях до конфігурації
docker inspect swapper-service | grep -A 5 "Mounts"
# Створити файл конфігурації
cat > /path/to/swapper-config/swapper_config.yaml << 'EOF'
# Swapper Configuration for Node #1 (Production Server)
# Single-active LLM scheduler
# Hetzner GEX44 - NVIDIA RTX 4000 SFF Ada (20GB VRAM)
swapper:
mode: single-active
max_concurrent_models: 1
model_swap_timeout: 300
gpu_enabled: true
metal_acceleration: false # NVIDIA GPU, not Apple Silicon
models:
# Primary LLM - Qwen2.5 7B Instruct (High Priority)
qwen2.5-7b-instruct:
path: ollama:qwen2.5:7b-instruct-q4_K_M
type: llm
size_gb: 4.36
priority: high
description: "Primary LLM for general tasks and conversations"
# Lightweight LLM - Qwen2.5 3B Instruct (Medium Priority)
qwen2.5-3b-instruct:
path: ollama:qwen2.5:3b-instruct-q4_K_M
type: llm
size_gb: 1.80
priority: medium
description: "Lightweight LLM for faster responses"
# Math Specialist - Qwen2 Math 7B (High Priority)
qwen2-math-7b:
path: ollama:qwen2-math:7b
type: math
size_gb: 4.13
priority: high
description: "Specialized model for mathematical tasks"
storage:
models_dir: /app/models
cache_dir: /app/cache
swap_dir: /app/swap
ollama:
url: http://ollama:11434 # From Docker container to Ollama service
timeout: 300
EOF
Варіант B: Якщо конфігурація всередині контейнера
# Скопіювати файл в контейнер
docker cp swapper_config_node1.yaml swapper-service:/app/config/swapper_config.yaml
# Або створити файл всередині контейнера
docker exec -it swapper-service sh
cat > /app/config/swapper_config.yaml << 'EOF'
# ... (вставити вміст з вище)
EOF
exit
Варіант C: Через docker-compose.yml
Якщо використовується docker-compose, додати volume:
services:
swapper-service:
volumes:
- ./services/swapper-service/config/swapper_config.yaml:/app/config/swapper_config.yaml:ro
environment:
- SWAPPER_CONFIG_PATH=/app/config/swapper_config.yaml
- OLLAMA_BASE_URL=http://ollama:11434
📝 Крок 4: Перезапустити Swapper Service
# Перезапустити через docker-compose
docker-compose restart swapper-service
# Або через Docker
docker restart swapper-service
# Перевірити логи
docker logs swapper-service --tail 50 -f
Очікуваний вивід в логах:
✅ Swapper Service initialized with 3 models
✅ Loaded qwen2.5-7b-instruct
✅ Loaded qwen2.5-3b-instruct
✅ Loaded qwen2-math-7b
📝 Крок 5: Перевірити результат
5.1 Перевірити через API
# Перевірити статус
curl http://localhost:8890/status
# Перевірити моделі
curl http://localhost:8890/models
# Перевірити health
curl http://localhost:8890/health
5.2 Очікуваний результат /models:
{
"models": [
{
"name": "qwen2.5-7b-instruct",
"ollama_name": "qwen2.5:7b-instruct-q4_K_M",
"type": "llm",
"size_gb": 4.36,
"priority": "high",
"status": "unloaded"
},
{
"name": "qwen2.5-3b-instruct",
"ollama_name": "qwen2.5:3b-instruct-q4_K_M",
"type": "llm",
"size_gb": 1.80,
"priority": "medium",
"status": "unloaded"
},
{
"name": "qwen2-math-7b",
"ollama_name": "qwen2-math:7b",
"type": "math",
"size_gb": 4.13,
"priority": "high",
"status": "unloaded"
}
]
}
5.3 Перевірити в моніторі
Відкрити в браузері:
http://localhost:8899/node/node-1
Очікуваний результат:
- ✅ Swapper Service Connections відображається
- ✅ Список з 3 моделей
- ✅ Детальна інформація про кожну модель
- ✅ Активна модель (якщо завантажена) підсвічена зеленим
🔧 Troubleshooting
Проблема: Моделі все ще не відображаються
-
Перевірити чи Ollama доступний з контейнера:
docker exec swapper-service curl http://ollama:11434/api/tags # або docker exec swapper-service curl http://localhost:11434/api/tags -
Перевірити змінні оточення:
docker exec swapper-service env | grep -i ollama docker exec swapper-service env | grep -i swapper -
Перевірити конфігурацію всередині контейнера:
docker exec swapper-service cat /app/config/swapper_config.yaml
Проблема: Swapper не може підключитися до Ollama
-
Перевірити мережеві налаштування:
docker network ls docker network inspect dagi-network # або назва вашої мережі -
Перевірити чи Ollama працює:
docker ps | grep ollama curl http://localhost:11434/api/tags -
Змінити URL Ollama в конфігурації:
ollama: url: http://localhost:11434 # Якщо Ollama на хості # або url: http://ollama:11434 # Якщо Ollama в Docker мережі
✅ Чеклист
- Підключено до Node #1
- Знайдено директорію Swapper Service
- Створено конфігураційний файл з 3 моделями
- Перезапущено Swapper Service
- Перевірено логи (3 моделі завантажені)
- Перевірено через API (
/modelsповертає 3 моделі) - Перевірено в моніторі (моделі відображаються)
📊 Очікуваний результат
Після налаштування:
- ✅ 3 моделі доступні в Swapper Service
- ✅ qwen2.5-7b-instruct (High Priority) - основна модель
- ✅ qwen2.5-3b-instruct (Medium Priority) - легка модель
- ✅ qwen2-math-7b (High Priority) - математична модель
- ✅ Монітор показує всі моделі з детальною інформацією
- ✅ Активна модель підсвічена зеленим
Last Updated: 2025-11-22
Status: ✅ Готово до використання
Config File: services/swapper-service/config/swapper_config_node1.yaml