【发布时间】:2021-10-15 09:15:58
【问题描述】:
我在 Dialogflow 的实现方面遇到了一个非常奇怪的问题。
上下文:
- 我制作了一个简单的 Dialogflow 机器人,其中包含一些实现意图。当我在我的开发环境中测试这些意图时(使用 ngrok 隧道服务为我的 webhook 服务器生成一个可公开访问的
https端点),这些意图按预期工作。 - 此后,我开始在我的预生产服务器中遇到问题。最后一个服务器中的架构与开发中的架构完全相同。事实是,意图在大多数情况下都能正常工作,但有时相同的意图无法正常工作;更具体地说,机器人根本没有回答。
错误:
- 查看我的 Dialogflow 历史记录,我注意到所有“未响应”消息之间的共享错误如下:
似乎正在制作 Dialogflow 的 DNS 查找过程有时会出现超时错误。
我正在添加图表以添加更多上下文:
我已经通过对我的履行端点检查进行超过 50k 次调用进行压力测试来测试我的域的可用性:
- 响应状态码为 200。
- 调用在 5 秒前解决(Dialogflow 在 webhook 调用上的最大超时)。
所有这些调用都通过了测试。
意图失败的事实有时(工作的次数多于失败的次数)让我发疯......我会很感激这方面的任何线索。
谢谢。
【问题讨论】:
-
嗨 Mochis,您能否提供更多详细信息,例如您正在使用的 Dialogflow 库的版本控制?此外,消息是否同时发生? (如果有一些配额可能超过(CX 和 ES 代理),您可以检查它here。
-
嗨@Betjens,就代码而言,我没有使用任何Dialogflow库。我正在使用当前版本的 Dialogflow ES。这似乎也不是我的配额使用问题,因为我正在单独测试机器人,除了我之外没有人与它交互。提醒一下,当我使用 ngrok 隧道为我的 webhook 后端提供服务时,该机器人正常工作。
-
很难重现您的错误场景。此外,它看起来更像是在您的流程的 NGNIX 方面,我想更多地了解您的 NGNIX 设置。另外,see
-
请注意,发生此错误时,我的 NGINX 没有收到任何呼叫。无论如何,我会告诉你更多关于我的 NGINX 的信息。我刚刚将其配置为侦听 443 ssl,设置主机名和证书(+ 密钥)并启用 2 proxy_pass(/chat 和 /api)。与您提到的线程相关,我正在使用 docker-compose 来编排部署,因此我使用服务名称来配置 proxy_pass。另外,我猜如果是 NGINX 故障,我会看到任何我没有看到的 NGINX 日志。
标签: dialogflow-es