Я использую nodejs вместо C #, но реализация должна быть похожей.Я попробовал упомянутый метод, чтобы установить порог в вызове generateanswer, но это удастся только дать вам ответ по умолчанию, если порог не был достигнут, что-то вроде «Не найдено ответов на этот запрос».В большинстве случаев вам не нужен этот ответ для ваших пользователей, и я считаю, что проверка достоверности после дает более полезный ответ.
Я делаю проверкув реальном диалоге и настройке выходной активности оттуда.Опять же, это nodejs, но вы должны быть в состоянии сделать то же самое в C #.Вот как я это реализовал.
// Apply confidence filter
if (qnaResult[0].score > MINIMUM_SCORE) {
outputActivity = MessageFactory.text(qnaAnswer);
}
else {
// If low confidence, send to social talk
var socialResult = await SocialTalkHelper.queryQnAService(query, oldState);
if (socialResult[0].score > MINIMUM_SCORE) {
outputActivity = MessageFactory.text(socialResult[0].answer);
}
else {
// If low confidence for social talk, use default answer
outputActivity = MessageFactory.text(defaultAnswer);
}
}
Я на самом деле каскадировал это, чтобы использовать второй вызов QnA Maker в Enterprise Social Talk KB, если мой минимальный балл не достигнут.Я установил пользовательский ответ по умолчанию для использования, если этот вызов также не соответствует моему порогу.Обратите внимание, что MINUMUM_SCORE находится вне 100 , а не 1,0 (например, 50% -ная достоверность составляет 50 , а не 0,5).
Не уверен, какой образец вы используете.Мой ответ основан на «экспериментальной» версии, но в любом случае вы должны получать тот же объект обратно из QnA Maker, и вопрос только в том, как вы с ним справитесь.