如何在MS Bot框架中保留对话数据

tah*_*sin 3 save botframework

我正在使用Microsoft bot开发框架,使用其node.js sdk.我一直在寻找一种方法来保存对话的所有消息.我将persistConversationData设置为true,并尝试使用session.conversationData访问conversationData.但是,它是空的.

1-是否有内置方法来访问对话中的所有消息?

2-如果persistConversationData不适用于此,任何人都可以解释它的用法.

非常感谢.

The*_*ram 6

默认情况下,Microsoft Bot Framework不会保留邮件.对于有状态操作,您可以通过以下方式使用Bot State API:

  • 设置userData.持久化数据将在不同对话中提供给同一用户.
  • 设置conversationData.持久化数据将可供同一对话中的所有用户使用.
  • 设置privateConversationData.持久化数据将在给定对话中供给给定用户.
  • 设置dialogData用于在瀑布的步骤之间存储临时信息.

根据文档,conversationData默认情况下禁用.如果要使用它,则必须设置persistConversationDatatrue.

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;
});
Run Code Online (Sandbox Code Playgroud)