我的QnA知识库出现了一个问题,在使用后续提示时,它会重新设置“KB中找不到好的匹配”,并将其配置为返回一个答案。
我已经设置了大约200个问答对,它们都有后续提示,将每个问题/答案对链接到其他问题/答案对。然而,当我在QnA Maker中测试知识库时,我得到的答案是“KB中找不到答案”。
以下是一个例子:
我有一个问答组合来回答‘什么是抑郁’的问题,这个问题有五个不同的后续提示--流行率、原因、类型、症状和相关问题:

正如您在下面的图片中所看到的,流行率跟踪提示被配置为使用“抑郁症有多常见”的问题/答案对来回答:

但是,当我使用QnA Maker的内置测试聊天机器人进行测试时,我得到的答案是“KB中找不到很好的匹配”:

当我检查结果时,我看到以下内容:

正如你所看到的,没有返回答案,信心分数是‘无’。
有没有其他人见过这个问题,并有解决办法?
发布于 2019-07-10 09:18:52
跟踪提示目前不支持在QnA制造者门户之外的框外。有一个C#和NodeJS实验示例,演示如何将此功能集成到bot中。
由于您没有指定语言首选项,所以我将使用C#首选项,基本上您的QnA代码需要从以下几个方面进行更新:
var qnaMaker = new QnAMaker(new QnAMakerEndpoint
{
KnowledgeBaseId = _configuration["QnAKnowledgebaseId"],
EndpointKey = _configuration["QnAEndpointKey"],
Host = _configuration["QnAEndpointHostName"]
},
null,
httpClient);
var response = await qnaMaker.GetAnswersAsync(turnContext);
if (response != null && response.Length > 0)
{
await turnContext.SendActivityAsync(MessageFactory.Text(response[0].Answer), cancellationToken);
}
else
{
await turnContext.SendActivityAsync(MessageFactory.Text("No QnA Maker answers were found."), cancellationToken);
}至:
var qnaMaker = new QnAMaker(new QnAMakerEndpoint
{
KnowledgeBaseId = _configuration["QnAKnowledgebaseId"],
EndpointKey = _configuration["QnAEndpointKey"],
Host = _configuration["QnAEndpointHostName"]
},
null,
httpClient);
var response = await qnaMaker.GetAnswersAsync(turnContext);
var qnaAnswer = response[0].Answer;
var prompts = response[0].Context?.Prompts;
if (prompts == null || prompts.Length < 1)
{
await turnContext.SendActivityAsync(MessageFactory.Text(response[0].Answer), cancellationToken);
}
else
{
// Set bot state only if prompts are found in QnA result
newState = new QnABotState
{
PreviousQnaId = response[0].Id,
PreviousUserQuery = query
};
outputActivity = CardHelper.GetHeroCard(qnaAnswer, prompts);
}相关代码在这个文件中,正如您可以看到的那样,还有一些额外的代码可以通过后续提示来存储进度,所以在将KB细节插入示例之后,在将其移植到您的机器人之前,可能更容易将其插入到示例中以查看它的工作方式。
发布于 2019-07-11 07:09:42
在Matt的帮助下,我们对门户聊天机器人和QnA API进行了一些测试,发现在门户聊天机器人返回预期的答案时,存在一个bug。随后,我在BotFramework文档页这里上发布这方面的详细信息作为反馈。
https://stackoverflow.com/questions/56966147
复制相似问题