Вот что проверить. Если вы используете стартовый код для Bot Service, вы, вероятно, наследуете Dialog от QnAMakerDialog. Конструктор принимает несколько параметров, в том числе сообщение, которое возвращается, когда нет хорошего совпадения, и минимальный доверительный интервал для того, когда нужно возвращать текст с плохим соответствием. Например, вот конструктор для моего класса, который наследуется от QnAMakerDialog:
public BasicQnAMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(Utils.GetAppSetting("QnASubscriptionKey"), Utils.GetAppSetting("QnAKnowledgebaseId"), "No good match in FAQ.", 0.5)))
{}
Обратите внимание, что текст "Нет хорошего совпадения" на самом деле установлен на "Нет хорошего совпадения в FAQ", а минимальный показатель достоверности равен 0,5.
Если вы зарегистрируетесь в тестовом чате QnAMaker, вы должны увидеть показатель доверия, возвращенный вместе с сообщением. Вы можете попытаться понизить минимальный показатель достоверности, чтобы избежать получения сообщения о несоответствии.
Улучшение вашего бота
Вы можете добавить альтернативные фразы к вопросам в QnAMaker для своего бота, затем переобучить и опубликовать модель. Вымойте, промойте, повторите. Вы также можете попробовать записывать вопросы, где QnAMaker возвращает показатель достоверности ниже порогового значения. Это даст вам отправную точку для вопросов, которые задают ваши пользователи, когда у вашего бота нет хорошего ответа.
В зависимости от вашей области знаний, вы также можете попробовать поискать в Интернете и подвести итоги верхнего результата, а затем вернуть его пользователю вместо простого «Не найдено подходящего соответствия». Это то, что делает Сири, когда она высыхает, что похоже на случай почти со всем, что я спрашиваю.