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

3

我正在使用微软机器人开发框架,使用它的node.js sdk。

我一直在寻找一种保存会话中所有消息的方法。我将persistConversationData设置为true,并尝试使用session.conversationData访问conversationData。然而,它是空的。

1- 有内置的方法来访问会话中的所有消息吗?

2- 如果persistConversationData不是用于此目的,是否有人可以解释其用途。

非常感谢。

1个回答

6
默认情况下,Microsoft Bot Framework不会持久化消息。对于有状态的操作,可以使用Bot State API以以下方式:
- 设置userData。持久化数据将在不同对话中为同一用户提供。 - 设置conversationData。持久化数据将在同一对话中所有用户之间共享。 - 设置privateConversationData。持久化数据将在给定用户和给定对话中提供。 - 为在瀑布流步骤之间存储临时信息设置dialogData。
根据文档,conversationData默认处于禁用状态。如果要使用它,必须将persistConversationData设置为true。
简而言之,您需要自己处理持久性。例如:
// ...

var bot = new builder.UniversalBot(connector, { persistConversationData: true });

bot.dialog('/', function (session) {
    let messages = session.conversationData || [];
    messages.push(session.message);
    session.conversationData = messages;
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接