bug: langfuse-cli “api dataset-items create” — “nullable” cannot be used without “type”, input/expectedOutput/metadata unbindable

该报错发生在 langfuse-cli 通用命令 api dataset-items create 上,原因是 OpenAPI 规范中 input 、 expectedOutput 、 metadata 字段被定义为无 type 的 nullable ,导致 CLI 参数解析器无法生成对应 flag

快速结论:该报错发生在 langfuse-cli 通用命令 api dataset-items create 上,原因是 OpenAPI 规范中 inputexpectedOutputmetadata 字段被定义为无 typenullable,导致 CLI 参数解析器无法生成对应 flags。优先使用 Python SDK 写入数据集条目,或通过 --data 传入完整 JSON。

适用环境:langfuse-cli 0.0.12(通过 npx 调用)、自托管 Langfuse 服务器 v3.218.0、Python SDK(langfuse 4.14.0,已验证可用)。

最快修复方案:暂无确认的一步修复方案。已确认的可行方案是改用 Python SDK 调用 Langfuse.create_dataset_item,该接口签名与 CLI 预期一致且工作正常。

注意事项:上述 SDK 方案仅绕过 CLI 缺陷,不影响资源写入路径本身;issue 中提到的修复 PR 尚未合并,待新版本发布后才能直接在 CLI 中支持这三个字段。

问题场景

用户在使用 langfuse-cli 的通用命令 api dataset-items create 创建数据集条目时,发现 --input--expectedOutput--metadata 三个参数无法绑定:--help 中不列出这些 flags,强制调用时直接报错。这些字段是数据集条目的核心内容,官方文档和 dataset-items list 命令均能正常返回它们。

报错原文

error: "nullable" cannot be used without "type"
Run 'dataset-items create --help' to see available options.

原因分析

原因是 CreateDatasetItemRequestinputexpectedOutputmetadata 字段在 Fern 规范中定义为 optional<unknown>,生成的 OpenAPI 规范里表现为 nullable: true 且没有显式 type。CLI 使用的参数解析器 specli 要求 nullable 必须伴随显式 type,因此报错而不是回退到通用的 JSON 透传。

环境排查

  • 确认 langfuse-cli 版本是否为 0.0.12(或更早版本,因修复尚未发布)。
  • 确认自托管 Langfuse 服务器版本是否为 v3.218.0。
  • 如改用 SDK,确认 Python 环境 langfuse 版本是否为 4.14.0 或更高。

解决步骤

  1. 优先改用 Python SDK 写入数据集条目,调用 Langfuse.create_dataset_item(dataset_name, input, expected_output, metadata),语义与 CLI 命令一致。
  2. 如必须使用 CLI,可尝试传入完整请求体 JSON(issue 中提到 --data 参数作为临时绕过方案)。
  3. 关注 langfuse/langfuse 仓库的 PR #12276,该修复将字段类型改为 optional<map<string, unknown>>,使生成的 OpenAPI 规范包含 type: object,从而让 specli 正确生成 flags。

验证方法

运行 langfuse-cli api dataset-items create --help,若 --input--expectedOutput--metadata 已出现在选项列表中则问题已解决;或用 Python SDK 创建条目后通过 dataset-items list 确认数据正确写入。

参考来源

langfuse/langfuse #16036

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 20471

发表回复

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