json_repair_prompts.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. """JSON 修复相关提示词。"""
  2. from typing import Dict, List
  3. def build_json_repair_messages(
  4. invalid_content: str,
  5. issues: list[str],
  6. target_description: str,
  7. ) -> List[Dict[str, str]]:
  8. """构建 JSON 定向修复消息。"""
  9. issue_lines = [f"{index}. {item}" for index, item in enumerate(issues, start=1)]
  10. system_prompt = """你是一个严格的 JSON 修复助手。请根据给出的原始内容和校验问题,修复现有结果。
  11. 要求:
  12. 1. 优先在原结果基础上做最小必要修改,不要整体重写
  13. 2. 尽量保留原有结构、字段值、节点顺序和已生成内容
  14. 3. 若缺少必填字段,应结合现有上下文补齐合理内容,不要用空字符串敷衍
  15. 4. 若存在多余说明、代码块包裹、字段名错误、children 结构不规范或顶层包裹错误,应修正为合法 JSON
  16. 5. 只返回修复后的完整 JSON,不要输出任何解释
  17. """
  18. return [
  19. {"role": "system", "content": system_prompt},
  20. {"role": "user", "content": f"目标结果类型:{target_description}"},
  21. {"role": "user", "content": "当前校验问题:\n" + "\n".join(issue_lines)},
  22. {
  23. "role": "user",
  24. "content": f"待修复内容:\n```json\n{invalid_content}\n```",
  25. },
  26. {
  27. "role": "user",
  28. "content": "请在保留原有正确内容的前提下,仅修复上述问题,并返回完整 JSON。",
  29. },
  30. ]