如何在不触发Microsoft Bot Framework中的新意图的情况下使用Prompts.text

时间:2017-09-26 19:14:58

标签: node.js botframework luis

我有多个由triggerAction触发的对话框。我使用LUIS来触发/匹配话语到特定的对话框。

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

  1. 如果实体是有效的查询数据库和结束对话框,则提示用户使用Prompts.text()的其中一个缺失实体并继续下一步
  2. 使用next() *
  3. 设置对话框状态并从步骤1重复对话框

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

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

    我已经为每个意图提供了许多训练有素的话语。我猜测我的LUIS模型是"松散"足以匹配多个单词实体(在提示后输入)到(短)意图发音。

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

1 个答案:

答案 0 :(得分:1)

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

这是我在使用RegExpRecognizer.onEnabled()继承自IntentRecognizer)时实施该方法的example

这是我写的Stack Overflow问题的answer