В настоящее время я играю с ботами и LUIS. Итак, у меня есть бегущий бот. В моем RootDialog я обрабатываю все намерения, которые я получаю от LUIS. Теперь я хочу проверить, отсутствует ли Entity для намерения.Запросить пользователя для строки в дочернем диалоговом окне в боте
if (result.Entities.Count == 0) {
var ct = new CancellationToken();
await context.Forward(new ParameterDialog(), ResumeAfterParameterDialog, message, ct);
Если нет объекта, я создаю новое дочернее диалоговое окно.
public class ParameterDialog : IDialog<object> {
public async Task StartAsync(IDialogContext context) {
context.Wait(MessageReceivedAsync);
}
public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument) {
argument = new PromptDialog.PromptString("Please enter a parameter", "please try again", 2);
var prompt = await argument;
await context.PostAsync($"Your Parameter is: {prompt}");
context.Done(prompt);
}
}
Если бы я мог получить пользовательский ввод, я бы передал его обратно в родительский диалог.
Теперь я не знаю, как я могу остановить Бот и позволить ему ждать ввода пользователя. Может кто-нибудь объяснить, как я могу это сделать? Спасибо!