【问题标题】:Is it possible to get different message from same intent是否有可能从相同的意图获得不同的消息
【发布时间】:2021-10-30 01:43:36
【问题描述】:

我试图从相同的意图中获取不同的信息。让我们考虑一下我的意图 Greeting ,所以当用户对 Bot 说“Hi”时,机器人会调用 Greeting strong> 意图然后 bot 向用户显示消息 “hello and welcome”

如果你再次对机器人说 Hi,那么我想要来自机器人的不同信息,例如 “你好,再次欢迎”

这是我的意图代码

              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()}")


                    }
                },

【问题讨论】:

标签: c# botframework luis.ai adaptive-dialogs


【解决方案1】:

您可以使用conversation state。添加一个名为isUserGreeted的布尔字段,当intent第一次被命中时,设置为true。

当 Intent 再次被命中时,检查会话状态以查看用户是否已经被打招呼,如果是,您可以向用户发送第二条 hello 消息。

如果您想根据日期重置问候标志,您还可以存储日期信息以查看用户今天是否受到问候。

【讨论】:

    猜你喜欢
    • 2019-06-18
    • 2011-01-29
    • 1970-01-01
    • 2021-03-19
    • 2021-06-08
    • 2015-03-29
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多