如何在使用对话流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:已发出HTTPS请求,但TLS的SNI(服务器名称指示(扩展在此平台上不可用。这可能会导致服务器提供不正确的 TLS 证书,从而导致验证失败。您可以升级到较新版本的 Python 来解决此问题。有关详细信息,请参阅 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:InsecurePlatform警告:真正的SSLContext对象不可用。这会阻止 urllib3 正确配置 SSL,并可能导致某些 SSL 连接失败。您可以升级到较新版本的 Python 来解决此问题。有关详细信息,请参阅 https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings 不安全平台警告

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

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

您是否尝试过其他连接? 例如移动热点?

因此,您可以找出是否是网络存在问题。

另请查看这篇文章,了解如何摆脱InsecurePlatformWarning或者这个。

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

我假设detect_intent_texts实现是这样的?

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

你如何衡量你的蕾丝? 你做以下事情吗:

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

最好仅在 for 循环中测量查询detect_intent_texts

for text in texts:
start = time.time()
[...]
print("querytook: " + str(time.time() - start)[:5])

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

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

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

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

谢谢 弗朗西斯科

您可能想尝试将系统放在正确的时区和正确的时间。TLS 证书使用系统时间来验证。而且您的响应时间可能会快得多。

最新更新