我需要一种机制,可以使用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个答案。
答案 0 :(得分:0)
我的工作如下。设置一个变量以接收来自QnaMaker的所有答案。
var queryResults = await base.GetAnswersAsync(context);
如果您未指定,QnaMaker将返回得分最高的答案。返回第一个答案:
if (queryResults.Length > 0)
{
var queryResult = queryResults[0].Answer;
}
您可以在queryResults中进行for循环,并将答案添加到数组中。