# 🔍 Диагностика проблемы AI Drawer ## Проблема Ошибка: "Ошибка при получении ответа. Попробуйте еще раз." ## Что проверить ### 1. Проверить формат сообщения от n8n n8n может публиковать сообщение в двух форматах: **Формат 1 (просто текст):** ``` "Текст ответа от AI" ``` **Формат 2 (JSON объект):** ```json { "task_id": "task-123", "response": "Текст ответа", "status": "completed" } ``` ### 2. Проверить Redis ключ ```bash redis-cli -h crm.clientright.ru -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' \ GET "ai:response:cache:task-691209e225894-1762789858" ``` Если ключ есть → ответ сохранен, но SSE не получил Если ключа нет → n8n не сохраняет в ключ (нужно настроить) ### 3. Проверить логи SSE В консоли браузера должны быть логи: - `AI Drawer: SSE connection opened` - `AI Drawer: Received response via SSE` Если их нет → SSE не подключается ### 4. Проверить публикацию в канал ```bash redis-cli -h crm.clientright.ru -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' \ MONITOR ``` Затем отправьте сообщение в AI Drawer - должны видеть PUBLISH команду ## Решение ### Если n8n публикует только в канал (без ключа): 1. **Добавьте Redis SET ноду в n8n** перед PUBLISH: - Operation: `Set` - Key: `ai:response:cache:{{ $json.taskId }}` - Value: JSON с ответом - TTL: 300 секунд 2. **Или** используйте текущий код - SSE endpoint сам сохранит в ключ когда получит из канала ### Если SSE не подключается: 1. Проверьте что `/aiassist/ai_sse.php` доступен 2. Проверьте логи PHP на ошибки 3. Проверьте консоль браузера на ошибки CORS/сети ## Текущая архитектура ``` n8n → Redis PUBLISH (канал) → SSE endpoint получает → сохраняет в ключ → отправляет браузеру ↓ Если SSE не получил → fallback проверяет ключ ``` ## Что исправлено ✅ SSE endpoint теперь: - Принимает и JSON и простой текст - Сохраняет ответ в Redis ключ при получении - Проверяет ключ при подключении (на случай если ответ уже есть) ✅ JavaScript теперь: - Не вызывает fallback если уже получил ответ - Проверяет Redis ключ периодически если SSE не работает - Логирует все действия для отладки ## Следующие шаги 1. Проверьте что n8n сохраняет в ключ `ai:response:cache:{taskId}` ПЕРЕД публикацией 2. Проверьте логи в консоли браузера 3. Проверьте логи PHP (error_log)