- 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
6.2 KiB
🔧 Виправлення підключення Monitor Agent
Дата: 2025-11-23
Проблема: Monitor Agent Service повертає 500 Internal Server Error при спробі надіслати повідомлення
🔍 Діагностика проблеми
Виявлені проблеми:
-
✅ Monitor Agent Service працює на порту 9500
- Health check:
http://localhost:9500/health→{"status":"ok"} - Процес: Python (PID: 17336)
- Health check:
-
❌ Ollama на НОДА2 недоступний
- URL:
http://192.168.1.244:11434 - Помилка: Connection refused / Timeout
- URL:
-
✅ Ollama локально працює
- URL:
http://localhost:11434 - Доступні моделі:
mistral-nemo:12b,gpt-oss:latest,gemma2:27b, тощо
- URL:
Причина помилки:
Monitor Agent Service налаштований на підключення до Ollama на НОДА2 (192.168.1.244:11434), але:
- НОДА2 недоступний з локальної машини
- Ollama працює локально на
localhost:11434
Коли Monitor Agent Service намагається зробити запит до Ollama на НОДА2, він отримує помилку з'єднання, що призводить до 500 Internal Server Error.
✅ Виправлення
1. Змінено конфігурацію за замовчуванням
Файл: services/monitor-agent-service/app/main.py
# Було:
OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://192.168.1.244:11434") # НОДА2
MISTRAL_MODEL = os.getenv("MISTRAL_MODEL", "mistral:7b")
# Стало:
OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434") # Локальний Ollama
MISTRAL_MODEL = os.getenv("MISTRAL_MODEL", "mistral-nemo:12b") # Доступна модель
2. Додано fallback на доступні моделі
Якщо вказана модель недоступна, сервіс автоматично пробує інші:
mistral-nemo:12b(за замовчуванням)gpt-oss:latestmistral:7bmistral:latest
3. Покращена обробка помилок
- Детальні повідомлення про помилки
- Автоматичний fallback на доступні моделі
- Логування використаної моделі
🚀 Як застосувати виправлення
Варіант 1: Перезапустити сервіс (якщо запущений через uvicorn)
# Знайти процес
ps aux | grep "uvicorn.*monitor-agent"
# Перезапустити сервіс
cd services/monitor-agent-service
source venv/bin/activate # Якщо використовується venv
python -m uvicorn app.main:app --host 0.0.0.0 --port 9500 --reload
Варіант 2: Налаштувати через environment variables
# Якщо потрібно підключитися до НОДА2
export OLLAMA_BASE_URL=http://192.168.1.244:11434
# Якщо потрібно використовувати іншу модель
export MISTRAL_MODEL=mistral:7b
# Перезапустити сервіс
Варіант 3: Перевірити, чи сервіс автоматично перезапустився
Якщо сервіс запущений з --reload, він має автоматично перезапуститися після зміни файлу.
✅ Перевірка
-
Перевірити health check:
curl http://localhost:9500/healthМає повернути:
{"status":"ok","service":"monitor-agent-service"} -
Перевірити підключення до Ollama:
curl http://localhost:11434/api/tagsМає повернути список доступних моделей
-
Протестувати чат:
curl -X POST http://localhost:9500/api/agent/monitor/chat \ -H "Content-Type: application/json" \ -d '{"agent_id":"monitor","message":"Привіт!","node_id":null}'Має повернути відповідь від Monitor Agent
-
Перевірити в UI:
- Відкрити
http://localhost:8899/dagi-monitor - Надіслати повідомлення в Monitor Agent Chat
- Має з'явитися відповідь замість помилки
- Відкрити
📝 Налаштування для різних середовищ
Локальна розробка (за замовчуванням)
OLLAMA_BASE_URL=http://localhost:11434
MISTRAL_MODEL=mistral-nemo:12b
Підключення до НОДА2
OLLAMA_BASE_URL=http://192.168.1.244:11434
MISTRAL_MODEL=mistral:7b
Production (якщо Ollama на іншому сервері)
OLLAMA_BASE_URL=http://ollama-server:11434
MISTRAL_MODEL=mistral:latest
🎯 Результат
Після виправлення:
- ✅ Monitor Agent Service підключається до локального Ollama
- ✅ Автоматичний fallback на доступні моделі
- ✅ Чат працює без помилок 500
- ✅ Повідомлення від Monitor Agent з'являються в UI
🔄 Якщо проблема залишається
-
Перевірте, чи працює Ollama:
curl http://localhost:11434/api/tags -
Перевірте логи Monitor Agent Service:
# Якщо запущений через uvicorn, логи в консолі # Або перевірте процес ps aux | grep uvicorn -
Перевірте environment variables:
echo $OLLAMA_BASE_URL echo $MISTRAL_MODEL -
Перезапустіть сервіс з правильними змінними:
export OLLAMA_BASE_URL=http://localhost:11434 export MISTRAL_MODEL=mistral-nemo:12b python -m uvicorn app.main:app --host 0.0.0.0 --port 9500 --reload
Статус: ✅ Виправлено
Наступні кроки: Перезапустити Monitor Agent Service для застосування змін