如何在 MS Bot 框架中保存对话数据
How to keep conversation data in MS Bot framework
我正在使用 Microsoft 机器人开发框架,使用其 node.js sdk。
我一直在寻找一种方法来保存对话的所有消息。我将 persistConversationData 设置为 true,并尝试使用 session.conversationData 访问 conversationData。然而,它是空的。
1- 是否有内置方法可以访问对话中的所有消息?
2- 如果 persistConversationData 不是那个,谁能解释一下它的用法。
非常感谢。
默认情况下,Microsoft Bot Framework 不会保留消息。对于有状态操作,您可以通过以下方式使用机器人状态 API:
- 设置
userData
。持久化数据将在不同对话中对同一用户可用。
- 设置
conversationData
。持久化数据将对同一对话中的所有用户可用。
- 设置
privateConversationData
。持久数据将对给定对话中的给定用户可用。
- 设置
dialogData
用于在瀑布的台阶之间存储临时信息。
根据文档,默认情况下禁用 conversationData
。如果要使用它,则必须将 persistConversationData
设置为 true
。
tl;dr 你必须自己照顾坚持。例如
// ...
var bot = new builder.UniversalBot(connector, { persistConversationData: true });
bot.dialog('/', function (session) {
let messages = session.conversationData || [];
messages.push(session.message);
session.conversationData = messages;
});
我正在使用 Microsoft 机器人开发框架,使用其 node.js sdk。 我一直在寻找一种方法来保存对话的所有消息。我将 persistConversationData 设置为 true,并尝试使用 session.conversationData 访问 conversationData。然而,它是空的。
1- 是否有内置方法可以访问对话中的所有消息?
2- 如果 persistConversationData 不是那个,谁能解释一下它的用法。
非常感谢。
默认情况下,Microsoft Bot Framework 不会保留消息。对于有状态操作,您可以通过以下方式使用机器人状态 API:
- 设置
userData
。持久化数据将在不同对话中对同一用户可用。 - 设置
conversationData
。持久化数据将对同一对话中的所有用户可用。 - 设置
privateConversationData
。持久数据将对给定对话中的给定用户可用。 - 设置
dialogData
用于在瀑布的台阶之间存储临时信息。
根据文档,默认情况下禁用 conversationData
。如果要使用它,则必须将 persistConversationData
设置为 true
。
tl;dr 你必须自己照顾坚持。例如
// ...
var bot = new builder.UniversalBot(connector, { persistConversationData: true });
bot.dialog('/', function (session) {
let messages = session.conversationData || [];
messages.push(session.message);
session.conversationData = messages;
});