bug: experiments tab missing some score table columns

该报错发生在 Langfuse 数据集的 Experiments 标签页中,当 SDK 返回多个 Evaluation 对象时,表格的“Column Visibility”选择器只能发现部分评分列,而图表区域却能完整显示所有评分。优先排查表格列发现的评分过滤逻辑是否正确区分了 trace 级与 ob

快速结论:该报错发生在 Langfuse 数据集的 Experiments 标签页中,当 SDK 返回多个 Evaluation 对象时,表格的“Column Visibility”选择器只能发现部分评分列,而图表区域却能完整显示所有评分。优先排查表格列发现的评分过滤逻辑是否正确区分了 trace 级与 observation 级评分。

适用环境:Langfuse Cloud(启用了 Fast Preview)、Python SDK 3.14.6、UI 为数据集 Experiments 标签页(新版表格带 Charts 折叠区)。

最快修复方案:暂无确认的一步修复方案。Issue 讨论中给出了疑似修复路径(在 ExperimentsTable.tsx 的列发现调用中分别补充 trace 级与 observation 级过滤),但尚未验证。

注意事项:该问题与 Traces 表之前修复的 bug(PR #12978)属于同一类型,但 Experiments 表的修复尚未落地,需要等待 Langfuse 官方更新或自行打补丁。

问题场景

用户通过 Python SDK 运行数据集实验,每个条目返回多个 Evaluation 对象(如 metric-onemetric-five 以及聚合指标)。打开数据集 → Experiments 标签页后:

  • 图表(Charts)区域可以完整显示所有评分,并可作为图表指标添加。
  • 表格工具栏的“Column Visibility”(列可见性)选择器中,仅显示部分评分列,无法添加其余评分。

报错原文

bug: experiments tab missing some score table columns

Actual: Each group shows only one score (e.g. `# aggregate-metric (api)`), not the full set of evaluator scores.
Expected: All evaluator score names returned by the SDK should appear as selectable columns.

原因分析

可能原因:Experiments 表格的列发现逻辑存在缺陷。

  • 表格列发现调用(scores.getScoreColumnsuseScoreColumns)使用了相同的过滤条件,未区分 trace 级评分与 observation 级评分。
  • 具体来说,两个调用都只通过 experimentIds 约束评分范围,没有添加 observationId IS NULLIS NOT NULL 的区分,导致两组查询结果相同,只显示部分评分。
  • 图表区域之所以正常,是因为它使用了独立的查询路径(getExperimentItemsFilterOptions / experiments.scoreOptions),在数据库层面显式区分了 trace 级和 observation 级评分。

环境排查

  • Langfuse Cloud 环境(非自托管),已启用 Fast Preview。
  • Python SDK 版本:3.14.6。
  • 数据集规模:约 100–200 条记录/运行。
  • UI 版本:使用了重建后的 Experiments 表格(带 Charts 折叠区)。

解决步骤

  1. 确认当前 Langfuse 版本是否包含针对该问题的修复;若已更新至最新版本,可先测试是否复现。
  2. 若仍复现,可优先尝试(推测性修复):修改 web/src/features/experiments/components/table/ExperimentsTable.tsx 中的列发现调用,在 useScoreColumns 中分别补充过滤条件:
    • “Trace Item Scores”调用:添加 ...scoreFilters.forTraceLevel()(对应 observationId IS NULL);
    • “Observation Item Scores”调用:添加 ...scoreFilters.forObservations()(对应 observationId IS NOT NULL)。
  3. 参考 Traces 表的修复方式(PR #12978),该修复正是通过添加 observation_id 过滤来解决同类问题。
  4. 若使用自托管部署,可等待官方发布修复版本,或评估前端补丁的可行性。

验证方法

修复后,打开 Experiments 标签页 → Column Visibility → 展开“Trace Item Scores”和“Observation Item Scores”,确认所有 SDK 返回的评分名称(如 metric-onemetric-five)均出现在可选中列中,并能在表格中正常显示。

参考来源

langfuse/langfuse #14454

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18339

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注