如何使用C#在Azure Qnabot中返回多个答案

时间:2018-12-21 06:41:51

标签: c# azure chatbot qnamaker

我需要一种机制,可以使用C#.Net core 2.0在聊天机器人中返回多个答案(根据置信度得分,最相关的三个答案)。

我有一个使用BotServices获取我的问题答案的代码。

已经探索了获得多个答案的方法,但是仅链接到node.js方法。如下图所示。

我在C#中的代码:

private readonly BotServices _services;
var response = await 
_services.QnAServices[QnAMakerKey].GetAnswersAsync(turnContext);

NodeJS方法相同:

var recognizer = new cognitiveservices.QnAMakerRecognizer({
knowledgeBaseId: 'set your kbid here',
authKey: 'set your subscription key here',
top: 3});

如果C#中有类似的方法,请指导我完成以获得最相关的3个答案。

1 个答案:

答案 0 :(得分:0)

我的工作如下。设置一个变量以接收来自QnaMaker的所有答案。

var queryResults = await base.GetAnswersAsync(context);

如果您未指定,QnaMaker将返回得分最高的答案。返回第一个答案:

if (queryResults.Length > 0)
{
    var queryResult = queryResults[0].Answer;
}

您可以在queryResults中进行for循环,并将答案添加到数组中。