首页 / AI教程 / 正文
AI教程

使用AI对比多个PDF文档:合同差异比对流程、工具与提示词实战指南

chuanbook chuanbook
发布于 2026 年 10 月 22 日
阅读 约24分钟
浏览 2
评论 0

前几年我接过一个活儿,帮一家公司核对三份采购合同的差异。三份PDF,每份四十多页,条款顺序还不一样。我拿两个显示器并排开着,左边高亮一段,右边找对应段,找到以后再抄到Excel里做对照表。干到第二份的时候,眼睛已经开始对不上行了,鼠标滚轮滚到手指发酸。

那次我漏掉了一条付款条件的变化,三十天改成了四十五天。数字挨得太近,页码又隔得远,硬是没看见。后来是财务那边发现的,我被叫去解释了半天。这件事让我对“人工比对”这四个字有了很深的敬畏,也有了很深的疲惫。

1.1 人工比对痛点与AI介入的必要性

人眼做比对,本质上是在做一件反人性的事。眼睛对变化敏感,对“没变”的部分很迟钝。翻到第五十页的时候,脑子里装的还是第十页的印象,判断基本靠感觉。PDF又不像Word那么好定位,扫描件连文字都选不中,全靠肉眼扫。

我做过统计,一份五十页的合同,认认真真对完,两个小时打底。中间只要被打断一次,回来就得重新找位置。版本一多,比如甲乙方来回改了三轮,那文件夹里躺着的就是七八个PDF,谁改了什么、哪句是最终版,光靠文件名根本理不清。

AI介入这件事,我现在看得很清楚:它不是来替你做决定的,是来把“找不同”这个体力活接走。把几十页文档里的字符级差异先筛一遍,把可疑的地方标出来,人只需要坐下来看它标的那些位置,判断改得对不对、风险大不大。这个转变很实在,省下来的时间可以拿去想条款背后的商业逻辑,而不是拿去数页码。

1.2 AI对比与传统文本比对的核心差异

传统文本比对工具,说到底就是字符级的差异算法。Word自带的“比较文档”、Beyond Compare这一类,逻辑是逐字符、逐行地算edit distance,改一个字标红一个字。这种工具我用了很多年,它便宜、快、不联网,处理格式规整的电子文档很好使。

它的问题也很直接。PDF里加了个空格、段落被重新排版、标点从全角变半角,它就满屏飘红,看着像改了几百处,实际上一处实质变化都没有。扫描件更别提,OCR没做之前它连字都读不出来,比对无从谈起。

AI的做法是另一条路。它先把PDF拆开做版面分析,识别标题、正文、表格、页眉页脚,再做OCR,把内容变成结构化的文本,才进入比对环节。这一步过了之后,它做的是语义对齐,不是纯粹的字面对齐。“甲方有权解除合同”改成“甲方在提前三十日书面通知后有权解除合同”,字面上差别不小,语义上其实是同一个动作加了程序条件。传统工具只会给你一大片红,AI能告诉你:这里新增了一个通知义务,期限是三十天。

我更喜欢AI的一点是它会给差异报告,不是一堆标红,而是分条列出“哪里、原来是什么、现在是什么、可能的影响”。这个输出形态对非技术同事友好得多,法务、采购、业务方都能直接看。

1.3 多PDF文档对比的典型应用场景

合同场景是最刚需的。采购框架协议、NDA、租赁合同、服务外包合同,甲乙双方来回改,每一版都是一个PDF。律师审完一遍,客户又改一版,审过的内容得重新确认。这种往复里AI的价值特别明显,它记得住上一版,也扛得住“只改了一个逗号”这种无效版本。

招投标也是一大块。招标文件里几十条技术要求,投标文件要逐条响应。人工对是拿尺子量着看,一条一条打勾。AI可以把两边的条款拉齐,把没响应的、响应得不完整的挑出来,投标团队拿去补漏,效率差出好几倍。我见过一个做市政工程的朋友,他们以前是三个人对两天,现在一个人半天过一遍初筛。

