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

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

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

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

                    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 ответ

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

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

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

Другие вопросы по тегам