如何在 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;
});