1

我有一个使用 LUIS 和 QnA Maker 的机器人。

现在,我可以根据搜索关键字在我的机器人中发送查询并获得回复。但如果我的搜索关键字用于多个问题,QnA Maker 只会检索第一个匹配的 QnA 对。

考虑下面的 QnA 对:

What is flexible working?   Flexibility to work from home
How to avail flexible working?  Get in touch with manager

如果用户输入了确切的问题并按回车键,则响应将是与问题匹配的答案。但是,如果用户flexible working在这种情况下键入,则响应将只是第一个 QnA 答案。因此,在这种情况下,我想检索这两个问题并将其作为可供选择的问题返回给用户。

我尝试覆盖RespondFromQnAMakerResultAsync并检查了 QnA maker APIs。不幸的是,我没有找到任何方法来做到这一点。

请问有什么帮助吗?让我知道我是否可以对此进行改写或澄清。

4

1 回答 1

3

如果我的搜索关键字用于多个问题,QnA 制造商只会检索第一个匹配的 QnA 对

您可以尝试为 指定顶部参数QnAMakerAttribute,该参数控制要返回的答案数。

的定义QnAMakerAttribute

public QnAMakerAttribute(string subscriptionKey, string knowledgebaseId, string defaultMessage = null, double scoreThreshold = 0.3, int top = 1);

在您的 QnaDialog 中,您可以像这样指定它:

public QnaDialog() : base(new QnAMakerService(new QnAMakerAttribute("{subscriptionKey_here}", "{knowledgebaseId_here}", "Sorry, I couldn't find an answer for that", 0.5, 5)))
{
}

编辑:

上述方法对我有用,它可以促进问题并显示所选问题的答案。

在此处输入图像描述

于 2018-05-14T09:23:00.657 回答