如何在使用 Dialogflow API 时减少延迟?

How to reduce latency while using Dialogflow API?

我正在尝试使用 Dialogflow API 在我的 Pepper 机器人上集成一个聊天机器人。一切正常,除了从 Dialogflow 代理获取响应的延迟非常高(根据我的时间日志,执行以下行大约需要 10 秒):

response = self.detect_intent_texts(project_id,session_id,question,language_code)

此外,还有关于此请求的警告:

/home/nao/.local/lib/python2.7/site-packages/urllib3/util/ssl_.py:365: SNIMissingWarning: An HTTPS request has been made, but the SNI (Server Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings SNIMissingWarning

/home/nao/.local/lib/python2.7/site-packages/urllib3/util/ssl_.py:149: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings InsecurePlatformWarning

我不确定这是否与延迟有关,但似乎我需要更新 Pepper 的 python 版本(目前为 2.7.6)。但是我不知道 Pepper 上的 python 版本是否可以更新,或者如果我更新 python 版本是否一切仍然有效。

除此之外,您还有其他减少延迟的想法吗?

您可能想尝试将您的系统置于正确的时区和正确的时间。 TLS 证书使用系统时间进行验证。而且您的回复时间可能会快很多。

您尝试过其他连接吗? 例如。移动热点?

所以你可以查明是不是你的网络有问题。

另请查看此 post 如何摆脱 InsecurePlatformWarning 或者 .

如果您提供函数调用的上下文也会很有帮助。

我假设 detect_intent_texts 实现是 this ?

请注意,此方法还导入 dialogflow_v2,创建 SessionsClient 对象和会话路径。但这并不是对每一个话语都是必要的。因此,如果为每个话语调用此方法,您的对话将有更大的延迟。

你如何衡量你的懒惰? 你会做类似的事情吗:

start = time.time()
detect_intent_texts(
print("recognition took: " + str(time.time() - start)[:5])

最好只在 detect_intent_texts:

的 for 循环中测量查询
for text in texts:
    start = time.time()
    [...]
    print("querytook: " + str(time.time() - start)[:5])

我认为 python 更新是不可能的,因为您没有 root 访问权限。

执行初始访问验证时存在巨大的延迟。 文档说验证需要多秒是正常的: https://cloud.google.com/dialogflow/docs/best-practices

抱歉,我认为这么长的验证时间不正常而且它 完全破坏了等待这么多的初始用户体验。

我相信 Google 工程师可以在 1 秒内解决它。请做!

谢谢, 弗朗西斯科