我想知道bot框架中是否有任何功能可以完全让用户和机器人聊天。我已经阅读了官方文档,但我理解的方式是,只有这样我们才能保存聊天数据。如果我们必须存储整个数据,我们必须照顾它。 我试过用这个,
StateClient sc = activity.GetStateClient();
BotData userData1 =
sc.BotState.GetConversationData(activity.ChannelId, activity.Conversation.Id);
userData1.Data = userData1.Data + activity.Text;
sc.BotState.SetConversationData(activity.ChannelId, activity.Conversation.Id, userData1);
这确实会保留用户数据,但我仍然坚持如何在表单流中保留它。 我不确定如何使用SetConversationData将bot和用户的数据保存到表单流。我甚至需要机器人来保持表单流的提示信息。这样我就可以完成b / w用户和机器人的对话。
答案 0 :(得分:0)
本教程可能有所帮助: Introduction To FormFlow With The Microsoft Bot Framework
在FormFlow期间,用户的数据会自动保留。 FormFlow完成后,您可以像这样坚持:
public static IForm<ProfileForm> BuildForm()
{
return new FormBuilder<ProfileForm>()
.Message("Welcome to the profile bot!")
.OnCompletion(async (context, profileForm) =>
{
// Set BotUserData
context.PrivateConversationData.SetValue<bool>(
"ProfileComplete", true);
context.PrivateConversationData.SetValue<string>(
"FirstName", profileForm.FirstName);
context.PrivateConversationData.SetValue<string>(
"LastName", profileForm.LastName);
context.PrivateConversationData.SetValue<string>(
"Gender", profileForm.Gender.ToString());
// Tell the user that the form is complete
await context.PostAsync("Your profile is complete.");
})
.Build();
}