Typescript虚拟助手的botbuilder-timeout

时间:2020-01-16 19:32:01

标签: timeout botframework

我们已经Microsoft Virtual Assistant构建了它的Typescript,并且我们计划添加超时功能。这意味着如果用户在一定时间内没有参与,VA应该以其“技能”结束对话。

在V3 SDK中有botbuilder-timeout模块可以做到这一点,

“用于Microsoft Bot Framework的模块,它使您的机器人可以在机器人检测到不活动状态时提示用户,如果在定义的时间段内没有用户活动,则最终结束对话。”

V4或Virtual Assistant中是否有提供类似功能的东西?如果是,任何想法/文档指针将不胜感激。

1 个答案:

答案 0 :(得分:1)

像这样的V4机器人没有任何官方名称。我也不相信我也看到过任何非正式的事情。

话虽如此,我们通常建议类似:

  1. 在每条消息上,启动一个同步计时器。您可以在漫游器中执行此操作,但是最好在漫游器外部执行此操作,例如使用Azure Functions或其他方法。该答案的其余部分将假定计时器位于机器人外部。确保计时器也跟踪与计时器相关的conversationReference
  2. 每次与conversationReference匹配的用户发送消息时,重新启动计时器
  3. 计时器到期后,将事件与用户和对话信息一起发送给机器人(可能通过ChannelData),让机器人知道计时器已到期。您还可以创建一个单独的终结点并在此处进行监视,因此您不需要活动方案。可以使用/api/messages之类的字词代替/api/expiredTimers
  4. 收到过期的计时器事件后,send a proactive message会通知用户1)查看他们是否仍在,或者2)结束对话。