还有一类场景容易被忽略:内部制度文件。公司规章制度、SOP、员工手册,每年修一次,改完就发,没人去比新旧版到底动了哪些条款。真出了劳动纠纷,才发现某条规定被悄悄删了。这种场景用AI做一次版本差异留痕,成本极低,价值在事后才显出来。

尽调、审计底稿、保险条款、多版本研究报告,逻辑都差不多。核心就一句话:两份以上的文档,需要知道“差在哪”,且这个“差”有商业或法律后果。

1.4 能力边界与结果可信度预期

我得泼点冷水。AI比对不是万能的,它的输出不能直接当结论用。

最常见的问题是幻觉。模型有时候会“补”出一段原文里没有的话,特别是在扫描件OCR质量差、表格跨页断裂的地方。它会顺着上下文猜,猜出来的东西看着很像真的。我遇到过AI报告里写着“第12页第3款约定违约金为合同总额的20%”,翻回去一看,原文写的是15%,20%是它自己算出来的。

扫描件和复杂表格是硬骨头。手写批注、印章压字、合并单元格、跨页表格,这些在解析阶段就容易出错,后面比对再准也是垃圾进垃圾出。超长文档还有上下文窗口的限制,几百页的PDF会被切片处理,切片边界上的内容容易漏。

所以我的用法一直很固定:AI出初筛报告,报告里必须带页码和原文引用,我拿着引用回原文核。金额、日期、百分比、责任主体、解除条件这几类硬信息,一律人工复核,不信任AI的直接输出。文字级的差异,比如数字变了、词换了,可信度高,基本能直接用;语义级的判断,比如“这条改动是否构成实质性不利”,AI只能给参考,拍板还得是人。

把它当成一个不知疲倦、但偶尔会走神的实习生。它替你翻完那几百页,标出可疑的地方,剩下的判断,你自己来。

第1章聊完价值边界,这一章讲具体怎么干。我得先说明一点,下面这套流程不是我从哪本手册上抄来的,是踩了一堆坑之后自己整理出来的。最早我拿到PDF就往AI里扔,扔完出来一屏报告,看着挺唬人,仔细一看三分之一是排版噪音,三分之一是它自己猜的,剩下来的干货得翻半天才找得到。后来我强迫自己每次动手前先按步骤走一遍,效率反而高了不少。

2.1 对比目标定义与输出规范

我现在做任何一次PDF比对,第一件事是拿张纸写一句话:这次比对的目的是什么。听起来像废话,实际特别管用。目的不同,比对的粒度完全不一样。审合同风险,我要的是条款级的变化和可能的法律后果;对投标响应,我要的是逐条有没有覆盖;核对内部制度新旧版,我要的是结构性增删。这三种目的扔给AI的指令差很远,输出的格式也差很远。

写目的的时候我会顺手把输出规范定下来。比如“按条款编号逐条输出,每条包含原文页码、旧版表述、新版表述、变化类型、风险等级”。这个规范越具体,AI跑出来越能用。我吃过亏,指令只写“帮我对比这两份合同的差异”,AI回了一大段散文式的总结,读起来倒是顺,可我要回去找原文的时候,它连页码都没给,等于让我重新翻一遍。

输出规范里我必写三项:引用要带页码(有条款号更好)、差异要分级、结论和事实分开列。分级我一般用三档:文字级(数字、词、标点变了)、结构级(条款增删、顺序调整)、语义级(措辞改了但意思可能没变,或者意思变了)。把这三类摊开写,AI出报告的时候就不会把“全角逗号变半角”跟“付款期限改了十五天”混在一起报,我后面复核的优先级一下就清楚了。

2.2 PDF解析、OCR与结构化预处理

很多人以为把PDF拖进AI对话框就算完事了,这一步其实是整个流程里最容易出问题的地方。PDF这格式本身就是用来排版的,不是用来存文字的。它里面可能是真正的文本层,也可能是一张张扫描图,还可能是两者混杂——正文是文本,盖章页是图片。我见过最坑的一种,正文是扫描件,但PDF里嵌了一层看不见的OCR文本,那层文本识别得一塌糊涂,AI照着读,出来的结果全是错的。

