我正在尝试OnTurnAsync
方法中触发条件(turnContext.Activity.Type == ActivityTypes.EndOfConversation)
以便我可以对聊天等执行一些清理/摘要。我怎样才能做到这一点?
我已经尝试了CancelAllDialogsAsync()
和EndDialogsAsync()
但两者都不会结束聊天。仅供参考,我使用的是机器人模拟器 4.2.1,没有其他渠道进行测试。
调用CancelAllDialogsAsync()
时,我的对话将返回到第一个对话框(即建议列表)。虽然EndDialogsAsync("End",cancellationToken)
只是停止对话,但没有触发对话结束活动类型。
无法从 Teams 客户端执行此操作 - Teams 根本不使用 endOfConversation,用户与机器人之间的所有消息将永远包含在同一聊天线程中。
如果您使用的是 Direct-Line的某种变体(例如 botframework-webchat 或 C# Direct-Line SDK),那么您可以安装一个按钮或其他元素来发送"endOfConversation"活动。