【发布时间】:2021-12-20 15:59:03
【问题描述】:
我正在使用机器人框架编写器构建一个聊天机器人,并使用自定义操作对其进行扩展。这些自定义操作主要是瀑布对话框,直到现在它们工作得非常好。现在我遇到的问题是,即使我调用 stepContext.EndDialogAsync() 或 stepContext.CancelAllDialogs(),这些对话框之一也不会结束。查看调用堆栈和 stepContext.Parent 我无法找出问题所在。我什至尝试了 stepContext.Parent.EndDialogAsync() ,但它仍然跳回第一个瀑布步骤。我想跳回作曲家生成的自适应对话,所以我不能使用 BeginDialogAsync()。
有没有办法从字面上“杀死”对话框?或者有谁知道如何处理这个问题?如果需要,我可以提供一些代码。
提前致谢!
【问题讨论】:
-
感谢您的提问。如果您可以提供代码 sn-p 或存储库来重现此问题,是否有可能?
-
代码堆栈等问题需要更清晰
-
感谢您的留言。请查看此对话框,它是我在问题中所说的:github.com/itsme-bigv/PassBot1/blob/unstoppableDialog/… 我相信问题的根源在第 167 行和第 200 行之间。我注意到,在第 183 行的 ConfirmPrompt 之后调用了 BotController但实际上并没有做任何事情。
-
测试机器人;重现问题的流程是什么? (如何在 Composer 机器人中访问 BehaviorEditingComponent?)
-
@DanaV 您可以通过以下方式重现流程: 1. 启动机器人并使用模拟器连接到它 2. 问候后选择“从头开始创建新模型”并将模型命名为“测试” (区分大小写;为测试创建必要的资源) 3. 选择“编辑现有模型” 4. 选择“编辑主题行为” 5. 选择“fullSub” 6. 选择随机状态 7. 给状态一个随机描述 8. 选择是,如果要求使其开始状态 9. 如果询问您是否要告诉主题接下来要做什么,请选择否 --> 对话框再次以 (5) 开始,尽管它应该结束
标签: botframework chatbot bot-framework-composer