把结论甩出来大模型做结构化字段抽取漏字段八成不是模型笨是你没给它漏了也得交差的兜底。补全靠两步——强制 schema 占位缺的字段也得吐出来、标 null抽完做一遍规则校验回填。下面按我踩过的具体场景编号说每个场景配一个能直接抄的解法。我背景做了三年多企业内部的发票/合同/工单解析从 GPT-3.5 那会儿就开始拿大模型抽字段被缺漏坑到怀疑人生过。下面这些都是真在生产里栽过的。场景 1让模型抽 12 个字段它只返了 8 个剩下 4 个直接消失最常见也最坑。你 prompt 里列了name / phone / amount / date ...一堆结果原文里没出现的那几个模型干脆不写进 JSON键都没了。你后面data[phone]直接 KeyError。解法别指望模型自觉补全把 schema 钉死明确告诉它没有的字段也要返回值给 null。我现在的 prompt 固定带这么一句严格按以下 JSON 结构返回所有字段必须出现原文未提及的字段值填 null不要省略键。再配个兜底抽完先拿目标字段列表对齐一遍REQUIRED [name, phone, amount, date, addr, tax_no] def fill_missing(parsed: dict) - dict: return {k: parsed.get(k, None) for k in REQUIRED}这一句parsed.get(k, None)救我无数次。哪怕模型抽风少返字段下游拿到的永远是齐的 schema。场景 2字段在但值是空字符串 / 无 / 未知 / N/A 混着来比缺键更恶心。模型有时返有时返无有时来个暂无下游判空逻辑全乱。我有次统计手机号填充率数出来 73%手动一抽查发现一堆未提供被当成有效值算进去了。解法抽完做一道空值归一化把这些垃圾值统一砸成 NoneNULL_LIKE {, 无, 未知, 暂无, N/A, 未提供, null, -} def normalize_null(v): if isinstance(v, str) and v.strip() in NULL_LIKE: return None return v别小看这一步做完之后我那个填充率统计才对得上真实情况。场景 3长文档里靠后的字段越抽越漏文档一长我这边合同动辄 1 万字模型注意力往前偏文末的签署日期违约金条款经常漏。解法别一次喂全文抽全部字段。按字段分组、分段抽。我把字段拆成 3 组每组只喂相关段落漏字段率从大概 15% 掉到个位数。代价是 token 翻倍、调用变慢——这是真实取舍你得自己掂量准确率和成本哪个重要。我后来嫌手搓分段调度太碎干脆把整条切段→分组抽→合并→校验的链路搬到一个零代码就能配抽取智能体的平台上做。拖几个节点把流程串起来挂上现成大模型再绑一个我自己整理的字段规范知识库RAG让它抽的时候参照规范走。说实话第一次搭完我有点惊到——没写一行编排代码那个小助手真就把合同里那几个老漏的尾部字段稳稳吐出来了。学习曲线有配条件分支那块我对着说明摸了快一下午它也只干流程编排调模型这层杂活真正的业务校验规则还得我自己写进去。但杂活它包了我省心。场景 4格式合法但语义错位——把收货人填进了收件地址JSON 能解析、字段也齐可值对错了。这种最阴校验脚本检测不出来得靠业务规则。解法上轻量规则校验层对关键字段做格式/正则约束不符就标记复核别让脏数据静默入库字段校验规则不符处理phone^1[3-9]\d{9}$置 null标 reviewamount可转 float 且 0标 reviewdate能被dateutil解析尝试归一化失败标 reviewtax_no长度 15/18/20标 reviewimport re def validate_phone(v): return v if v and re.match(r^1[3-9]\d{9}$, v) else None宁可标 null 等人复核也别拿错值往下游灌。场景 5偶发返回非法 JSON整条数据全崩模型某次嘴瓢多打个逗号、或者前面带句好的以下是结果json.loads直接炸那一整条记录丢了。解法解析包一层兜底正则抠出{...}主体再解析解析失败的进死信队列而不是直接扔import json, re def safe_parse(text): try: return json.loads(text) except json.JSONDecodeError: m re.search(r\{.*\}, text, re.S) if m: try: return json.loads(m.group()) except json.JSONDecodeError: pass return None # 进死信别静默丢我现在的固定流水线抽取 → safe_parse 兜底 → fill_missing 补键 → normalize_null 清空值 → 规则校验标 review。五道缺一道就会在某个场景漏给你看。搭这套之前我以为是模型不行换了好几家模型试发现换谁都漏——根子在工程兜底没做。模型负责尽量抽出来保证字段齐、值干净是你自己的活这点想通之后就踏实多了。你们抽字段最常漏的是哪类评论区交流下校验规则我那张正则表还想再补几行。模型这块我直接走 讯飞星辰 MaaS现成大模型 API 调没自己部署算力省了一堆显卡的事。