AI 输出清洗
AI Output Sanitization
AI 返回文本的鲁棒解析,包括 markdown 围栏剥离、JSON 边界定位与类型修正
子问题
1.Markdown 代码围栏剥离
2.JSON 对象/数组边界智能定位
3.数字 ID 到字符串的类型修正
4.带 fallback 的安全解析
5.推理模型 reasoning_content 耗尽 token 导致 content 为空的回退处理
6.多提供商 API 错误格式差异的统一解析
7.Token 预算预检避免无效 API 调用
各项目的解法1 solutions
Signals
横向对比
| 维度 | moyin-creator |
|---|---|
| 清洗策略 | 四层管道:Token预算→围栏剥离→安全解析→类型修正 |
| 边界定位 | indexOf/lastIndexOf 贪心匹配最外层 {} 或 [] |
| 类型修正 | normalizeIds 泛型函数将数字 ID 统一转字符串 |
| 模型适配 | 三层查找(缓存→静态表→默认值)+ Error-driven Discovery 自动学习 |
| 截断防护 | Token Budget Calculator 调用前拦截 + 推理模型 reasoning_content 回退 |
| 容错机制 | safeParseJson 泛型 fallback + cleanArray validator 校验 |
最佳实践
1.先清洗再解析
2.safeParseJson 带默认值防崩溃
3.extractJson 从混合文本中提取 JSON
4.Error-driven Discovery:从 API 400 错误中正则提取模型限制并持久化缓存
5.Token Budget Calculator:调用前估算输入 token,超 90% 直接拒绝省钱
6.推理模型回退:content 为空时从 reasoning_content 中正则提取 JSON