gpt4 book ai didi

logging - 如何使用 Bot Framework C# Bot Builder 记录聊天对话

转载 作者:行者123 更新时间:2023-12-02 06:28:48 25 4
gpt4 key购买 nike

我想记录我的机器人对话(到文本文件或数据库)。我想捕获机器人的所有输入和输出,包括 FormFlow、Confirms 等生成的任何文本。我不需要卡片等图形元素,但如果也能从中获取文本就好了。

在我的应用程序中的每个输入/输出之后添加日志记录语句似乎并不实际,特别是因为我无法轻松地准确判断 FormFlow 向用户发送了哪些文本。

最好的方法是什么?

最佳答案

您可以使用 Middleware 记录所有消息(来自机器人或用户) .

对于 C# 版本,您必须实现 IActivityLogger并在 LogAsync 方法中记录您想要的内容。

例如:

public class DebugActivityLogger : IActivityLogger
{
public async Task LogAsync(IActivity activity)
{
Debug.WriteLine($"From:{activity.From.Id} - To:{activity.Recipient.Id} - Message:{activity.AsMessageActivity()?.Text}");
}
}

最后,您必须使用类似以下内容在 AutoFact 中注册(在 global.asax 中):

var builder = new ContainerBuilder();
builder.RegisterType<DebugActivityLogger>().AsImplementedInterfaces().InstancePerDependency();
builder.Update(Conversation.Container);

如果您使用的是nodejs版本,它更简单:

const logUserConversation = (event) => { console.log('message: ' + event.text + ', user: ' + event.address.user.name);
};
// Middleware for logging
bot.use({
receive: function (event, next) {
logUserConversation(event);
next();
},
send: function (event, next) {
logUserConversation(event);
next();
}
});

关于logging - 如何使用 Bot Framework C# Bot Builder 记录聊天对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41309532/

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