上周一个做律师的朋友突然给我发消息:你能不能写个脚本,把 200 份合同里的甲方乙方、违约金、争议解决条款都抽出来?我听到这句话的时候,第一反应是:又来了。

传统抽取方案都在裸奔
我之前写过一个粗糙版本,正则表达式硬怼,发出去朋友用了一天回我:5 份合同里就漏了 3 份关键条款,因为合同写得根本不规范,有的写”甲方”,有的写”委托方”,有的甚至写”受托人”。
后来又试了 GPT-4 裸调,把整份合同塞进去,让它返回 JSON。结果更离谱:它生成的字段里有真有假,我得一条条人工核对,等于没省时间。
这种痛点不是律师才有,医生看几百份病历要抽药名剂量,金融分析师扫一堆财报要抽营收增速,连我这种技术作者想从十几篇论文里抽方法论都会被”幻觉字段”折磨到崩溃。
直到我撞上 Google 的 LangExtract
3.8 万星,Apache 2.0 协议,Google 自己开源。我第一次打开它的 README 时,看到一行字就愣住了:Maps every extraction to its exact location in the source text。
翻译成人话就是:你让 AI 抽出的每一条信息,都会自动高亮到原文的具体字符位置。我盯着这行字看了 5 秒钟,立刻把朋友的那 200 份合同找回来了。
安装一行 pip install langextract,配置个 Gemini API key(也支持 OpenAI 和本地 Ollama),3 行代码就能跑通。
它做对了三件我以前没想过的事
头一个能力叫 few-shot examples。你给 AI 看 1-2 个标注好的例子,它就照着你的格式抽,不靠玄学 prompt 调参。我给 LangExtract 一个 Romeo 与朱丽叶的对话例子,它马上就能从任何文学文本里抽人物、情绪、关系。
第二个能力叫 source grounding。AI 抽出来的每个字段都会被映射回原文的字符区间,要是它瞎编了一个原文里没有的词,char_interval 直接是 None,你可以一行代码把幻觉字段全过滤掉。
第三个能力叫 interactive HTML visualization。抽完结果存成 JSONL,一键生成 HTML 文件,每条提取在原文里都能高亮,点击还能跳到上下文。给老板汇报的时候直接打开网页,点哪个字段都跳回原文,再也不用担心老板问”这条数据哪来的”。
我把 200 份合同真的跑了一遍
我用 LangExtract 跑了朋友给的那批合同。先写 prompt 描述”抽取甲方乙方、违约金、争议解决条款”,给一个真实例子示范输出格式,然后 lx.extract 一行跑起来。
200 份合同总耗时不到 8 分钟(开了 20 个并行 worker),生成的 HTML 文件打开一看,所有抽取字段都被高亮在原文对应的字符位置。我让朋友人工抽检了 30 份,逐条对照原文全都对得上,再没有 GPT-4 那种”看起来像但完全是编的”字段。
我跟朋友说,这事不用再求我了,你装个 Python 装个 LangExtract,写 5 行 prompt,1 小时自己就能搞定 200 份合同。
它比你想的能落地更多行业
README 里给了三个官方示例,每一个都是真生产场景。Romeo 与朱丽叶的文学分析是开胃菜,Medication Extraction 是从临床笔记里抽药名剂量和频率,Radiology Report Structuring(RadExtract)是从放射科报告里抽病灶位置和尺寸。
我自己还试过两个野路子:把公众号爆款文章扔进去抽标题公式(开头怎么写、中间怎么转折、结尾怎么收),把英文产品发布会 transcript 扔进去抽核心卖点。两种场景都跑通了,HTML 高亮看完我才发现自己之前写文章的套路有多套路。
更野的路子是直接把 Project Gutenberg 上的整本小说 URL 塞进去,LangExtract 自动下载、切片、并行抽几百个实体,交互式 HTML 能扛住这种量级的可视化。
适合这三类人立刻上手
做法律合规的朋友:批量抽合同字段、判决书关键事实、监管文件条款,从此告别正则。
做医疗研究的同学:从临床记录里抽用药信息、从影像报告里抽病灶特征,配合医院本地部署的 Ollama 完全离线跑,数据不出院。
做投资分析的同事:从年报里抽营收和增速、从招股书里抽风险因素、从新闻稿里抽管理层变动,不用再一条条复制粘贴到 Excel。
我的一点提醒
Gemini 系列里官方推荐 gemini-3.5-flash 做日常抽取,速度快成本低;预算敏感场景可以用 gemini-3.1-flash-lite;复杂推理场景再上 Gemini Pro。
OpenAI 那边支持 gpt-4o 和 gpt-4o-mini,开了 Batch API 后大批量抽取能再砍一截成本。
一句话总结:你给 AI 抽出的每条信息都值得被验证。LangExtract 不是帮你抽得更”多”,是帮你抽得每条都能溯源。对我这种被幻觉字段折磨过无数次的人来说,这种”每条都能查证”的安心感,比 10 倍速度更重要。
