Возможно ли получить другое сообщение с одним и тем же намерением

#c# #botframework #luis.ai #adaptive-dialogs

Вопрос:

Я пытаюсь получить другое сообщение с тем же намерением. Давайте рассмотрим , что у меня есть намеренное приветствие, поэтому, когда пользователь говорит «Привет» Боту, бот вызывает намерение приветствия, а затем бот показывает сообщение «привет и добро пожаловать» пользователю.

Если вы еще раз поздороваетесь с ботом, то я хочу другое сообщение от бота, например «здравствуйте и еще раз добро пожаловать».

вот мой код намерения

               new OnIntent("Greeting")
                {
                    Actions = new List<Dialog>()
                    {
                        new CodeAction(async (dialogContext, options) =>
                        {
                            var now = DateTime.Now.TimeOfDay;

                            var time = now < new TimeSpan(12, 0, 0)
                                ? "morning"
                                : now > new TimeSpan(19, 0, 0)
                                    ? "evening"
                                    : "afternoon";

                            dialogContext.State.SetValue("dialog.greetingTime", time);
                            dialogContext.State.SetValue("user.name",CustmerName);
                            return await dialogContext.EndDialogAsync(options);
                        }),

                        new SendActivity("${HelpRootDialog()}")


                    }
                },
 

Комментарии:

1. Вместо добавления такого количества кода вы можете использовать «OnMembersAddedAsync». docs.microsoft.com/en-us/azure/bot-service/…

Ответ №1:

Вы можете использовать состояние разговора. Добавьте логическое поле с именем isUserGreeted, при первом попадании в цель установите его как истинное.

Когда цель будет достигнута снова, проверьте состояние разговора, чтобы узнать, был ли пользователь уже встречен, если да, вы можете отправить пользователю второе приветственное сообщение.

Если вы хотите сбросить флаг приветствия на основе даты, вы также можете сохранить информацию о дате, чтобы узнать, был ли пользователь встречен сегодня.