You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于botbuilder-applicationinsights用户话语日志及自定义字段添加的技术问询

没问题!你完全可以扩展现有Dialog日志的字段,也能轻松启用botbuilder-applicationinsights自带的用户话语日志功能,我给你拆解一下具体怎么做:

一、添加用户话语或自定义键值对到Dialog日志

你有两种灵活的方式来扩展日志内容:

  • 扩展默认Dialog事件属性:在处理Dialog步骤的代码里,直接把用户话语和自定义键值对加入到Telemetry事件的属性字典中,这样就能和现有的InstanceId、DialogId等字段一起记录。示例代码如下:
// 在Dialog的某个Step逻辑中
var telemetryClient = turnContext.TurnState.Get<ITelemetryClient>();
var eventProperties = new Dictionary<string, string>
{
    { "InstanceId", dialogContext.InstanceId },
    { "DialogId", dialogContext.ActiveDialog.Id },
    { "StepName", "UserInputProcessingStep" }, // 替换为你的步骤名称
    { "UserUtterance", turnContext.Activity.Text }, // 新增用户话语字段
    { "CustomAttribute", "CustomValue" }, // 自定义键值对,按需添加
    { "UserSessionDuration", "5m30s" }
};
telemetryClient.TrackEvent("DialogStepCompleted", eventProperties);
  • 创建自定义Telemetry事件:如果默认的Dialog事件结构满足不了你的需求,也可以单独创建自定义事件,把所有需要的维度都包含进去,这种方式更适合需要独立分类分析的场景。
二、启用botbuilder-applicationinsights的用户话语自动日志

这个功能是框架内置的,只需要简单配置就能开启:

  1. 配置Telemetry中间件:在Bot的初始化代码中,添加TelemetryInitializerMiddleware并开启个人信息日志(这是记录用户话语的关键):
// 初始化Application Insights客户端
var telemetryClient = new TelemetryClient(new TelemetryConfiguration("你的InstrumentationKey"));

// 配置Telemetry中间件,启用用户话语日志
var telemetryMiddleware = new TelemetryInitializerMiddleware(
    telemetryClient, 
    logPersonalInformation: true // 必须设为true才会记录用户话语
);

// 将中间件添加到Bot Adapter中
adapter.Use(telemetryMiddleware);
  1. 查看日志:启用后,Application Insights的事件列表里会自动生成MessageReceived(用户发消息)和MessageSent(Bot回复)事件,其中UserMessage字段就是用户的话语内容。
三、关于扩展字段 vs 直接记录的选择
  • 如果需要关联Dialog会话全流程数据(比如追踪一个Dialog会话中用户的每一步输入和操作),优先选择扩展现有Dialog事件的属性,这样所有相关数据都在同一个事件条目里,后续查询分析更连贯。
  • 如果用户话语或自定义数据是独立的分析维度(比如单独统计用户高频提问),或者你需要更清晰的事件分类,那单独记录自定义事件也完全可行,两种方式甚至可以结合使用。

内容的提问来源于stack exchange,提问作者Wickkiey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:42:23