2017-09-26 24 views
0

我有多个使用triggerAction触发的对话框。我使用LUIS触发/匹配特定对话的话语。如何在不触发Microsoft Bot框架中的新意图的情况下使用Prompts.text

每一个对话框有两个步骤(功能):

  1. 如果实体是有效的查询DB和结束对话,否则提示用户与Prompts.text()缺少实体之一,并继续下一步
  2. 集对话框状态和重复对话框从步骤1 next() *

我的问题是,对于一些提示输入(即实体值)LUIS将触发新的无关对话。在这些情况下,对话框堆栈丢失(因为我使用了triggerAction)并且对话流程中断。

如何确保提示丢失的实体不会触发新的对话框?我的谈话有缺陷吗?

我已经有很多训练有素的话语了。我猜我的LUIS模型“足够松散”,足以匹配多个单词实体(在提示后输入)到(短)意图话语。

*从docs当机器人到达瀑布的末端而没有结束对话框时,用户的下一条消息将在瀑布的第一步重新启动该对话框。

回答

1

您可以使用LuisRecognizer.onEnabled()来禁用您在LUIS调用时处于dialogStack中间,甚至在对话框中间。这将解决您在提示中间被识别的意图问题。

这是example我使用RegExpRecognizer.onEnabled()IntentRecognizer继承)实现该方法时写的。

这是一个answer到我写的堆栈溢出问题。

+0

Steven,样本链接丢失 –

+0

哎呀,谢谢你指出这一点!已添加链接到答案 –

+1

感谢您的回复,最终我选择了此解决方案https://stackoverflow.com/a/43351847/6696049 – edo

相关问题