我有一个使用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制作人APIs。不幸的是,我没有找到任何办法。
对此有任何帮助吗?如果我能对此进行更新或澄清,请告诉我。
答案 0 :(得分:1)
如果我的搜索关键字用于多个问题,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)))
{
}
修改强>
上述方法对我有用,它可以提出问题并显示所选问题的答案。