我一直在使用Microsoft Bot Framework v4和QnA Maker(GA)。我遇到的一个问题是,当用户键入诸如“请假”的关键字时。有10多种请假问题。 QnAMaker会把分数最高的那个发回,无论它是哪种形式(不是正确的答案)。
我有一棵树来回答看起来像这样的问题:
请假
当用户询问“请假”时,机器人应回答:“哪种请假”,然后用户可以提出有关问题。
当用户问“我可以请多少天育儿假”时,机器人应直接从QnA回答:“您可以有10天的空闲时间”。
我的问题是,我该如何在v4中实现此功能,以便用户获得正确的答案? LUIS可以选择吗?有什么建议吗?
谢谢。
答案 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实体)并通过问卷调查来指导用户。