SuperAPI AI 工具集

response-parser

智能体与模型

查看项目

更新于 10-15 22:19

技能介绍

用途:处理 LLM 返回的结构化输出,重点解决解析 JSON 时的非显性失败模式。假定读者已具备基本 JSON 与 fetch 知识。

主要能力:

  1. 围栏提取:应对 JSON 大写、反引号后带空格、内容前双换行、无围栏、围栏前有前言等变体。示例正则 /(?:json)?\s*\n?([\s\S]*?)\n?```/i,失败时回退到查找首个 { 或 [ 并用 extractBalanced 按括号配对截取,避免 lastIndexOf 因字符串内 JSON 而取错位置。
  2. 流式/部分解析:策略 A 缓冲到流结束再 JSON.parse;策略 B 用 npm 包 partial-json 的 parse(partial, Allow.ALL) 做增量 UI 更新,但流结束必须再做一次严格 JSON.parse,因为 partial-json 会宽松接受 {"a": undefined} 等非法 JSON。
  3. 错误恢复:按频率处理尾随逗号、单引号、未加引号键、截断响应(finish_reason/stop_reason 为 max_tokens 时不要解析,而是让模型续写)。恢复链依次尝试直接解析、清洗后解析、重新提示模型。
  4. Schema 校验:解析成功不代表结构正确,需检查缺失字段与类型;失败时把错误信息注入提示词让模型自纠。
  5. 注意事项:流式输出中的转义序列不要在解析前反转义;去除 BOM/零宽字符(raw.replace(/^\uFEFF/, ''));数字被字符串化应在校验后强制转换;嵌套 JSON 字符串仅在 Schema 需要时二次解析。
  6. 上游预防:系统提示要求只返回有效 JSON、无前言无解释无围栏;复杂 Schema 加一次性示例;避免在同一条消息里同时要求 JSON 和解释。

使用方式:资料以 JavaScript 代码片段展示提取、平衡匹配、增量解析、清洗与校验函数,可直接参考实现。

适用场景:需要从 LLM 输出中稳定提取 JSON 的应用,尤其是流式界面与复杂 Schema 场景。

限制:资料未提供安装命令、包版本、平台支持、收费或性能数据;部分策略依赖 partial-json 等外部包,具体可用性暂未提供。