跳到主内容
快讯直播
AI智模界
教程

用 AI 把一份合同读成清单

合同审查入门:用大模型做一份可复核的初审札记

一份三十页的采购合同摆在面前,法务要回答的问题其实很朴素:钱怎么付、活怎么干、出了事谁兜底、不想干了怎么退。AI 在这里的价值不是替你做判断,而是把散落在各条款里的事实先捞出来、对齐成表,让你把精力放在那几处真正需要经验判断的地方。

这篇教程带你把这件事跑通:把一份 PDF 或 Word 合同变成一份结构化的初审札记,包含条款抽取表、风险提示清单、以及需要人工确认的问题列表。全程用通用工具,命令可直接照抄。

这篇能做出什么

完成后的产出是一份 Markdown 文件,大致长这样:

```markdown

一、基础信息

  • 合同类型:设备采购合同
  • 甲方:某某科技有限公司(买方)
  • 乙方:某某设备制造有限公司(卖方)
  • 合同金额:人民币 XXX 万元(含税)
  • 履行期限:自合同生效之日起 90 日内交付

二、关键条款抽取

事项条款位置原文要点
付款节奏第 4.2 条签订后付 30%,验收合格后付 60%,质保期满付 10%
验收标准第 6.1 条按附件二技术参数逐项验收,异议期 15 日
违约责任第 9.3 条逾期交付按日万分之三计违约金,上限合同总额 5%

三、风险提示

1. 第 9.3 条违约金上限仅 5%,低于同类合同常见水平,需评估对乙方的约束力。

2. 第 6.1 条验收异议期 15 日,若设备需长时间试运行,该期限可能不足。

3. 全文未约定争议解决方式,建议补充仲裁或管辖法院条款。

四、需人工确认的问题

  • 附件二技术参数是否已随合同一并提供?
  • 第 4.2 条"验收合格"是否以甲方单方确认为准?

```

注意第三、四部分的措辞:AI 可以指出"这里可能有问题",但"这个问题在这个交易里能否接受"必须由人来定。整篇教程的设计都围绕这一点。

前置条件清单

开始之前,确认手上有这些东西:

  • 一份可以合法处理的合同文本。涉及商业秘密的,先确认所在单位对使用外部大模型服务的政策;拿不准就改用本地部署的模型,或先做脱敏。
  • 合同的电子版文件(PDF、Word 或纯文本)。扫描件需要先做 OCR,识别质量直接决定后续效果。
  • 一个能处理长文本的大模型入口。可以是网页版对话,也可以是 API;合同动辄几十页,AI 词典:上下文窗口">上下文窗口太小的模型会截断,选型以模型官方文档标注的上下文长度为准。
  • 基础的命令行环境(Windows 可用 PowerShell 或 WSL)。可选,但在做文本提取时比手工复制粘贴可靠。
  • 一份自己整理的"审查要点清单"。这是整套流程里最值钱的东西,后面会详细讲。

步骤一:把合同变成干净的纯文本

这一步最容易被跳过,也最容易毁掉后面所有环节。PDF 直接复制出来的文本常常夹杂页眉页脚、断行错乱、表格串行。先做提取,再肉眼扫一遍。

用 Python 提取 PDF 文本:

```python

依赖:pip install pdfplumber

import pdfplumber

with pdfplumber.open("contract.pdf") as pdf:

pages = []

for i, page in enumerate(pdf.pages, start=1):

text = page.extract_text() or ""

pages.append(f"\n--- 第 {i} 页 ---\n{text}")

with open("contract.txt", "w", encoding="utf-8") as f:

f.write("\n".join(pages))

print("已输出 contract.txt,共", len(pages), "页")

```

Word 文件用另一条路:

```python

依赖:pip install python-docx

from docx import Document

doc = Document("contract.docx")

lines = [p.text for p in doc.paragraphs if p.text.strip()]

with open("contract.txt", "w", encoding="utf-8") as f:

f.write("\n".join(lines))

print("已输出 contract.txt,共", len(lines), "段")

```

提取完打开 contract.txt,做三件事:

1. 删掉重复的页眉页脚和页码标记,只保留 --- 第 N 页 --- 这类定位锚点。

2. 检查金额、百分比、日期有没有变成乱码或错位。数字错了后面全错。

3. 确认条款编号还在(如"第 9.3 条")。这些编号是你复核时的坐标,不能丢。

步骤二:写一份自己的审查要点清单

不要一上来就问模型"这份合同有什么风险"。开放式提问得到的往往是正确但没用的套话。先把你所在业务领域的关注点列成清单,再让模型按清单逐项回填。

一份通用的合同初审清单,可以从这几个维度起步:

  • 主体:双方名称是否与营业执照一致,有没有签约主体不是履约主体的情况
  • 标的:数量、规格、技术参数是否明确,附件是否齐全
  • 价款:总价、税费承担、付款节点、付款前提条件
  • 履行:交付时间、地点、方式,验收标准与异议期
  • 违约:违约责任是否对等,违约金计算方式与上限
  • 变动:变更有无书面要求,价格是否锁定
  • 终止:解除条件、通知期、退出后的结算与交接
  • 争议:适用法律、仲裁或管辖约定
  • 其他:保密、知识产权归属、不可抗力、通知送达地址

