Поскольку существует несколько разных способов использования QnA maker вместе с бот-фреймворком, есть довольно много разных предложений по проблеме, которая у вас есть в данный момент, но не так много правильных рекомендаций от Microsoft в настоящее время. (По крайней мере, я не нашел)
Я сталкивался с этой проблемой, перечисленной в репозитории git QnA makers: найден здесь. Есть несколько разных предложений, поэтому я перечислю их ниже от минимального до максимального усилия.
Вариант 1: [Предполагается, что вы создаете базовый класс диалога, который соединяется с создателем QnA]
public BasicQnAMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(ConfigurationManager.AppSettings["QnASubscriptionKey"], ConfigurationManager.AppSettings["QnAKnowledgebaseId"], "No good match in FAQ")))
Вариант 2: [Просто найдите конкретную строку, которая возвращается по умолчанию, и переопределите ее]
protected override async Task RespondFromQnAMakerResultAsync(IDialogContext context, IMessageActivity message, QnAMakerResults result)
{
var answer = result.Answers.First().Answer;
Activity reply = ((Activity)context.Activity).CreateReply();
if (reply.Text.equals("Not Match Found!))
reply.Text = "No good match in FAQ";
await context.PostAsync(reply);
}
Были случаи, когда QnAMaker все еще находился в предварительном просмотре, что опция 1 не будет работать должным образом. Вариант 2, на мой взгляд, не так удобен, но это неплохая работа.
Как сказал Эрик в своем ответе, в их git-репо существует активный запрос на извлечение информации, ожидающий объединения с этой проблемой. Так что со временем это будет проще. До тех пор, пока эти два варианта помогут.