首页/AI/提示词工程速查/先定 Schema 再写抽取提示
任务型写法50 条

先定 Schema 再写抽取提示

抽取类提示先写 Schema 再写话术:字段名用英文小写下划线、类型收敛到 string/number/boolean/array,枚举字段列全取值。

提示词工程速查AI更新于 2026-10-13

先定 Schema 再写抽取提示

抽取类提示的正确顺序是先定 Schema、再写话术。Schema 里把字段名、类型、必填与否、枚举取值定下来,提示只负责说明「从文本里按这份 Schema 取值」。反过来先写话术再补字段,很容易在抽取过程中发现字段漏项,改字段就要连带改提示、改下游表结构、改历史数据,成本成倍上升。

Schema 设计检查项

检查项建议原因
字段命名英文小写下划线跨语言环境解析稳定
类型收敛数字不带千分位与单位便于程序计算
枚举封闭取值列全并给缺省减少同义变体
数组与空值空数组与 null 分开约定区分「无此项」与「没抽到」
嵌套层级尽量不超过两层层级越深越容易填错

典型使用场景

  • 票据信息抽取:金额、日期、抬头等字段直接入库
  • 工单字段抽取:设备、现象、影响范围按固定 Schema 输出
  • 简历解析:字段与枚举先定好,再批量处理存量数据
  • 多源数据合并:各来源映射到统一 Schema 后才可比较
  • 接口化抽取服务:Schema 即契约,前端与下游都按它对接

Schema 先行写法

Schema 先行写法
抽取目标 Schema(字段名/类型/必填/枚举):
- invoice_date: string(YYYY-MM-DD), 必填
- amount_total: number, 单位元, 必填              # 数字不带单位与千分位
- currency: string, 枚举 [CNY, USD, EUR], 缺省 CNY
- items: array<{name: string, qty: number}>, 可为空数组
按上面 Schema 从文本抽取值;类型不符时修正为合法值再输出。

字段类型选择

字段类型适合承载常见错误
string名称、编号、日期(按固定格式)把日期当自由文本,格式五花八门
number金额、数量、比率带单位或千分位,无法参与计算
boolean是否类判断用是/否、Y/N 混写,下游判断分支出错
array多值字段(标签、明细)单值也包成数组,或空值写成 null
Schema 一旦对外使用就要版本化:字段含义变更时新增字段而不是改旧字段,避免历史数据被误读。

易错点

  • Schema 里用中文列名或带空格键名会让下游解析与建表都变麻烦
  • 数字字段不约束格式时,「1,234.50 元」会原样返回字符串,后续计算报错
  • 先把话术写完再补 Schema,中途加字段导致提示与下游结构反复改
  • 嵌套层级过深,模型在深层字段上折叠内容或直接漏填
  • 字段含义变更时直接改旧字段定义,历史数据被按新含义解读

数据来源与参考

  • JSON Schema 规范(json-schema.org)与 OpenAI Structured Outputs 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