bug: Experiment wizard allows proceeding and running without dataset selection or visible validation error

该 bug 出现在 Langfuse 实验向导中,当用户不选择数据集时,向导仍允许进入“Review & Run”步骤并点击“Run experiment”,但无明确验证提示。优先排查 MultiStepExperimentForm.tsx 中 Next 按钮的 onClick 逻辑是否调用了 is

快速结论:该 bug 出现在 Langfuse 实验向导中,当用户不选择数据集时,向导仍允许进入“Review & Run”步骤并点击“Run experiment”,但无明确验证提示。优先排查 MultiStepExperimentForm.tsx 中 Next 按钮的 onClick 逻辑是否调用了 isStepValid()

适用环境:Langfuse Cloud(Issue 未确认自托管版本是否也存在此问题)。

最快修复方案:暂无确认的一步修复方案。推荐优先尝试:在 MultiStepExperimentForm.tsx 的 Next 按钮 onClick 处理函数中,先调用 isStepValid() 校验数据集选择,若无效则阻止步骤前进并显示错误提示。

注意事项:该方案仅为代码层面推测,需由开发者验证。Issue 中未提供已合并的补丁代码。

问题场景

用户在 Langfuse 的 Prompts 页面选择某个 prompt 后,点击“Run experiment”进入实验向导。在“Dataset”步骤中,用户未选择任何数据集就直接点击“Next”,向导并未阻止前进,用户一直可以走到“Review & Run”步骤并点击“Run experiment”,但实际运行因缺少数据集而失败。只有当用户返回 Dataset 步骤时,才看到数据集字段标红(验证错误),但初始操作流程缺乏明确的即时反馈。

报错原文

bug: Experiment wizard allows proceeding and running without dataset selection or visible validation error

原因分析

可能原因:实验向导的步骤管理组件 MultiStepExperimentForm.tsx 中,虽然定义了 isStepValid() 函数(正确检查了 datasetId 是否为空),但“Next”按钮的 onClick 处理函数直接使用 setActiveStep 跳转到下一步,没有调用 isStepValid() 进行校验。因此用户可以跳过未选择数据集的步骤。而最终的“Run experiment”按钮虽因校验被禁用,但页面上没有显示禁用原因说明,用户无法直观理解为何无法运行实验。

环境排查

  • 确认使用的 Langfuse 版本(Issue 报告时未提供自托管版本号,Langfuse Cloud 用户无需版本确认)。
  • 检查 web/src/features/experiments/components/MultiStepExperimentForm.tsx 文件中 isStepValid() 的实现(位于约第 334-339 行)。
  • 检查“Next”按钮的 onClick 处理函数(位于约第 543-556 行),看是否调用了 isStepValid()

解决步骤

  1. 可优先尝试:修改 MultiStepExperimentForm.tsx 中“Next”按钮的 onClick 逻辑,在更新 activeStep 前先调用 isStepValid()(例如 if (!isStepValid(activeStep)) return;),确保未选择数据集时无法继续。
  2. 备选方案:在“Review & Run”步骤显示明确的验证错误信息,例如当 datasetId 缺失时,在页面顶部提示“Please select a dataset before running the experiment”。
  3. 验证表单 schema(web/src/features/experiments/types.ts 约第 11 行)中 datasetId 的校验规则(原已有 z.string().min(1, "Please select a dataset")),确保该提示能在适当位置展示。

验证方法

按照复现步骤操作:进入实验向导,在 Dataset 步骤不选择任何数据集,点击“Next”,确认无法前进到下一步;或如果使用备选方案,确认在“Review & Run”步骤能看到明确的验证错误提示。

参考来源

langfuse/langfuse #14719

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15685

发表回复

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