Как вернуть несколько ответов в Azure Qnabot с помощью C # - PullRequest
0 голосов
/ 21 декабря 2018

Мне нужен механизм, в котором я могу вернуть более одного ответа (наиболее релевантные 3 ответа в соответствии с оценкой достоверности) в чат-боте с использованием 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 голосов
/ 24 декабря 2018

Я сделал следующее.Создайте переменную для получения всех ответов от QnaMaker.

var queryResults = await base.GetAnswersAsync(context);

QnaMaker вернет ответ с наибольшим количеством баллов, если вы его не укажете.Чтобы вернуть первый ответ:

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

Вы можете сделать цикл for с помощью queryResults и добавить ответы в массив.

...