gpt4 book ai didi

node.js - 如何使用 Node.js 将对话数据记录到 MS Bot Framework v4 中的本地存储中

转载 作者:太空宇宙 更新时间:2023-11-04 00:05:11 24 4
gpt4 key购买 nike

我正在使用 Microsoft 机器人开发框架,使用其 v4 node.js sdk 并在模拟器中测试它。我一直在寻找一种方法来将对话的所有消息保存在本地计算机/存储本身中。我将 persistConversationData 设置为 true。我对 Bot 框架完全陌生,请帮助我存储对话数据的代码部分

最佳答案

这里有两个部分,具体取决于您是否仅意味着严格测试或是否想在常规使用期间记录。

如果您使用 v4 模拟器,您将看到一个“save transcript as”按钮,该按钮允许您保存当前对话的副本以供以后在模拟器中使用和重播。

如果您想创建自己的日志记录中间件,有一个名为 TranscriptLoggerMiddleware 的内置类

为了进行设置,您可以执行以下操作(在本例中使用名为 ConsoleTranscriptLogger 的内置完成子类,但如果需要,您可以实现内置接口(interface) TranscriptLogger 来创建自定义版本来保存副本)

通过以下方式在 require 语句中导入中间件类:

const { BotFrameworkAdapter, MemoryStorage, ConversationState, TranscriptLoggerMiddleware, ConsoleTranscriptLogger } = require('botbuilder');

然后初始化该记录器类的实例:

const logger = new TranscriptLoggerMiddleware(new ConsoleTranscriptLogger());

最后将该中间件包含在整个中间件堆栈中:

// Create conversation state with in-memory storage provider.
const conversationState = new ConversationState(memoryStorage);

// Create the main dialog.
const myBot = new MyBot(conversationState);

adapter.use(logger); // initialize middleware after your usual setup steps

在这种情况下,完成这些步骤后,ConsoleTranscriptLogger 将打印出控制台收到的数据。带有保存功能的自定义日志记录的完整实现涉及更多,但可以通过创建一个实现 TranscriptLogger 的类来完成。并简单地保存状态而不是输出到控制台,如 ConsoleTranscriptLogger 中所示

自定义日志记录this repo内我也设置了自定义日志记录。这需要添加两个文件。在这种情况下

CustomLogger.d.ts包含用于实现 TranscriptLogger 接口(interface)

的导入和设置

CustomLogger.js包含处理传入事件的逻辑

关于node.js - 如何使用 Node.js 将对话数据记录到 MS Bot Framework v4 中的本地存储中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52646169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com