为了账号安全,请及时绑定邮箱和手机立即绑定

跟踪是否已触发 LUIS 意图

跟踪是否已触发 LUIS 意图

C#
蛊毒传说 2021-06-03 18:41:34
我如何跟踪 LUIS 意图是否已被触发?使用的渠道:Facebook场景用户:Audi TT 详细信息Bot:[汽车详细信息....]用户:谢谢Bot:您希望我们与您联系吗?(提供是或否提示)用户:[选择选项(是或否)]...下次同一用户聊天...或稍后在同一对话中用户:您有奥迪 TT 的零件吗?机器人:是的,我们有以下部件可用用户:非常感谢!Bot:很高兴为您提供帮助 -> Bot 不得提供“您希望我们与您联系吗?” 再次提示我正在使用 LUIS 意图来检测用户是否在说“谢谢”,然后触发提示。如何跟踪意图是否已被触发[LuisIntent ("Gratitude")]  public async Task Gratitude(IDialogContext context, IAwaitable<IMessageActivity> message, LuisResult result)  {                   if( intent_has_not_been_triggered_for_user)       PromptDialog.Choice(context,             ResumeAfterGratitude,             new[] { "Yes", "No"},             "Thank you. Would you like us to contact you?",             promptStyle: PromptStyle.Keyboard, attempts: 4           );   else        await context.PostAsync("Glad to help");  }
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以使用context.UserData来存储与用户关联的数据。


在您的情况下,您可以UserData通过使用键(例如 )设置值,以防该值不存在GratitudeTriggered,并且每次检查用户数据中是否存在该键。您还可以根据需要自定义逻辑,例如匹配特定值、值的存在等。


示例代码:


[LuisIntent("Gratitude")]

public async Task Gratitude(IDialogContext context, IAwaitable<IMessageActivity> message, LuisResult result)

{

    if (context.UserData.TryGetValue("GratitudeTriggered", out bool gratitudeTriggered))

    {

        //Triggered for the first time, store it in UserData that the Gratitude is triggered

        context.UserData.SetValue("GratitudeTriggered", "yes");


        PromptDialog.Choice(context,

              ResumeAfterGratitude,

              new[] { "Yes", "No" },

              "Thank you. Would you like us to contact you?",

              promptStyle: PromptStyle.Keyboard, attempts: 4

            );

    }

    else

        await context.PostAsync("Glad to help");

}


查看完整回答
反对 回复 2021-06-05
  • 1 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信