0

我试图从相同的意图中获取不同的信息。让我们考虑一下我有一个意图问候语,所以当用户对机器人说“”时,机器人调用问候语意图,然后机器人向用户显示消息“你好,欢迎”

如果您再次向机器人打招呼,那么我想要来自机器人的不同消息,例如“你好,再次欢迎”

这是我的意图代码

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


                    }
                },
4

1 回答 1

0

你可以利用会话状态。添加一个名为 isUserGreeted 的布尔字段,当第一次命中意图时,将其设置为 true。

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

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

于 2021-08-31T17:01:15.673 回答