快速结论:当 Prompt 模板名称包含斜杠(如 user/prompt-1)且通过 GET /api/public/v2/prompts/:promptName?label=latest 直接调用 API 获取时,接口会返回 404。优先排查 Prompt 名称是否带路径分隔符、请求时是否做了 URL 编码。
适用环境:Langfuse 自托管(self-hosted),Issue 中报告版本为 3.112.0;未提供操作系统、Python、SDK、依赖等版本信息。
最快修复方案:升级到 2025-09-03 之后发布、包含 PR #8876 修复的 Langfuse 版本。若暂时无法升级,可优先尝试在直接调用 API 时对 Prompt 名称做 URL 编码。
注意事项:URL 编码只是 Issue 讨论中给出的规避方式,并非官方文档已确认的说明;使用 SDK(如 Python 的 langfuse.get_prompt()、JS/TS 的 langfuse.getPrompt())通常会自行处理编码,但直接调用 HTTP API 时需要手动编码。官方文档目前未提及该限制。
问题场景
用户在 Langfuse 自托管环境中创建了带文件夹层级的 Prompt 模板,名称形如 user/prompt-1,随后通过公共 API 的 GET /api/public/v2/prompts/:promptName?label=latest 获取该模板,接口返回 404,无法取到 Prompt 模板。
报错原文
GET /api/public/v2/prompts/:promptName?label=latest
404 error
原因分析
Issue 讨论指出这是已知问题:API 路由实现默认没有正确处理 Prompt 名称中的斜杠(/),导致带文件夹前缀的名称被当作路径分段解析,从而匹配不到对应 Prompt 并返回 404。除非名称经过 URL 编码,否则直接以原始名称请求会失败。该问题已在 PR #8876(2025-09-03 合并)中修复,因此该日期之后发布的版本应已包含修复。
环境排查
- 确认 Langfuse 自托管版本是否为 3.112.0,或是否低于包含 PR #8876 的版本。
- 确认 Prompt 名称是否包含斜杠等文件夹层级字符(如
user/prompt-1)。 - 确认请求方式是直接调用 HTTP API 还是通过 SDK 调用。
- Issue 未提供操作系统、Python、CUDA、显卡、节点或依赖版本信息,无需据此排查。
解决步骤
- 若当前版本早于 2025-09-03,升级到包含 PR #8876 的 Langfuse 版本,然后重新请求该 Prompt。
- 若暂时无法升级,可优先尝试在直接调用 API 时对 Prompt 名称做 URL 编码(例如 Python 使用
urllib.parse.quote,JS/TS 使用encodeURIComponent),再用编码后的名称拼接请求路径。 - 检查是否混用了 SDK 与直接 HTTP 调用:SDK 方法通常会自动编码,直接 API 调用则需要手动编码。
验证方法
使用同样的 user/prompt-1 名称(或编码后的名称)再次请求 GET /api/public/v2/prompts/:promptName?label=latest,确认返回 200 并成功取回 Prompt 模板,而不是 404。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


