Typescript 虚拟助手的 botbuilder-timeout
botbuilder-timeout for Typescript Virtual assistant
我们已经 Microsoft Virtual Assistant 构建了 Typescript,我们正计划添加超时功能。这意味着如果用户在一定时间内没有参与,VA 应该使用它的技能结束对话。
V3 SDK 中有 botbuilder-timeout 模块可以做到这一点,
"Module for Microsoft Bot Framework to enable your bot to prompt the user if the bot detects inactivity and ultimately end the conversation if no user activity after a defined period of time."
V4 或 Virtual Assistant 中是否有提供类似功能的东西?如果是,任何 ideas/pointers 文档表示赞赏。
像这样的 V4 机器人没有任何官方信息。我也不相信我见过任何非官方的东西。
话虽这么说,我们通常会推荐以下内容:
- 在每条消息上,启动一个同步计时器。您可以在 bot 中执行此操作,但最好在 bot 外部执行此操作,例如使用 Azure Functions 或其他工具。这个答案的其余部分将假设计时器在机器人之外。确保计时器还跟踪与计时器相关的 conversationReference。
- 每次匹配
conversationReference
的用户发送消息时重新启动计时器
- 计时器到期后,向机器人发送一个事件,其中包含用户和对话信息(可能通过
ChannelData
),让机器人知道计时器已到期。您还可以创建一个单独的端点并在那里进行监视,因此您不需要 activity 方案;你可以使用 /api/expiredTimers
. 之类的东西代替 /api/messages
- 收到超时计时器事件后,send a proactive message 通知用户 1) 查看他们是否还在那里,或者 2) 结束对话。
我们已经 Microsoft Virtual Assistant 构建了 Typescript,我们正计划添加超时功能。这意味着如果用户在一定时间内没有参与,VA 应该使用它的技能结束对话。
V3 SDK 中有 botbuilder-timeout 模块可以做到这一点,
"Module for Microsoft Bot Framework to enable your bot to prompt the user if the bot detects inactivity and ultimately end the conversation if no user activity after a defined period of time."
V4 或 Virtual Assistant 中是否有提供类似功能的东西?如果是,任何 ideas/pointers 文档表示赞赏。
像这样的 V4 机器人没有任何官方信息。我也不相信我见过任何非官方的东西。
话虽这么说,我们通常会推荐以下内容:
- 在每条消息上,启动一个同步计时器。您可以在 bot 中执行此操作,但最好在 bot 外部执行此操作,例如使用 Azure Functions 或其他工具。这个答案的其余部分将假设计时器在机器人之外。确保计时器还跟踪与计时器相关的 conversationReference。
- 每次匹配
conversationReference
的用户发送消息时重新启动计时器 - 计时器到期后,向机器人发送一个事件,其中包含用户和对话信息(可能通过
ChannelData
),让机器人知道计时器已到期。您还可以创建一个单独的端点并在那里进行监视,因此您不需要 activity 方案;你可以使用/api/expiredTimers
. 之类的东西代替 - 收到超时计时器事件后,send a proactive message 通知用户 1) 查看他们是否还在那里,或者 2) 结束对话。
/api/messages