LUIS/QNA продолжает активировать намерения, связанные с выбором в подсказке выбора.
Мой вопрос: есть ли способ для LUIS/QNA игнорировать вводимые пользователем данные из подсказки выбора? или для ответа на запрос о выборе не отображается как пользовательский ввод, поэтому LUIS / QNA оставит выбор в покое?
Например, в этой подсказке выбора. Это не достигнет SecondStepAsync, поскольку LUIS/QNA обнаружит выбор пользователя как намерение, подобное метке выбора, и сделает что-то еще.
private static async Task<DialogTurnResult> FirstStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken = default(CancellationToken))
{
choices.Add(new Choice { Value = "Choose Red"});
choices.Add(new Choice { Value = "Choose Green"}});
return await stepContext.PromptAsync(
ChoicePromptId,
new PromptOptions
{
Prompt = MessageFactory.Text($"Welcome to FAQ! Choose the number of the question or type your own question."),
Choices = choices,
});
}
private static async Task<DialogTurnResult> SecondStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken = default(CancellationToken))
{
var choiceResult = (stepContext.Result as FoundChoice).Value.ToLower();
switch (choiceResult)
{
case "choose red":
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"..."));
break;
case "choose green":
await stepContext.Context.SendActivityAsync(MessageFactory.Text($"..."));
break;
default:
break;
}
return await stepContext.NextAsync();
}
LUIS — это независимая служба, которая просто принимает ввод, то есть высказывание, и возвращает результат, то есть намерение.
Теперь, если вы хотите, чтобы LUIS игнорировал реплики Choice Prompt, вам нужно будет создать это в самом методе OnTurnAsync.
Вы можете посмотреть здесь, в этом уроке. Основываясь на ответах, данных пользователем, вы будете использовать соответствующие услуги. Вот как должен выглядеть ваш псевдокод onTurnAsync
OnTurnAsync()
Record the utterance Check what was the active dialog. <Documentation [here][2]> IF (!choice Dialog) call LUIS else /* your code here. */
@ user10860402 Это правильный ответ. Используйте комбинацию моих последних нескольких ответов, чтобы получить вас там.