QnAMaker使用关键字

时间:2018-12-24 13:20:28

标签: botframework luis qnamaker

我一直在使用Microsoft Bot Framework v4和QnA Maker(GA)。我遇到的一个问题是,当用户键入诸如“请假”的关键字时。有10多种请假问题。 QnAMaker会把分数最高的那个发回,无论它是哪种形式(不是正确的答案)。

我有一棵树来回答看起来像这样的问题:

请假

  1. 育儿假
  2. 产假
  3. 请假

  4. 每种可以有一个或多个相关问题,请假也可以有子请假。

当用户询问“请假”时,机器人应回答:“哪种请假”,然后用户可以提出有关问题。
当用户问“我可以请多少天育儿假”时,机器人应直接从QnA回答:“您可以有10天的空闲时间”。

我的问题是,我该如何在v4中实现此功能,以便用户获得正确的答案? LUIS可以选择吗?有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您有一个又一个的问题要问用户,这将非常困难。为此,您可能需要使用

的单独Dialog类。
List<string>

当然是在运行时构建的一组问题。最后,它可以返回到原始Dialog类。我已经在不同职位上实施了类似的职位空缺。每个帖子都有自己的一组问题。一旦用户回答了当前问题,控件将保留在此QuestionnaireDialog(单独的Dialog类)中,询问下一个问题。我认为QnA Maker对此无济于事。我没看过QnA制造商,也没有看过v4。我已经在v3上完成了上述操作,并且意图响应映射位于数据库表中。 我的建议是尽可能将您的结构从多个级别展平为2个级别,以避免出现树。

例如:

Leaves --> Care Leave --> Medical Care Leave
                      --> Family Care Leave

将结构更改为

Leaves --> Medical Care Leave
       --> Family Care Leave

以便您可以使用LUIS实体进行管理。简单地询问休假将带来一个具有所有可用休假类型的响应,而专门询问休假类型将带来一个针对该休假类型的不同响应。再次,我在v3中没有QnA制造商也做了类似的事情。如果您无法扁平化结构,则可能必须将两种方法混合使用,因为您想响应用户的特定请假类型查询(LUIS实体)并通过问卷调查来指导用户。