# 🔧 Виправлення підключення Monitor Agent **Дата:** 2025-11-23 **Проблема:** Monitor Agent Service повертає 500 Internal Server Error при спробі надіслати повідомлення ## 🔍 Діагностика проблеми ### Виявлені проблеми: 1. ✅ **Monitor Agent Service працює** на порту 9500 - Health check: `http://localhost:9500/health` → `{"status":"ok"}` - Процес: Python (PID: 17336) 2. ❌ **Ollama на НОДА2 недоступний** - URL: `http://192.168.1.244:11434` - Помилка: Connection refused / Timeout 3. ✅ **Ollama локально працює** - URL: `http://localhost:11434` - Доступні моделі: `mistral-nemo:12b`, `gpt-oss:latest`, `gemma2:27b`, тощо ### Причина помилки: 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` ```python # Було: 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 на доступні моделі Якщо вказана модель недоступна, сервіс автоматично пробує інші: 1. `mistral-nemo:12b` (за замовчуванням) 2. `gpt-oss:latest` 3. `mistral:7b` 4. `mistral:latest` ### 3. Покращена обробка помилок - Детальні повідомлення про помилки - Автоматичний fallback на доступні моделі - Логування використаної моделі ## 🚀 Як застосувати виправлення ### Варіант 1: Перезапустити сервіс (якщо запущений через uvicorn) ```bash # Знайти процес 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 ```bash # Якщо потрібно підключитися до НОДА2 export OLLAMA_BASE_URL=http://192.168.1.244:11434 # Якщо потрібно використовувати іншу модель export MISTRAL_MODEL=mistral:7b # Перезапустити сервіс ``` ### Варіант 3: Перевірити, чи сервіс автоматично перезапустився Якщо сервіс запущений з `--reload`, він має автоматично перезапуститися після зміни файлу. ## ✅ Перевірка 1. **Перевірити health check:** ```bash curl http://localhost:9500/health ``` Має повернути: `{"status":"ok","service":"monitor-agent-service"}` 2. **Перевірити підключення до Ollama:** ```bash curl http://localhost:11434/api/tags ``` Має повернути список доступних моделей 3. **Протестувати чат:** ```bash 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 4. **Перевірити в UI:** - Відкрити `http://localhost:8899/dagi-monitor` - Надіслати повідомлення в Monitor Agent Chat - Має з'явитися відповідь замість помилки ## 📝 Налаштування для різних середовищ ### Локальна розробка (за замовчуванням) ```bash OLLAMA_BASE_URL=http://localhost:11434 MISTRAL_MODEL=mistral-nemo:12b ``` ### Підключення до НОДА2 ```bash OLLAMA_BASE_URL=http://192.168.1.244:11434 MISTRAL_MODEL=mistral:7b ``` ### Production (якщо Ollama на іншому сервері) ```bash OLLAMA_BASE_URL=http://ollama-server:11434 MISTRAL_MODEL=mistral:latest ``` ## 🎯 Результат Після виправлення: - ✅ Monitor Agent Service підключається до локального Ollama - ✅ Автоматичний fallback на доступні моделі - ✅ Чат працює без помилок 500 - ✅ Повідомлення від Monitor Agent з'являються в UI ## 🔄 Якщо проблема залишається 1. Перевірте, чи працює Ollama: ```bash curl http://localhost:11434/api/tags ``` 2. Перевірте логи Monitor Agent Service: ```bash # Якщо запущений через uvicorn, логи в консолі # Або перевірте процес ps aux | grep uvicorn ``` 3. Перевірте environment variables: ```bash echo $OLLAMA_BASE_URL echo $MISTRAL_MODEL ``` 4. Перезапустіть сервіс з правильними змінними: ```bash 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 для застосування змін