所以我现在的习惯是先做一遍预处理检查。打开PDF,试试能不能选中文字,能选中的大概齐是文本层,选不中的就得走OCR。表格我会单独看一眼,合并单元格、跨页表格是重灾区。有些表格在PDF里视觉上是一整张,解析出来被拆成两段乱七八糟的文字,AI读到这种内容会顺着上下文自己脑补,把数字补错。

OCR这一步我比较挑剔。一般的通用OCR对付印刷体没问题,手写批注、印章压过的字、浅色底纹上的文字,识别率掉得厉害。我的做法是宁可让它标“此处识别不确定”,也不要它硬猜。有些工具支持输出置信度,低于阈值的字段我会挑出来人工看一眼再喂给比对环节。预处理多花二十分钟,后面省两个小时。

结构化这一步容易被忽略。所谓结构化,就是把PDF里的内容按标题、段落、列表、表格拆成有层级的文本块。这个层级对后面做对齐特别重要——没有层级的话,AI不知道“第三条”下面包含三款,比对的时候容易把第三款的内容挂到第四条下面去,差异报告就乱了。

2.3 多文档对齐、差异识别与语义归纳

对齐这个环节是整套流程里技术含量最高的,也是最不直观的。两份合同的条款顺序常常不一样,甲方把保密条款放在第八条,乙方挪到第十二条,内容其实没动。如果按顺序硬比,AI会报出一大堆“此处缺失、此处新增”的假差异。我现在会先让AI做一次结构映射,把两份文档的章节骨架拉出来对一遍,看哪些条款是同一主题只是编号不同,对完再比内容。

差异识别我分两步走。第一步是字符级的粗筛,把两份结构化文本逐段比对,标出所有不一样的地方。这一步不追求聪明,追求不漏。第二步才上语义归纳,把粗筛出来的差异块按主题聚类,同一件事的几处修改归到一起,写成一条人话能读的差异项。比如付款条款里“三十日”改“四十五日”、“电汇”改“银行转账”、“验收后”改“验收合格后”,这三处我会让AI归到一条“付款条件变更”下面,而不是散成三条让我自己拼。

语义归纳这一块我得说句实在话,AI归纳得好不好,很吃提示词的设计。我一般会要求它按“变化类型+涉及主体+影响面”三个维度来归纳,并且明确告诉它:如果拿不准是不是实质变化,标“待人工确认”,不要自己下结论。这个约束加上去之后,报告里那种“这条修改可能影响重大”的废话少了很多,换成了具体的“此处新增通知义务,期限三十日,涉及甲方”。

我还会做一件事,把多份文档拉一个差异矩阵出来。三个以上版本的时候,逐对比对会产生一堆报告,看不过来。矩阵的行是条款主题,列是各个版本,格子里填这一版的状态。这样一眼就能看出哪个条款在哪个版本被动了、动了之后有没有被改回去。这个矩阵不用多花哨,一个表格就够了。

2.4 差异复核、引用追溯与版本留痕

AI出完报告,我的活儿才刚过半。复核这一步我从来不敢省。我的做法是逐条过,每条差异点开原文页码,对着看一遍。文字级的差异看得快,数字、日期、百分比这几类我尤其小心,一个“10%”和“1.0%”在AI眼里可能就是小数点丢了,在我眼里是几十万的事。语义级的差异看得慢,得判断这个措辞变化到底有没有改变权利义务。

引用追溯是我对AI报告的一个硬要求。每一条差异必须能点回原文的具体位置,页码、段落、最好带上原文片段。没有引用的差异项我一律当没看见,因为没法核。我遇过报告里写“第7页约定管辖法院为乙方所在地”,翻回去看原文写的是“合同签订地”,AI把两个概念串了。有引用我三秒钟就发现了,没引用我得从头找。

