repair_patch.py 1.1 KB

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/env python3
  2. import sys
  3. p = "/data/ai/audio/server/src/modules/book-generator/nodes/rich-outline.node.ts"
  4. src = open(p).read()
  5. old = """ // 移除 markdown 代码块标记
  6. cleaned = cleaned.replace(/```json\\s*/gi, '').replace(/```\\s*/g, '');
  7. // 策略1:jsonrepair 修复后直接解析"""
  8. new = """ // 移除 markdown 代码块标记
  9. cleaned = cleaned.replace(/```json\\s*/gi, '').replace(/```\\s*/g, '');
  10. // 策略0:手工清理已知瑕疵(jsonrepair 偶尔漏掉的情况)
  11. // 1. 修复 `,""` 这种空 key/空 value 残留(volcengine 等模型常见瑕疵)
  12. cleaned = cleaned.replace(/,\\s*""\\s*([,\\}])/g, '$1');
  13. // 2. 修复 `:""` 这种空 value(改成 null)
  14. cleaned = cleaned.replace(/:\\s*""\\s*([,\\}])/g, ':null$1');
  15. // 3. 修复连续逗号
  16. cleaned = cleaned.replace(/,\\s*,/g, ',');
  17. // 策略1:jsonrepair 修复后直接解析"""
  18. if old not in src:
  19. print("ERROR: old block not found")
  20. sys.exit(1)
  21. src = src.replace(old, new, 1)
  22. open(p, 'w').write(src)
  23. print("patched rich-outline.node.ts OK")