webhook 在 dialogflow 或替代方案中的工作时间
Working time of webhook in dialogflow or alternative
我正在为自己编写一个机器人,它可以应要求查找种子并将它们下载到我的家庭媒体中心。
我的 webhook 收到一个错误:请求仅存在 ~ 5 秒。
解析器工作 1-10 秒 + hackberry 上的主服务器非常慢。
有了这个,我的请求在 50% 时就死了。
如何查询并在 5 秒后收到答案?
一个动作预计在 5 秒内响应。这不一定是准确的答案,但您需要让用户知道您的操作仍在处理中。
这可以像给出中间状态一样简单,例如 "Okay, I'm going to start. Do you want anything else?",或者播放一个简短的 MediaResponse "hold music"。然后,您可以将状态存储在短期且可快速访问的数据库中,该数据库易于轮询并在用户询问时作为状态更新提供。
这可以通过 followUpEvents 轻松完成。您可以通过 web hook 的 followUpEvent 调用任何意图。因此,要解决您的问题,您必须在 Web 应用程序中维护 "searching"、"found"、"downloading" 和 "downloaded" 等状态,这完全取决于您。
现在,一旦初始意图被调用,您就可以在服务器上启动进程,然后保持 3-3.5 秒并发送一个 followUpEvent 来调用其他意图,该意图只会再等待 3-3.5 秒并继续轮询您的服务器每秒更新状态。您可以继续调用下一个后续意图,直到您从服务器获得所需的状态。
因此,如果您的请求在一个意图上以 50% 的速度死亡,那么它应该可以在两个后续意图上正常工作。
我正在为自己编写一个机器人,它可以应要求查找种子并将它们下载到我的家庭媒体中心。
我的 webhook 收到一个错误:请求仅存在 ~ 5 秒。
解析器工作 1-10 秒 + hackberry 上的主服务器非常慢。
有了这个,我的请求在 50% 时就死了。
如何查询并在 5 秒后收到答案?
一个动作预计在 5 秒内响应。这不一定是准确的答案,但您需要让用户知道您的操作仍在处理中。
这可以像给出中间状态一样简单,例如 "Okay, I'm going to start. Do you want anything else?",或者播放一个简短的 MediaResponse "hold music"。然后,您可以将状态存储在短期且可快速访问的数据库中,该数据库易于轮询并在用户询问时作为状态更新提供。
这可以通过 followUpEvents 轻松完成。您可以通过 web hook 的 followUpEvent 调用任何意图。因此,要解决您的问题,您必须在 Web 应用程序中维护 "searching"、"found"、"downloading" 和 "downloaded" 等状态,这完全取决于您。
现在,一旦初始意图被调用,您就可以在服务器上启动进程,然后保持 3-3.5 秒并发送一个 followUpEvent 来调用其他意图,该意图只会再等待 3-3.5 秒并继续轮询您的服务器每秒更新状态。您可以继续调用下一个后续意图,直到您从服务器获得所需的状态。
因此,如果您的请求在一个意图上以 50% 的速度死亡,那么它应该可以在两个后续意图上正常工作。