# #dialogflow-es
Вопрос:
Я столкнулся с довольно странной проблемой при выполнении Dialogflow.
Контекст:
- Я создал простого бота Dialogflow с некоторыми намерениями. Эти намерения работают должным образом, когда я тестирую их в своей среде разработки (используя службу туннелирования ngrok для создания общедоступной
https
конечной точки для моего сервера webhook). - После этого я начал сталкиваться с проблемой на моем предпроизводственном сервере. Архитектура этого последнего сервера точно такая же, как и в разработке. Дело в том, что намерения большую часть времени работают правильно, но иногда одни и те же намерения не работают; более конкретно, бот вообще не отвечает.
Ошибка:
- Взглянув на свою историю диалогового потока, я заметил общую ошибку между всеми «неотвеченными» сообщениями, которая заключается в следующем:
Похоже, что процесс поиска DNS, который создает Dialogflow, иногда заканчивается ошибкой тайм — аута.
Я добавляю диаграмму, чтобы добавить больше контекста:
Я проверил доступность своего домена, проведя стресс-тест с более чем 50 тысячами звонков на мою конечную точку выполнения.:
- Код статуса ответа-200.
- Вызов разрешается до 5 секунд (максимальный тайм-аут Dialogflow при вызовах webhook).
Все эти звонки прошли проверку.
Тот факт, что намерения иногда терпят неудачу (чаще работают, чем терпят неудачу), сводит меня с ума… Я был бы признателен за любую подсказку по этому вопросу.
Спасибо.
Комментарии:
1. Привет, Мочис, не могли бы вы предоставить более подробную информацию, такую как управление версиями используемой вами библиотеки Dialogflow? Кроме того, поступают ли сообщения параллельно? ( если это так, то есть некоторые квоты, которые могут быть превышены (агент CX и ES), вы можете проверить это здесь .
2. Привет @Betjens, я не использую библиотеку Dialogflow с точки зрения кода. Я использую текущую версию Dialogflow ES. Это также не похоже на проблему с использованием моей квоты, так как я тестирую бота в одиночку, и никто не взаимодействует с ним, кроме меня. Напомним, что бот работает правильно, когда я использую туннелирование ngrok для обслуживания своего бэкенда webhook.
3. Трудно воспроизвести сценарий вашей ошибки. Кроме того, похоже, что его больше на стороне NGNIX в вашем потоке, я хотел бы узнать больше о вашей настройке NGNIX. Кроме того, см.
4. Обратите внимание, что мой NGINX не принимает никаких вызовов, когда происходит эта ошибка . В любом случае, я расскажу вам больше о своем NGINX. Я только что настроил его на прослушивание 443 ssl, настроил имя хоста и сертификат ( ключ) и включил 2 proxy_pass (/чат и /api). В связи с упомянутым вами потоком я использую docker-compose для организации развертывания, поэтому я использую имена служб для настройки proxy_pass. Кроме того, я думаю, что если бы это была ошибка NGINX, я бы увидел любой журнал NGINX, которого у меня нет.
Ответ №1:
У меня та же проблема. Все работало нормально до трех дней назад ( я ничего не менял). При использовании DialogFlow ES иногда возникает проблема. Я не знаю, что происходит.
У меня есть выполнение внутри виртуальной машины в проекте GCP
"diagnosticInfo": {
"webhook_latency_ms": 1226
},
"webhookStatus": {
"webhookStatus": {
"code": 4,
"message": "Webhook call failed. Error: DEADLINE_EXCEEDED, State: URL_TIMEOUT, Reason: TIMEOUT_DNSLOOKUP."
},
"webhookUsed": true
},
Комментарии:
1. Может ли это быть проблемой со стороны Google?
2. Привет, Бруно. Действительно, это кажется проблемой со стороны Google, но я не уверен на 100%. Не могли бы вы рассказать подробнее о своем сценарии? Давайте посмотрим, сможем ли мы найти общие точки соприкосновения и решить эту проблему.
3. Привет, Мочики. У меня есть два разных проекта в GCP, оба полностью изолированы. Каждый проект состоит из виртуальной машины, развернутой в GCP, и внутри виртуальной машины есть несколько докеров для разных целей, я тоже использую docker-compose. В одном докере у меня есть сервер NodeJS, который вызывает API dialogflow, в том же докере у меня есть сервер выполнения (вызовы webhook). В прошлую пятницу все работало нормально, в обоих проектах. Я ничего не изменил, и проблема началась между пятницей и понедельником. Я полагаю, что что-то изменилось в DialogFlow или на DNS-сервере.
4. Какой DNS-провайдер вы используете для производства?
5. Я не уверен в поставщике DNS, так как я не являюсь владельцем домена. Можно было бы спросить, очень ли это актуально.
Ответ №2:
Я обнаружил, что в последние дни появились некоторые обновления в диалоговых потоках, проверьте
В диалоговом окне отображаются Примечания к выпуску.
Возможно, вам следует сообщить об этом непосредственно в отчете о проблемах Google, и они могут оказать дополнительную помощь.
Комментарии:
1. Привет, Бетдженс, я не вижу связанных выпусков за последние месяцы, но я отправлю проблему в систему отслеживания проблем, которую вы связали. Спасибо.
2. Я открыл проблему в трекере проблем Dialogflow. Скрестив пальцы. issuetracker.google.com/issues/203461124