c# - 我们如何在 azure sql 数据库中记录机器人和用户对话消息?
问题描述
我使用 c# 在 microsoft botframework sdk v4 中创建了一个机器人,它运行良好。现在我想将这些对话消息记录到 azure sql 数据库中。我怎样才能做到这一点??
提前致谢,
解决方案
在 Bot Builder V4 中,ITranscriptLogger已取代 IActivityLogger。
您可以在此处找到实体框架实现:https ://github.com/BotBuilderCommunity/botbuilder-community-dotnet/pull/78
您可以创建一个连接到 sql server 的ITranscriptLogger实现,并从LogActivityAsync中的 Activity 中持久保存您想要的任何字段
// Summary:
// Transcript logger stores activities for conversations for recall.
public interface ITranscriptLogger
{
// Summary:
// Log an activity to the transcript.
//
// Parameters:
// activity:
// The activity to transcribe.
//
// Returns:
// A task that represents the work queued to execute.
Task LogActivityAsync(IActivity activity);
}
一旦你有一个 ITranscriptLogger 实现,它可以被添加到 Startup.cs 的中间件堆栈中:
var myLogger = new MyTranscriptLogger(Configuration.GetSection("BotDataConnectionString").Value);
var transcriptMiddleware = new TranscriptLoggerMiddleware(myLogger);
options.Middleware.Add(transcriptMiddleware);
推荐阅读
- google-api - 如何使用 NPM 从 Ads API 获取广告名称?
- node.js - AWS lambda 限制来自特定事件源的并发调用
- javascript - 如何将仅编译时的全局变量传递给我的代码?
- r - Shiny 中的每个选项卡都有不同的选项卡和不同的 UI
- python-3.x - ImportError: DLL load failed: 找不到指定的模块||pywraplp
- python - 如何在 django 中播放本地文件夹中的视频?
- javascript - 未捕获的类型错误:无法读取未定义的属性“顶部”
- r - 如何创建列的频率,然后在 R 中对该数据执行聚合
- amazon-s3 - 无服务器错误:部署到 Gitlab 时出现“存储桶已存在”
- javascript - 如何在 Java Script 中停止实时时间