Полагаю, вы спроектировали своего бота так, чтобы «вопрос QnAMaker» был всего лишь одним намерением LUIS среди нескольких намерений.Если это так, просто добавьте столько высказываний QnA, сколько хотите, чтобы LUIS понял, как выглядит вопрос QnA, в отличие от других намерений.Это может занять много времени, и вы должны быть готовы к низким показателям достоверности, поэтому просто планируйте учесть это.
Если у вас есть несколько баз знаний QnA, каждая из которых имеет свои собственные намерения LUIS, вам может потребоваться добавить каждыйодин вопрос в качестве высказывания, чтобы LUIS знал, к какой конкретной базе знаний относится каждый вопрос.Тем не менее, вы также можете написать некоторый отказоустойчивый код для учета ситуаций, когда LUIS угадывает неверную базу знаний.Это может выглядеть примерно так:
[LuisIntent("KnowledgeBase2")]
public async Task KnowledgeBase2Handler(IDialogContext context, LuisResult result)
{
if (KnowledgeBaseContains(result.Query, knowledgeBase2))
{
// Answer the question with the correctly-selected knowledge base
}
else
{
foreach (var kb in knowledgeBases)
{
if (KnowledgeBaseContains(result.Query, kb))
{
// Answer the question with the correct knowledge base
// that LUIS didn't guess
}
}
}
}