返回

02-json-schema-extraction.md

1.8 KB · MD · 2026-06-14 10:35

练习 02:JSON Schema 信息抽取

目标:理解“请输出 JSON”和“结构化输出契约”的区别。

任务

从合同或通知文本中抽取字段:

  • 文档编号。
  • 甲方。
  • 乙方。
  • 付款期限。
  • 金额。
  • 生效日期。
  • 缺失字段。

输入样例

合同编号:A-2026-01。甲方为星河科技有限公司,乙方为云川数据服务中心。
乙方应在每月 5 日前提交发票,甲方在收到合法有效发票后 15 个工作日内付款。
本合同自 2026 年 7 月 1 日起生效。

输出 schema 草案

{
  "type": "object",
  "additionalProperties": false,
  "required": ["document_id", "party_a", "party_b", "payment_deadline", "amount", "effective_date", "missing_fields"],
  "properties": {
    "document_id": {"type": ["string", "null"]},
    "party_a": {"type": ["string", "null"]},
    "party_b": {"type": ["string", "null"]},
    "payment_deadline": {"type": ["string", "null"]},
    "amount": {"type": ["string", "null"]},
    "effective_date": {"type": ["string", "null"]},
    "missing_fields": {
      "type": "array",
      "items": {"type": "string"}
    }
  }
}

Prompt 要求

请只基于输入文本抽取字段。
原文没有的信息填 null,并把字段名加入 missing_fields。
不要解释,不要添加 schema 之外的字段。

测试点

  • 金额缺失时是否填 null。
  • 日期是否按原文抽取。
  • 付款期限是否完整。
  • 是否新增 schema 外字段。
  • JSON 是否可解析。

复盘

如果失败,先判断该改哪里:

  • 字段语义不清:改 schema 字段名或说明。
  • 输出格式错误:加强结构化输出或解析校验。
  • 抽错信息:补充 prompt 中的抽取规则。
  • 缺失不处理:明确 null 和 missing_fields。