AI 输出解析与清洗
AI Output Parsing & Sanitization
清洗 AI 返回的非标准 JSON,提取有效数据边界,修正类型异常
子问题
1.去除markdown围栏和多余文本
2.提取JSON对象数组边界
3.数值型ID转字符串修正
4.AI返回数据的校准验证
5.截断 JSON 的逐对象部分恢复
6.中文枚举值到标准英文枚举的规范化映射
7.多场景并行生成时不同格式输出的统一处理
各项目的解法1 solutions
Signals
横向对比
| 维度 | moyin-creator |
|---|---|
| 清洗策略 | 集中式 5 函数工具库,围栏去除 + indexOf 边界提取 |
| 解析降级 | 三级降级:完整解析 → 正则结构匹配 → 逐对象部分恢复 |
| 类型安全 | TypeScript 泛型 safeParseJson<T> + normalizeIds<T> |
| 场景特化 | trailer/calibration/prompt 各有独立解析器,非统一管线 |
| 部分恢复 | 截断 JSON 用 regex 逐 shot 提取,恢复已完成对象 |
| 值规范化 | normalizeTimeValue 13 种中文→6 种英文枚举映射 |
最佳实践
1.先清洗再解析的两步策略
2.提供fallback默认值防止解析失败
3.对象优先于数组的边界提取策略(大多数 AI 返回对象包裹)
4.场景特化解析器配合通用清洗层的分层设计
5.截断 JSON 用正则逐对象提取而非整体重试