在我的Microsoft框架中,我有一个瀑布对话框,它问用户几个问题,比如geo、company等等。我还有另一个对话框,当LUIS意图与GetCompanyNews匹配时会触发它。
我在模拟器中观察到,当用户在瀑布会话期间键入公司名称时,它会触发另一个对话框,而瀑布对话框将被替换。
这是预期的行为吗?如果是,那么有什么方法可以防止瀑布对话框的中断呢?
发布于 2017-12-11 02:38:36
在GitHub at https://github.com/Microsoft/BotBuilder/issues/2670也有类似的场景。由此我们可以发现,根本原因应该是:
如我所见,您有一个机器人级别的识别器(您也可以在库和对话框级别上使用它们)。当bot处理响应时(即使是在提示符对话框中),它需要知道在哪里路由它,这就是运行所有根识别器的时候。
另外,我们还有一个解决方案,需要比3.8更大的bot SDK版本,
在3.8中,贡献者增加了使用新的
onEnabled和onFilter方法自定义识别器的能力。下面是添加筛选器的示例,该过滤器在任务运行时禁用识别器:
var recognizer = new builder.LuisRecognizer('<model>').onEnabled(function (context, callback) {
var enabled = context.dialogStack().length == 0;
callback(null, enabled);
});https://stackoverflow.com/questions/47723611
复制相似问题