跟踪 LUIS 意图是否已被触发
Track if LUIS intent has already been triggered
我如何跟踪 LUIS 意图是否已被触发??
使用频道:Facebook
场景
用户:奥迪 TT 详情
机器人:[汽车详情....]
用户:谢谢
机器人:你想让我们联系你吗? (提供是或否提示)
用户:[select 选项(是或否)]...
下次同一用户聊天...或稍后在同一对话中
用户:你们有奥迪 TT 的零件吗?
Bot : 是的,我们有以下零件可用
用户:非常感谢!
Bot : 乐于助人 -> Bot 不得再次提供 "Would you like us to contact you?" 提示
我正在使用 LUIS 意图检测用户是否在说 'thank you' 然后触发提示。我如何跟踪意图是否已被触发
[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");
}
您可以使用 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");
}
我如何跟踪 LUIS 意图是否已被触发??
使用频道:Facebook
场景
用户:奥迪 TT 详情
机器人:[汽车详情....]
用户:谢谢
机器人:你想让我们联系你吗? (提供是或否提示)
用户:[select 选项(是或否)]...
下次同一用户聊天...或稍后在同一对话中
用户:你们有奥迪 TT 的零件吗?
Bot : 是的,我们有以下零件可用
用户:非常感谢!
Bot : 乐于助人 -> Bot 不得再次提供 "Would you like us to contact you?" 提示
我正在使用 LUIS 意图检测用户是否在说 'thank you' 然后触发提示。我如何跟踪意图是否已被触发
[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");
}
您可以使用 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");
}