我试图从相同的意图得到不同的消息。让我们考虑我有一个意图问候,所以当用户说'嗨' toBot然后调用问候语然后显示消息"hello and welcome&;给用户。
如果你输入Hi再次到bot,然后我想从bot获得不同的消息,如"hello and welcome again">.
这是我的意图代码
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()}")
}
},
您可以使用会话状态。添加一个名为isusergreet的布尔字段,当第一次命中意图时,将其设置为true。
当意图再次被击中时,检查会话状态,看看用户是否已经被欢迎,如果是,你可以向用户发送第二个hello消息。
如果您想根据日期重置欢迎标志,您还可以存储日期信息,以查看用户今天是否受到欢迎。