bug: playground unusable with Anthropic thinking models

这个报错是 Langfuse Playground 在解析 Anthropic "thinking" 模型的结构化返回结果时发生的兼容性问题,通常表现为流式模式下输出 JSON 转义乱码、非流式模式报类型错误。优先排查当前 Langfuse 版本是否低于 v3.132.0,并暂时禁用 Anthrop

快速结论:这个报错是 Langfuse Playground 在解析 Anthropic “thinking” 模型的结构化返回结果时发生的兼容性问题,通常表现为流式模式下输出 JSON 转义乱码、非流式模式报类型错误。优先排查当前 Langfuse 版本是否低于 v3.132.0,并暂时禁用 Anthropic 的 “thinking” 模式。

适用环境:Langfuse 自托管(self-hosted)v3.132.0,OpenAI 兼容接口调用 Anthropic 思考模型,Playground 默认流式模式。

最快修复方案:暂无确认的一步修复方案,官方建议暂时禁用 Anthropic “thinking” 模式,或改用返回纯文本的模型/配置。该问题需要等待 Langfuse 后续版本更新解决。

注意事项:近期 PR(#10439)已改进 Playground 对结构化输出的解析,但可能尚未合并到当前版本;如果使用官方云端版,可能需要等待部署更新。

问题场景

在 Langfuse Playground 中配置 Anthropic 思考模型(如配置 thinking 参数启用思考模式),并开启默认流式模式时,输出内容变成 JSON 转义乱码(类似 {"type":"thinking"...} 这样的结构);关闭流式模式后,Playground 直接报类型错误,无法正常显示模型回复内容。

报错原文

Error: Type mismatch: expected string but received object

bug: playground unusable with Anthropic thinking models

原因分析

可能原因:Anthropic “thinking” 模式会返回包含推理(reasoning)元数据的结构化 JSON 响应,但 Langfuse Playground 的响应解析逻辑仍假设模型输出为纯文本。流式模式下,UI 没有解析和提取实际文本,直接显示了 JSON 转义内容;非流式模式下,系统尝试把结构化对象强制转换为字符串,触发类型不匹配错误。

环境排查

  • 确认 Langfuse 自托管版本:当前已知问题版本为 v3.132.0,更新版本可能已包含修复。
  • 检查 Playground 的模型配置,确认是否启用了 thinking 参数(例如 {"thinking": {"type": "enabled", "budget_tokens": 1024}})。
  • 确认请求模式:默认流式(streaming)或非流式,两种模式下报错表现不同。

解决步骤

  1. 首先在 Playground 配置中移除 thinking 参数,或将其设置为 {"type": "disabled"},改用普通文本输出模式。
  2. 如果必须使用 Anthropic 思考模型,尝试关闭流式模式,检查是否仍出现类型错误;目前官方确认两种方式均会触发问题,不建议依赖此方法。
  3. 检查 Langfuse 是否有新版本发布,关注 PR #10439 的合并状态;如果官方修复已发布,升级到最新版本(可优先尝试)。
  4. 如果使用云端版,等待平台部署更新后重试。

验证方法

确认问题已解决:在 Playground 中重新配置 Anthropic 思考模型并启用流式模式,观察输出是否正常显示文本而非 JSON 转义乱码;同时测试非流式模式,确认不再出现类型错误。若两种模式均正常工作,则说明解析逻辑已适配结构化输出。

参考来源

langfuse/langfuse #10483

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 20578

发表回复

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