版本留痕这件事,做起来麻烦,事后救命。我现在的做法是每次比对都留一份快照,记录这次用的哪几个PDF文件、文件哈希值、比对时间、用的什么指令、AI输出原文。听起来有点过度,但我真碰到过一次纠纷,两个月后对方说我们比对时漏了一条,我把当时的快照调出来,指出那条在报告里标了“待确认”而没有人跟进,责任一下就分清了。

留痕还有个好处,隔一段时间回头翻,能看出哪些条款反复被改。合同来回拉锯的时候,同一段话改了三四轮,最后又改回原样,这种反复本身就是信息,说明双方在这条上分歧大。光看最终版是看不出来的,得靠版本链条。

整套流程走下来,一份五十页的合同,从预处理到复核完,我现在大概四十分钟到一个小时。比人工快,但快不是重点,重点是我知道每一步在干什么、哪一步可能出错、错在哪我能查回来。AI是个好帮手,前提是你得给它搭好跑道,还得自己站在终点线上验货。

上一章讲的是流程,这一章聊工具。我踩过的坑告诉我一件事:工具选不对,流程再规范也白搭。我见过有人拿一个上下文只有八千字的小模型去比对两份六十页的合同,结果它把前半份读完了,后半份直接凭空发挥,报告写得有鼻子有眼,全是编的。也见过有人花了六位数买了一套垂直合同审查系统,回头发现自己团队根本不会用,最后又退回人工。工具这东西,合适比先进重要得多。

3.1 工具能力分类与评估维度

我现在把市面上的工具粗分成四类来看。第一类是通用对话式AI,就是你能直接扔PDF进去聊的那种,ChatGPT、Claude、Kimi、通义、Gemini都算。第二类是传统文档工具里嵌的比对功能,Word自带的比较、Adobe Acrobat的PDF对比,还有WPS的文档对比。第三类是垂直合同审查SaaS,专门做法律场景的,像幂律智能、法蝉、秘塔这类。第四类是开源或者私有化部署的方案,本地跑模型,数据不出门。

这四类工具的能力差异特别大,不能拿一个标准去衡量。通用对话式AI强在语义理解和归纳,你给它一段改过的条款,它能告诉你意思变没变,但它的引用追溯经常靠不住,页码能给你编出来。传统比对工具强在字符级的精确,一个逗号变了它都能标出来,语义它完全不懂,改一个字的同义替换它只会标“差异”,不会告诉你风险。垂直合同审查工具强在预置的法律知识库,它知道哪些条款是高风险条款,弱在灵活性,你换个非标场景它就懵。私有化方案强在合规,弱在你要自己养团队维护。

评估维度我一般看六项。解析能力是第一项,扫描件、表格、跨页内容能不能吃进去,这一项不过关后面全免谈。上下文窗口是第二项,多长的文档能一次性处理,六十页以上是不是要分段、分段之后怎么保持上下文连贯,这点特别关键。引用追溯是第三项,能不能点回原文页码、能不能给出原文片段,这是我判断一个工具能不能用于正式场景的硬门槛。语义理解是第四项,文字变了意思没变能不能识别出来,这是AI相对传统工具的核心价值。再往下是数据安全,能不能私有化、数据存哪里、有没有合规认证。最后才是价格和协作,能不能多人审同一份报告、能不能留痕。

我发现自己选工具的时候容易犯一个错误,就是被演示效果带跑。厂商演示的时候挑最漂亮的案例,一份规整的Word转成的PDF,条款清晰排版干净,比对结果自然好看。我后来养成了一个习惯,每次都拿自己手上最脏的那份文件去试——扫描件、带手写批注、表格跨页、条款编号乱的那种。能把这个跑通,才谈得上能用。

3.2 通用文档AI与垂直合同审查工具推荐

通用文档AI这一块,我日常用得最多的是Claude和Kimi。Claude的长文档理解确实扎实,给它两份PDF让它做结构映射,它拉出来的章节骨架基本不跑偏,我一般用它做第一轮对齐和语义归纳。Kimi处理中文PDF的解析质量在我测过的里面算靠前的,尤其是带表格的那种,它不太会把表格拆成一堆乱码。ChatGPT的综合能力均衡,提示词工程的空间大,我经常用它跑一些定制化的输出格式。通义和Gemini我一般作为备份,同一个任务换着跑,对比一下结果差异,哪家的结论不一致我就重点复核那一条。

