在瀑布对话期间避免中断

时间:2017-12-08 23:29:15

标签: botframework

我在我的Microsoft bot框架中有一个瀑布对话框,它向用户询问几个问题,如geo,company等。我有另一个对话框,当LUIS意图与GetCompanyNews匹配时会被触发。

我在模拟器中观察到,当用户在瀑布对话期间键入公司名称时,它会触发另一个对话框并更换瀑布对话框。

这是预期的行为吗?如果是,那么有没有办法防止瀑布对话中断?

1 个答案:

答案 0 :(得分:0)

https://github.com/Microsoft/BotBuilder/issues/2670的GitHub上有类似的情况。从中我们可以发现,根本原因应该是:

  

我看到你在机器人级别有一个识别器(你也可以在库和对话框级别上有它们)。当机器人处理响应时(即使在提示对话框中),它需要知道在哪里路由它,并且当所有根识别器都运行时。

此外,我们还有一个解决方案,需要僵尸SDK版本大于3.8

  

在3.8中,贡献者添加了使用新的onEnabledonFilter方法自定义识别器的功能。以下是添加过滤器的示例,该过滤器在任务运行时随时禁用识别器:

var recognizer = new builder.LuisRecognizer('<model>').onEnabled(function (context, callback) {
     var enabled = context.dialogStack().length == 0;
     callback(null, enabled);
});
相关问题