结构化抽取是什么
结构化字段抽取是把自然语言文本里的信息,按预先定好的字段表整理成 JSON,供程序直接解析入库。它和自由摘要的区别在于验收方式:摘要看写得像不像,抽取看字段对不对——字段名是否一致、类型是否合法、缺值是否有约定。所以抽取提示的核心不是措辞漂亮,而是把字段表与取值规则讲清楚,再要求只输出 JSON。
先定字段表再写话术
字段表要在写提示之前定下来:每个字段写清名称、类型、是否必填、缺失时的取值、枚举取值与单位。字段表定好后再写提示,提示里只负责把文本与字段表对应起来。反过来先写话术再补字段,很容易在抽取过程中发现字段漏项,改字段又要重写提示与下游表结构。
字段表要写清什么
| 名称与类型 | 字段名用英文小写下划线,类型收敛到 string / number / boolean / array |
|---|---|
| 缺失约定 | 想清楚「文本里没有」是输出 null,还是省略该字段 |
| 枚举 | 类别型字段把取值列全,并给出默认值或兜底值 |
| 单位与格式 | 金额注明币种,日期注明 YYYY-MM-DD,数字不带千分位与单位 |
| 数组与嵌套 | 数组可为空数组;嵌套结构给出一层示例,避免层级理解偏差 |
典型使用场景
- 工单与邮件建档:从自由文本里提取设备、现象、联系人,写入工单系统
- 票据信息录入:金额、日期、抬头按固定字段抽取,减少人工录入
- 简历与合同要点:把关键字段抽出来做筛选,原文另行存档备查
- 会话结单摘要:每通对话抽一组结构化字段,供质检与统计使用
- 批量清洗历史数据:用同一字段表跑存量文本,输出可直接对比与合并
抽取提示模板
抽取提示模板
从下面的文本中抽取字段,按给定 JSON 结构输出,不要输出其他内容:
{
"company": "公司全称,字符串,必填",
"contact": "联系人姓名,字符串;没有则 null",
"phone": "电话号码,字符串;没有则 null" # 保留原文写法,不做格式化
}
规则:只使用文本中出现的信息;不要推断或补全;数字不带单位。
文本:<text>……</text>抽取质量检查项
| 检查项 | 做法 | 不做的后果 |
|---|---|---|
| 字段完备 | 必填字段漏项要有明确处理:重试或标记待人工 | 流水线拿到半条记录继续走 |
| 类型合法 | 解析后按字段规则校验(长度、格式、枚举) | 字符串当数字参与计算,报错在下一环才暴露 |
| 不越界推断 | 提示里写明只使用文本内信息 | 模型用常识补出原文没有的联系人 |
| 口径一致 | 同一字段在不同批次的取值口径写进文档 | 同一字段混着两种含义,统计结果失真 |
抽取任务的采样温度宜低(如 0 - 0.2),减少字段名与枚举值的同义变体。
长文本建议先分片再抽取,最后按主键合并;一次性塞入超长文本时,中段字段最容易漏抽。