trace 是RAG检索链路的**全链路追踪日志对象

trace 是RAG检索链路的全链路追踪日志对象

用来把检索每一步中间结果打包保存,方便调试、看每一步发生了什么。

python 复制代码
trace={
    "original_query":question,
    "vector_results":vector_results,
    "keyword_results":keyword_results,
    "fused_results":fused,
    "final_evidence":evidence
}

逐个字段

  1. original_query

    用户原始查询问题,例:数字化补贴申报材料

  2. vector_results

    向量检索结果 :向量库根据语义相似度召回的chunk列表,附带向量相似度分数。

    只看语义,不看关键词字面。

  3. keyword_results

    关键词检索(BM25)结果:分词后按关键词字面匹配召回的chunk,是传统文本检索。

  4. fused_results

    融合结果(RRF融合) :把vector_results + keyword_results两套结果,用RRF算法合并、重新排序,输出rrf_score。

    👉 就是粗召回的候选列表,对应你日志里top6候选。

  5. final_evidence

    经过重排+分数过滤之后,最终输出的证据列表

  • hybrid:直接拿fused_results,不做rerank
  • hybrid_rerank / full:对 fused_results 跑BGE重排,生成rerank_score,再按min_score过滤,得到final_evidence。

完整链路对应trace

复制代码
原始question
    ↓
vector_results(向量召回) + keyword_results(bm25关键词召回)
    ↓ RRF融合
fused_results(粗排top6,带rrf_score)
    ↓ 【可选】rerank打分 + min_score过滤
final_evidence(最终给大模型的上下文证据)

trace作用

  • 开发调试:查看哪一步丢了文档、哪一步分数异常
  • 对比:看向量召回、关键词召回各自召回了哪些chunk,融合后怎么变、重排过滤删掉了哪些
  • 评估RAG:统计召回、重排、过滤各个阶段的命中率

结合你刚才的例子:

fused_results 有6条候选,full模式经过rerank+min_score=0.6过滤后,final_evidence只剩1条。

相关推荐
鼓掌MVP37 分钟前
决定全案的智能Agent
大数据·人工智能·机器学习
lank_M37 分钟前
Word裁剪图片转HTML走样,该在渲染层修还是入口修
前端·图像处理·人工智能·计算机视觉·html·word
IT_陈寒39 分钟前
深入理解Redis:核心原理与最佳实践
前端·人工智能·后端
Evand J39 分钟前
【PMSM例程6】永磁同步电机(PMSM)基于增广EKF的d-q轴电感分阶段辨识算法|电机参数估计与误差分析
算法·matlab·电机·ekf
垆边人似月.40 分钟前
华为题:最多可以参加的会议数目
数据结构·c++·算法
来包番茄沙司43 分钟前
【网盘资源分享】2026新版尚硅谷AI Agent智能体极速版|全套课程资料+面经
人工智能·学习
Matlab程序猿44 分钟前
【MATLAB源码-第460期】基于matlab的OTFS通信系统SLM峰均比抑制及非线性功率放大器失真与误码性能仿真
开发语言·算法·matlab·slm·otfs
xiangyun611 小时前
C++ list 模拟实现(一):手撕双向链表,从节点到迭代器
数据库·c++·算法·链表·stl·list
拉你进_教堂1 小时前
小龙虾技能之【Contactless Health Risk Screening Tool | 非接触式健康风险检测分析工具】简介
人工智能·目标检测·计算机视觉·多模态大模型·openclaw小龙虾技能