全链路日志是什么
全链路日志的目标是让每一次问答都能被复现:原始问题、改写后查询、候选片段 id 与分数、重排结果、实际进上下文的片段、模型与提示词版本、各环节耗时、最终输出与校验结果。全部字段用同一个 trace id 串起来,才能在用户报“这次答错了”时,把当时模型看到的输入完整还原出来。没有这份记录,调参与排错都只能靠猜;有了它,评测集的增补也有了现成来源。
基本信息
| 串联键 | trace_id,贯穿改写、检索、重排、生成各环节 |
|---|---|
| 必记内容 | 各环节输入输出与耗时、模型与提示词版本 |
| 采样策略 | 关键路径全量记录,高频路径按比例采样并保底 |
| 存储 | 结构化字段存入日志或追踪平台,便于按条件检索 |
| 合规 | 脱敏、访问权限收窄、保留期限受控 |
典型使用场景
- 线上排错:按 trace id 还原本次问答的完整链路,定位环节
- 评测集沉淀:低分与转人工会话打标后加入回归集
- 延迟分析:按环节统计耗时分布,找出真正的瓶颈
- 版本对比:按模型与提示词版本分组比对质量指标
- 安全审计:回溯可疑输入与输出,支撑注入事件的复盘
trace 结构示例
trace 结构示例
{"trace_id": "t-9f2", "query": "…", "rewritten": "…",
"retrieved": [{"id": "c-1", "score": 0.83}],
"reranked": [{"id": "c-7", "score": 0.91}],
"used_in_context": ["c-7", "c-1"],
"model": "large-v2", "prompt_version": "v3",
"answer": "…", "validation": {"citations_ok": true},
"latency_ms": {"retrieval": 31, "rerank": 205, "generate": 2400}}字段与用途
| 字段 | 用途 | 缺失后果 |
|---|---|---|
| 改写查询 | 区分改写问题与检索问题 | 排错从第一环就断链 |
| 进上下文片段 | 确认模型实际输入 | 把召回内容误当输入 |
| 版本信息 | 按版本对比与回滚 | 质量变化无法归因 |
| 校验结果 | 统计引用与越权拦截 | 安全事件无痕迹 |
日志本身可能含敏感数据:写入前脱敏,访问权限收窄,保留期限按合规要求设定,并避免把完整系统提示明文落盘。