首页 > 解决方案 > 我们如何在 azure sql 数据库中记录机器人和用户对话消息?

问题描述

我使用 c# 在 microsoft botframework sdk v4 中创建了一个机器人,它运行良好。现在我想将这些对话消息记录到 azure sql 数据库中。我怎样才能做到这一点??

提前致谢,

标签: c#loggingbotframework

解决方案


在 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);

推荐阅读