这几家的共同短板是引用追溯。它们能告诉你“付款期限改了”,但页码经常给错。我的应对办法是让它输出的时候带上原文片段,不要只给页码,然后我用片段去全文搜索定位。另一个办法是把文档先切块编号,让它引用块号而不是页码,这样准确性高不少。上下文窗口也不是万能的,超长文档扔进去,模型对中间部分的注意力会衰减,我一般把关键条款放在前面或者拆成多次对话处理。

垂直合同审查工具我用过几款,感受是场景匹配度很重要。做标准合同审查,幂律智能这类工具预置的风险点库确实省事,它知道付款条款、违约责任、知识产权归属这些地方该看什么,输出的是结构化风险清单,不是散文。法蝉在合同全生命周期管理上做得比较完整,比对只是其中一环,适合已经在用它的合同管理系统的团队。秘塔的强项在检索和法律知识库,比对功能是附带能力,适合需要边比对边查法条的场景。

我要提醒一点,垂直工具的预置规则是双刃剑。它替你省了定义风险点的功夫,也限制了你的视角。我遇到过一份非标的框架协议,垂直工具的风险清单里大部分条目都标了“未涉及”,看着挺干净,实际里面藏了一条很隐蔽的排他性条款,工具没识别出来,我人工读了两遍才看出来。这类工具适合做初筛和标准化场景,非标场景还得靠通用AI加人工。

传统比对工具我保留了一个用途:做最后一道字符级校验。AI报告说某条没变,我有时候不放心,拿Adobe Acrobat的对比功能再跑一遍,看有没有漏掉的细微改动。这工具笨,但它不撒谎,改了就是改了,没改就是没改。

3.3 私有化部署与敏感数据合规方案

数据敏感这件事,做合同和法务的人应该有切身体会。把一份还没签的并购协议扔进公网AI对话框,这事我干过一次,事后想起来后背发凉。不管厂商怎么承诺不拿你的数据训练,数据出了你的网络边界,风险就在那里。涉及商业秘密、个人信息、未公开的交易条款,我现在一律走私有化路线。

私有化部署这几年门槛降了很多。最轻量的做法是本地跑一个开源模型,Qwen、DeepSeek、Llama这几个系列的中等参数量版本,配一张消费级显卡就能跑起来,处理几十页文档的比对够用了。我试过在一台带4090的机器上跑Qwen的72B量化版,比对两份三十页的合同,语义归纳的质量比我预期好,引用追溯靠外挂的检索模块补。这种方案的成本就是一台机器的钱,数据完全不出内网。

再往上一个档次是用Dify、AnythingLLM、RAGFlow这类框架搭一套文档比对工作流。它们的作用是把PDF解析、切块、向量化、检索、模型调用串成流水线,你可以在里面定制比对提示词、定制输出格式、定制引用规则。我帮一个客户搭过一套,用的是RAGFlow加本地Qwen,整个流程跑在内网服务器上,法务团队通过浏览器访问。搭建花了一周多,调提示词又花了几天,跑顺了之后他们的合同初审效率提了不少。这套方案的难点不在模型,在解析和检索的质量,扫描件的OCR、表格的结构化,这些脏活得一个个磨。

合规这块,我建议选型的时候把几个问题问清楚。数据存储在哪里,是境内还是境外。训练和使用是否隔离,你的文档会不会被拿去优化模型。有没有等保或者ISO 27001之类的认证。支不支持审计日志,谁在什么时候比对了哪份文件能不能查。支不支持字段级脱敏,比对之前先把身份证号、银行账号这类信息遮掉。这几个问题问下来,很多厂商就露底了。

