前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
返回 AI 情报前线
All News · 全部资讯9258
  • AI评委也会上当:评测模型审查作弊代码的深度测试
  • 生产级LLM系统的状态架构设计要点
  • LLM输出JSON解析的正确做法
  • 2026年MCP Server实战入门:从零构建可用的工具服务器
  • Meta Muse Mac应用安全漏洞:零日与文件系统泄露
  • GitHub Actions添加cancel-in-progress:节省30%构建分钟数
  • MCP工具描述即指令:信任边界的安全教训
  • 7种数据格式Token消耗对比:JSON缩进比CSV多花3倍
  • LLM推理工程:KV-Cache瓶颈与PagedAttention
  • GitHub Copilot 代码审查支持 API 调用,默认改为 Balanced 级别
  • Cloudflare 开源 Clef 决策模型:39ms 完成 AI Agent 决策,无需人工介入
  • jev-ultrafast:把浏览器操作变成多选题
  • AI Agent库的兼容性不止语义版本号
  • OpenAI悄然发布GPT-6官方使用指南
  • 远程MCP长时任务:Agent实际收到什么
  • AI Agent合规审计链路工程观察
  • Go+DiskANN+MCP 构建 AI Agent 时序记忆引擎实战
  • Copilot 桌面控制能力上线:权限模型与安全护栏详解
  • Node 拒绝 package 导入?一 CLI 告诉你根因
  • K8s"单体"经验对AI Agent架构的启示
  • GPT-6模型家族选型指南发布
  • AWS Quick+ MCP模式实现大规模合规审查
  • Bedrock AgentCore为Claude Desktop添加安全网页搜索
  • SageMaker多轮RL微调搜索Agent实战
  • Asta 快速报告生成模型 AstaBrief 开源
  • GitHub:AI时代开发者需加强的三项技能
  • 状态机设计:如何让数据字段影响状态流转
  • 收据、副本、SHA:三种验证方式的本质区别
  • 心跳驱动:无存储的 Agent 健康状态追踪
  • LMCP:让 AI 编程工具直接操控 Mac 原生应用的 MCP 服务器
  • Anthropic开放Claude Code模组自定义功能
  • Meta Muse Agent登陆智能眼镜:云端Linux虚拟机运行,可代打电话/购物
  • Cloudflare AI Gateway支持网页搜索API
  • 已加载 33 / 9258
8.0
热点
AI SCORE
编程提效2026-10-03 03:58

LLM输出JSON解析的正确做法

dev.to · AI#LLM#JSON解析#工程实践
Editor brief · 编辑速览

用正则清理LLM输出的markdown代码块是脆弱的工程陷阱,应使用结构化解析或专门的输出校准方法替代。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

几乎每个 AI 工程师都悄悄写过、提交过、然后试图遗忘这样一段代码:

def clean_llm_output(raw_string: str) -> str:
    # Strip leading conversational fluff
    if "Sure, here" in raw_string:
        raw_string = raw_string.split("\n", 1)[1]

    # Strip markdown code blocks
    raw_string = raw_string.replace("```json", "").replace("```", "")
    return raw_string.strip()

它看起来无害,但实际上代表了一个巨大的工程失败点。

你花了好几周做设计思考来打磨应用逻辑、优化数据库 schema、完善核心工作流。然而,最终检查点——你的系统实际能处理数据之前的那一关——依赖的却是一个脆弱的、手写的字符串拆分器。

如果模型微妙地改变了对话式开场白,或者某个开源模型更新了聊天模板并输出了不同的包装格式,你的正则就坏了、解析器卡住、应用抛出致命的 JSONDecodeError。

散文与代码围栏的噩梦

即使开启了现代"JSON Mode"设置,大语言模型本质上仍会漂移。它们核心是文本生成引擎。在高流量突发或特定提示词边缘情况下,它们仍然难以完美地待在边界内。它们想要有帮助,所以会添加散文。它们想要格式规范,所以会注入 markdown 外壳。

行业标准的应对方式一直是加倍投入应用层的工作around:

  • 写无尽的字符串剥离逻辑
  • 强制进行第二次高延迟的 LLM"修复"通道,只是为了清理第一次通道的格式
  • 将提示词约束到极致,以至于模型的实际推理能力退化

之所以出现这种情况,是因为一个根本性的架构盲点:我们把网络数据异常当作应用 bug 来处理。

在网络边界隔离冗余内容

你不会在主应用循环里写自定义 Python 或 TypeScript 代码来处理底层网络数据包或剥离原始协议头;你让反向代理、API 网关或负载均衡器在流量触及应用代码之前处理那些基础设施工作。你的 AI 数据流应该完全用同样的方式对待。

[ Your Core Application ] <--- Sees ONLY perfectly clean, raw JSON
                     ▲
                     │
[ Network Gateway Layer ] <--- ContextBridge intercepts & strips prose here
                     ▲
                     │
[ Raw Model Output Stream ] <--- "Sure! Here is the JSON: ```json ... "

当你把散文和 markdown 围栏当作基础设施异常而非应用错误来处理时,你将整个头疼问题外包给了一个专用的网络边界。

你的核心应用循环不再需要盯着原始文本字符串,而是一个高速运行时护盾直接坐在服务器和模型之间的线路上。LLM 输出的那一刻——无论是外壳还是对话前缀——网络网关在空中截获载荷,确定性地隔离出真正的 JSON 核心对象,剥离周围的杂乱内容,然后将一个完美的、随时可解析的数据包转发到你的 /sync 端点。

你的应用代码从数百行脆弱的解析样板代码缩减为一行简洁的数据接收。

构建基础设施,而非字符串拆分器

AI 工程正在跨越脆弱代码 workaround 的阶段。一旦我们将数据格式问题外包给自动化网络层,我们的管道就变得完全可预测、成本可控、企业级安全。

我们构建 ContextBridge 就是为了充当这个零运维的运行时护盾。它完全在网络层运行,通过单个 OpenAPI 蓝图无缝集成,开箱即用支持高达 20 Transactions Per Second 的流量——为你提供干净的数据流,而不增加复合的 LLM 延迟循环。

让你的核心应用专注于业务逻辑。让基础设施处理那些脏活。

如果你想亲眼看看基础设施网关如何在不触碰你一行应用代码的情况下在空中剥离 markdown 围栏和对话式散文,把一个混乱的文本载荷粘贴到我们的公共 Postman Showroom,立即运行一次 Live Repair Test。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
生产级LLM系统的状态架构设计要点
下一篇
2026年MCP Server实战入门:从零构建可用的工具服务器