把这份清单存成 checklist.md,后续每次审查都用同一份。它是可迭代的资产:每遇到一个清单没覆盖到的坑,就补一条进去。

步骤三:让模型按结构抽取,而不是自由发挥

关键在于提示词的结构。要求模型逐项回答,并且每一项都必须给出条款位置和原文要点,没有找到就明确写"未找到"。

可以直接用下面这段作为提示词模板:

```text

你是合同初审助手。下面是一份合同全文。请严格按以下要求输出,不要做法律意见,只做事实抽取和疑点标注。

【输出格式】

一、基础信息:合同类型、双方名称、金额、期限

二、关键条款抽取:用 Markdown 表格,列为基础信息 | 条款编号 | 原文要点

覆盖以下事项:付款节奏、交付、验收、违约责任、解除条件、争议解决、保密、知识产权

三、风险提示:逐条列出,格式为"第 X 条 —— 疑点描述 —— 为什么值得关注"

四、需人工确认的问题:以问句形式列出,只列问题不给结论

【硬性要求】

1. 每一项都必须标注条款编号;找不到对应条款的写"未找到"。

2. 原文要点尽量引用原文措辞,不要改写数字和期限。

3. 不确定的地方标注"存疑",不要猜测。

4. 不要输出任何"建议贵司如何如何"的结论性表述。

【合同全文】

<把 contract.txt 的内容粘贴到这里>

```

把合同全文粘进去之后提交。如果合同很长超过上下文限制,就按页拆成几段分别处理,最后再合并——合并时特别留意跨段的条款,比如付款条款从第 8 页开始、第 9 页结束。

步骤四:交叉复核,别信第一遍

模型输出的第一版一定会有漏项和错位。复核动作有三条:

回原文核对数字。 模型偶尔会把"万分之三"写成"千分之三",把"90 日"写成"90 个工作日"。凡是金额、比例、期限,逐个在原文里搜一遍。

检查"未找到"。 模型说"未找到争议解决条款",可能只是没识别出来,也可能是原文用了"纠纷处理"这种不同措辞。用关键词在原文里搜一遍再下结论。

换一种问法再问一次。 把第二次提问改为"这份合同里对甲方不利的条款有哪几条",或者"如果乙方逾期交付,甲方能主张什么"。两次结果比对,不一致的地方就是需要重点看的。

这个交叉验证的思路,和人工复核时让两个人分别看一遍是同一个道理。

步骤五:整理成可交付的初审札记

把核对后的内容汇编成一份文档,格式参照开头的示例。要注意几点:

  • 风险提示里区分"事实"和"判断"。事实是"第 9.3 条违约金上限为合同总额 5%",判断是"该比例偏低"。判断部分留给具备权限的人确认。
  • 每一条风险后面标注依据的条款编号,方便对方直接翻到原文。
  • 单独列一节"本次审查未覆盖的内容",比如没拿到附件、没看到对方主体资质文件。把边界写清楚,比假装审查完整要负责。

常见坑与排错

坑一:扫描件直接喂给模型。 图像型 PDF 提取出来是空白或乱码。先跑 OCR,识别完务必人工核对金额和日期,OCR 对数字最容易出错。

坑二:页眉页脚污染上下文。 每页重复的公司名和页码会挤占上下文,还可能让模型误以为那是条款内容。提取阶段就清掉。

坑三:忘了脱敏。 涉及真实交易对手、报价、个人信息时,先确认使用政策。需要脱敏的场景,可以把主体名称替换成"甲方""乙方",金额等比例缩放后处理,最后再映射回去——但这一步很容易出错,映射表要留好。

坑四:把模型的"建议"当成结论发给业务方。 模型会写出看起来很专业的建议,但它不了解交易背景、谈判地位和行业惯例。发出去之前,所有结论性表述都应该被替换或删除。

坑五:只审正文,不看附件。 大量关键约定在附件里(技术参数、报价明细、服务水平指标)。附件没拿到就在札记里明确写出来。

坑六:每次都用不同的提示词。 结果无法比较,也无法积累。固定一份模板,每次只替换合同全文。

下一步建议

跑通一遍之后,可以从这三个方向继续:

建自己的条款库。 把每次审出的问题条款按类型归档,形成"常见坑清单"。下次审查时把这份清单一起放进提示词,让模型优先检查这些位置,效果通常比泛泛地问要好。

做批量初审。 如果手上是几十份格式相近的合同(比如同一模板下的多份订单),可以写脚本循环调用模型 API,输出统一的表格,人工只看被标红的行。脚本里的模型名称和调用参数以官方文档当前版本为准。

区分场景调整清单。 采购合同看交付和验收,服务合同看服务标准和知识产权,劳动相关协议看期限和解除条件。清单不同,抽取项就不同,不要用一份清单打天下。

明确 AI 的边界。 这套流程适合做初审:把事实捞出来、把明显的缺失标出来、把需要追问的问题列出来。它不适合做终审判断,也不适合在没人工复核的情况下直接对外出具意见。把这条边界写进团队的操作规范里,比任何提示词技巧都重要。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。