还有一个折中方案值得一提,就是脱敏之后再用公有云AI。我有些场景是这么干的:先用脚本把文档里的敏感实体替换成占位符,人名换成甲、乙,金额按比例缩放,公司名换成代号,比对完再把占位符映射回去。这样既用上了大模型的能力,又降低了泄露风险。缺点是对语义有轻微影响,缩放金额之后有些跟金额挂钩的条款逻辑可能变形,得在映射回填的时候多留个心眼。

3.4 选型决策清单与试用验证方法

选型这件事,我的经验是先定约束再选产品,不要反过来。约束有几个:文档量级多大,一天比对几份、一份多少页。数据敏感度多高,能不能出内网。团队规模多大,是一个人用还是十个人协作。预算多少,是买断还是按量付费。场景是标准化合同还是五花八门的非标文档。这几个问题想清楚,候选名单一下就短了。

我整理过一份自己的选型清单,分硬指标和软指标。硬指标是一票否决的:解析不了扫描件,淘汰;引用追溯完全靠编,淘汰;数据必须出境的场景下没有境内节点,淘汰。软指标打分:语义归纳的准确率、输出格式的定制灵活度、协作和留痕能力、上手难度、价格。硬指标过不了的直接不看软指标,省时间。

试用验证这一步我特别较真。我不看厂商的演示,我自己出题。第一道题是一份扫描版合同和它的修订版,中间改了五处数字、两处日期、一处付款方式,我要看工具能不能全部找出来,找出来的能不能准确定位。第二道题是一份条款顺序被打乱的重排版文档,内容几乎没变,我要看工具会不会报出一堆假差异。第三道题是一段同义改写的条款,措辞变了意思没变,我要看它会不会误报为实质变更。这三道题跑下来,工具的真实水平基本就摸清了。

我还有一道压轴题,是拿两份真实的、我自己非常熟悉的合同去跑,一份是我审过的,我知道里面所有改动点,另一份是故意放了几处陷阱的。跑完我把AI报告和我的记忆对一遍,看它漏了什么、编了什么。这一道题最能暴露问题,因为我知道标准答案。我建议每个人选型的时候都准备这么一对“已知答案”的文档,这是最靠谱的试金石。

价格这块我说句实在话,不要只看单价。按量付费看着便宜,量一大就超买断的钱。买断看着划算,用不起来就是沉没成本。我的算法是算总拥有成本,把许可费、部署费、维护人力、培训时间、迁移成本都算进去,再看这个工具一年能帮我省多少小时、这些小时折多少钱。算完经常发现,便宜的工具因为不好用反而更贵。

最后一条,小步试。选定一两个候选,先在一个真实但非关键的项目上跑一个月,让团队里最挑剔的那个人用,收集吐槽。吐槽比好评有价值得多。一个月之后如果吐槽都在可接受范围内,再扩大范围。我见过太多一次性全量切换然后翻车的案例,工具本身可能没问题,是团队的使用习惯没跟上,或者某些边缘场景没覆盖到。留出试错空间,比选一个“最强”的工具重要。

上周三下午,客户甩过来两个PDF,说"这是原版和对方回签版,帮我看看动了哪些地方"。我打开一看,六十八页的采购框架协议,密密麻麻的小五号字。以前我干这事得开着两个窗口一页页对,拿荧光笔在屏幕上划,一下午眼睛发花,看到后面条款都串了。这回我把两份PDF丢进AI里,提示词写好,三分钟出了个差异清单,一共十七处改动,分成了实质性变更和文字性调整两类。我又花了二十分钟复核,最终确认了十五处,有两处是AI过度解读。这个效率比人工快太多,结果可信度也够用。这一章就把我这一整套做法摊开讲。

4.1 如何用AI快速对比PDF合同差异

我试过不少起手式,直接说"帮我对比这两份合同"效果最差。模型会把两份文档混着读,东一句西一句,最后给你一篇不痛不痒的总结。我现在的做法是先把对比目标说死,告诉它我们要找的是条款级别的实质差异,涉及金额、期限、责任范围、违约责任、争议解决这五类的都算实质性,标点、措辞、数字格式这些算文字性差异,分开列。目标一明确,输出质量立刻上台阶。

