Bot Framework V4 IActivityLogger

Chi*_*mar 5 .net c# .net-core botframework

我们是否有像 IActivityLogger (V3) 这样的界面,在 V4 中记录所有用户活动?

我想在我的 Cosmos 数据库中记录所有用户查询和机器人响应。我能够使用 IActivityLogger 接口在 V3 中做到这一点。

请建议。

Eri*_*ang 7

V4中的接口是ITranscriptLogger

using System.Threading.Tasks;
using Microsoft.Bot.Schema;

namespace Microsoft.Bot.Builder
{
    /// <summary>
    /// Transcript logger stores activities for conversations for recall.
    /// </summary>
    public interface ITranscriptLogger
    {
        /// <summary>
        /// Log an activity to the transcript.
        /// </summary>
        /// <param name="activity">The activity to transcribe.</param>
        /// <returns>A task that represents the work queued to execute.</returns>
        Task LogActivityAsync(IActivity activity);
    }
}
Run Code Online (Sandbox Code Playgroud)

一旦您有了ITranscriptLogger实现,就可以使用TranscriptLoggerMiddleware将其添加到中间件堆栈中

var transcriptStore = new MyCosmosTranscriptStore(config.TranscriptConnectionString, storageContainer);
var transcriptMiddleware = new TranscriptLoggerMiddleware(transcriptStore);
...
.AddSingleton(_ => transcriptStore);
Run Code Online (Sandbox Code Playgroud)

然后将其添加到适配器中 adapter.Use(transcriptStore);