在对话流或其他方式中Webhook的工作时间

时间:2018-08-22 20:53:31

标签: dialogflow actions-on-google google-home

我正在为自己编写一个机器人,可以根据要求找到种子,并将其下载到我的家庭媒体中心。

我的Webhook出现错误:请求的生存时间只有5秒左右。

解析器工作1到10秒,在hackberry上的家庭服务器非常慢。

有了这个,我的请求就死了50%。

超过5秒后如何查询和接收答案?

2 个答案:

答案 0 :(得分:1)

动作预计将在5秒钟内响应。这不一定是确切答案,但是您需要提供一些信息让用户知道您的操作仍在处理中。

这很简单,例如,给出一个中间状态,例如“好吧,我要开始了。您还想要其他吗?”,或者播放简短的MediaResponse作为“保持音乐”。然后,您可以将状态存储在短期访问的数据库中,该数据库易于轮询,并可以在用户询问时作为状态更新提供。

答案 1 :(得分:0)

这可以简单地通过followUpEvents完成。您可以通过Web hook的followUpEvent调用任何意图。因此,要解决您的问题,您必须在Web应用程序中维护状态,例如“搜索”,“找到”,“下载”和“下载”,这完全取决于您。

现在,一旦调用了初始意图,您就可以在服务器上启动该过程,然后保持3-3.5秒,然后发送followUpEvent来调用其他意图,除了等待另外3-3.5秒并继续轮询服务器之外,它将什么都不做每秒更新一次状态。您可以继续调用下一个后续意图,直到从服务器获得所需的状态为止。

因此,如果您的请求在一个意图上以50%的比例死亡,那么它应该在两个后续意图下都可以正常工作。