解析这一步不能省。PDF扔给模型之前,我先让它把两份文件各自转成带编号的文本,一章一章标出来,条款编号原样保留。有时候PDF是扫描件,得先跑一遍OCR,我一般用公司内部部署的PaddleOCR,中文识别率比在线工具稳。转完文本我再核对一遍结构,看条款有没有被拆散。这一步急躁不得,我吃过亏,表格跨页被切断了,付款方式那一栏少了一截,AI直接跟我说"该条款未变更",差点漏掉。现在我都把表格单独拎出来,作为附件单独比对。

真正跑比对时,我习惯让AI分两轮来。第一轮只做结构和条款对齐,输出一份条款映射表,左边原版条款号,右边新版条款号,对不上的标出来。第二轮再逐条比差异。两轮分开跑的好处是引用追溯准,它引用的时候是拿着映射表说话,页码和条款号基本不会错。有一次我让它一口气跑完,它给我编了三个根本不存在的条款号,我翻了半天原文找不到,才知道它在做"语义相似度补全"。分两轮之后这种事少多了。

跑完第一版结果,我从不直接发给客户。我会拿几处它标"无变化"的核心条款回头单独再问一遍,让它只比这一条,把原文两边都贴出来。这么抽样复核十几条,基本能摸清这一轮的整体质量。我一般抽三类:金额付款、违约责任、解除权。这三类最容易出事,也最容易看出模型有没有偷懒。

4.2 多PDF批量对比、差异报告与协同审批

批量场景才是真见功夫的地方。我手上一个常年项目是连锁门店的租赁合同,一份主合同模板,配五十几家不同城市的回签版。每份都要跟模板比,人工比对一份四十分钟,五十份就是三十多个小时。这种活只能靠批量流水线。我的做法拿Python打底,pdfplumber抽文本,结构化之后再按统一提示词调用模型,结果写成一张Excel。整个流程跑完不到两个小时,当然前期调试花了两三天。

差异报告的结构我固定成八列:文件编号、条款号、变更类型、原条款摘要、新条款摘要、风险等级、引用页码、建议动作。变更类型分"新增、删除、替换、顺序调整"四类,风险等级分"红黄绿"三档。红的是实质风险必须改,黄的是需要谈,绿的是文字调整放行。这张表的好处是能排序、能筛选、能统计,我经常跑完先按风险等级一筛,红的数一遍,心里就有数了。五十份合同里有多少红项,分布在哪几个条款,客户一看就懂。

协同审批这块我吃过教训。最早是把Excel直接发邮件,结果三个人回过来三个版本,到最后我都搞不清哪份是最新的。现在的做法是把差异报告塞进飞书多维表格,每一行差异是一个记录,指派给具体复核人,改完状态从"待复核"变"已确认"或"已驳回"。所有改动留痕,谁在什么时候改的、改了什么原因,都查得到。客户那边要审计的时候,日志一导就行。

版本留痕这一环我加了一道自己的保险。每份上传的PDF我都会算一个SHA-256哈希,存在报告附表里。将来有人说"我看的那版跟你比的不一样",哈希一对就知道有没有换过文件。这个动作看着多余,真遇上有争议的时候能救场。去年有个客户内部两个部门拿着一份高度相似但关键金额差一个零的合同来吵,我们对着哈希一查,两份确实是不同版本,问题一下就清楚了。

4.3 提示词模板与条款级比对技巧

我手上用顺了的一套提示词模板长这样,直接可以抄:

角色:你是一名有十年经验的企业法务,擅长合同差异审查。
任务:对比附件A(原版)和附件B(修订版),识别条款级别的实质差异。
对比范围:金额与付款、交付与验收、违约责任、知识产权、保密、争议解决、合同期限与解除。
输出要求:
1. 用表格输出,列为:条款号 | 变更类型 | 原条款摘要 | 新条款摘要 | 风险提示
2. 每条差异必须摘录原文片段,不要只写概括
3. 无法确定是否实质变更的,单独列"待人工判断"区
4. 不要编造原文,找不到依据的写"未定位"

这个模板我按场景改过十几版。做采购合同会把"交付与验收"拆得更细,做服务合同会加上"服务水平"和"数据处理"两个板块。核心是一条:输出格式定死,别让模型自由发挥。它自由发挥的时候往往挑一两个点大写特写,其他全漏。

条款级比对我有个小技巧,叫"分块跑、单条问"。先把合同按结构切成若干块,付款一块、违约一块、争议解决一块,每块单独让模型比。单块上下文短,模型注意力集中,漏检率明显低。比完再把结果拼起来。遇到关键条款,比如违约金比例、管辖法院,我会额外单独问一遍:"只比这一条,把两边原文都摘出来,逐字对比。"这一问下来,AI基本不会糊弄。

还有一个技巧是数字单列。合同里的金额、比例、天数、日期,我让AI拉一份独立的"数字清单",两边所有数字列出来,编号对齐,肉眼扫一遍比看整篇文章快得多。这招是跟财务同事学的,他们审报表就这么干。有一回一份采购合同正文写"违约金为合同总额的5%",附件里小字写"违约金为逾期部分金额的5%",两个5%意思天差地别,整篇AI比对报告居然没标出来,是我扫数字清单扫出来的。从此这一道工序我再没省过。

4.4 常见问题、风险控制与效果评估

跑得多,问题就见得多。排第一的是引用幻觉,AI说"根据第8.3条",你翻过去根本没有8.3条,或者8.3条内容完全对不上。这事的根源是模型在补全最像的编号,不是在原文里定位。我的对策是让它先建目录,再引用,引用必须带原文片段,我拿片段搜原文,搜得到才算数。第二是跨页条款断裂,一个条款头在第五页,尾在第六页,AI读成了两条,报了一堆假差异。处理办法是解析阶段做一次页合并,识别出条款跨页的情况,拼回一条再送进去。第三是OCR错字,尤其是手写批注和盖章区域,机器识别出来的字是乱码,会影响语义判断,我在提示词里加了一句"遇到疑似OCR错误的内容,标注出来,不要强行解读"。

风险控制我分三层想。第一层是数据层,涉及敏感金额、身份信息、未公开交易条款的,一律走脱敏或私有化,这条线不能松。第二层是流程层,红色风险项必须双人复核,AI给的是初筛,不是终审。我们内部定了规矩,红项由法务和业务各一人签字确认才能进审批流。第三层是结果层,所有AI报告必须完整存档,包括提示词、模型版本、时间戳、原始文件哈希,将来出问题能追溯到哪一步。这三层搭起来,AI就是帮手;缺一层,AI可能就是坑。

效果评估这块,我不看厂商宣传的准确率,我自己算三个数。第一个是召回率,拿一份我知道所有改动点的合同去跑,看它找出来多少真差异,漏了多少,我要求至少90%。第二个是误报率,看它报出来的差异里有多少是瞎报的,我忍到15%以内,超过这个数复核成本就吃掉效率红利了。第三个是复核时间比,人工从头比要多久,AI出初稿加我复核要多久,这个比值我跑下来普遍是四比一以上,复杂合同低一点,标准合同能到八比一。

我还有个习惯是建测试集。每隔一两个月,我会把自己手上真实的、已经人工确认完毕的合同对比案例存一份进去,当前有四十多组。换模型、换提示词、换工具,我都拿这组测试集重新跑一遍,看召回率和误报率有没有变。这个习惯像体检,平时不觉得有用,真出事的时候它救过我好几次。上个月换了个新模型,跑测试集召回率从94%掉到81%,查出来是新模型对中文条款编号的识别有退化,加上一段编号格式预处理就好了。要是没这组测试集,得等到真实项目上翻车才发现。

赞0
踩0
☆收藏0
版权声明
文章版权声明:除非注明,否则均为ZBLOG原创文章,转载或复制请以超链接形式并注明出处。
分享到
chuanbook

链接已复制到剪贴板