周末用 VibeCoding 制作了一个合同关键字段抽取工具,又给 AI 付费打工了……
工具的核心能力:把一份几十页的合同 PDF 拖进去,自动告诉你:甲方是谁、乙方是谁、金额多少、期限多久、付款节点有哪些、违约条款……然后导出 结构化Excel

支持的文件格式:
| 格式 | 处理方式 |
|---|---|
| PDF(电子版) | 直接提取文字 |
| PDF(扫描版) | OCR 识别后提取 |
| Word(.docx / .doc) | 直接解析 |
| 图片(JPG / PNG) | OCR 识别 |
| TXT | 自动检测编码 |
内置 5 套合同规则模板,字段规则可以自己增删改,完全灵活。
很多人第一反应:把合同丢给 DeepSeek 让它抽不就好了?能做到,但不是唯一解,也不总是最优解。
合同场景下,每个项目的需求不一样——有的追求最准、有的必须保密、有的想省钱。所以工具支持三种模式,一键切换:
| A 全文云端 | B 检索+云端 | C 全本地 | |
|---|---|---|---|
| 怎么做 | 整本合同上传 DeepSeek,一次输出所有字段 | bge 本地检索找相关段 → 只把那几段发给 DeepSeek | bge 本地检索 + Qwen 本地抽取 |
| 数据去哪 | 全部上传云端 | 只传关键段落 | 完全不出本机 |
| 准确率 | ⭐⭐⭐⭐⭐ 最高 | ⭐⭐⭐⭐ 很高 | ⭐⭐⭐ 中等 |
| 速度(电子版) | ~10 秒 | ~20 秒 | CPU ~55 秒 / GPU ~15 秒 |
| 费用 | 约 ¥0.5-2/份 | 约 ¥0.2-1/份 | 免费 |
| 隐私 | 合同全文上传 |
打个比方:
真实选法:同一份合同,涉密用 C,追求最准用 A,大批量用 B——一个工具搞定所有情况,不用为了换场景另装一套。

工具后面两个模式的字段提取是通过"向量化"实现的,一听就很技术。其实不复杂。
向量化就是把文字变成一串数字"指纹",方便快速找相似。
打个比方:你要从一本 500 页的字典里找出所有跟"钱"有关的词。人肉翻,半小时;电脑如果一页页扫,也要一会儿。
向量化就是给每个段落打了一串数字标签(比如第 3 段的标签是 [0.8, 0.1, -0.3, ...],第 45 段的标签是 [0.7, 0.2, -0.2, ...])。这两个标签很接近,说明它们内容相似——都跟"钱"有关。
有了这些标签,当你问"帮我找合同金额",bge 模型瞬间就能找出标签最接近的几段——不用读完整本书,直接从第 3 页、第 45 页找。
所以 B 和 C 模式的流程是:
几十页合同
│
▼ ① 切块:切成小段落(约 600 字/段)
│
▼ ② 向量化:bge 给每段生成"数字指纹"
│
▼ ③ 检索:你要提取"合同金额",bge 找出最相关的几段
│
▼ ④ 抽取:把那几段交给 Qwen / DeepSeek,让它读取答案
│
▼ 结果 + 出处页码💡 关键认知:不是把整本合同喂给 AI,而是先用 bge 找到相关段,再把那几段给大模型。长文档不怕、聚焦更准、还省钱。

拖入合同 → 自动解析 → 选规则提取 → 导出 Excel打开工具,切换到「合同解析」页。直接拖拽 PDF/Word/图片到窗口,或者点「选择合同导入」按钮。
工具会自动解析文档,如果是扫描版,会走你设置的 OCR 模式(默认本地 RapidOCR)。右上角有进度条,解析完成合同就进了合同库。
合同入库后,工具会根据合同内容自动匹配分类——比如第一页出现"采购""交付",会自动归类为"采购合同"。你也可以双击「合同类别」列手动换。
勾选合同(支持 Ctrl/Shift 多选),点「批量提取勾选」。
如果选的 C 模式(全本地),工具会自动检测本地模型是否在线。不用联网,完全本地离线运行。
提取过程中,进度条显示当前状态:解析中 / 检索中 / 抽取中 / 已完成。每份合同处理完实时更新表格摘要列。
勾选已提取的合同,点「导出 Excel」。每个合同分类生成一个 Sheet,字段整理成列,方便做底稿、做汇总。
合同很多时候是扫描版——纸质合同扫描成 PDF,文字其实是图片。这种需要用 OCR(光学字符识别)先"看图识字"。
工具支持两种 OCR:
| OCR 模式 | 原理 | 联网 | 速度 | 适用 |
|---|---|---|---|---|
| local(本地 RapidOCR) | 本地 ONNX 模型,完全离线 | ❌ 不联网 | 较快 | 清晰扫描件、手写字体一般 |
| mineru_agent | MinerU 在线,免 token | ✅ 需联网 | 较快 | ≤10MB,≤20 页 |
| mineru_precision | MinerU 在线精准,需 token | ✅ 需联网 | 稍慢 | ≤200MB,≤200 页,表格/复杂排版 |
怎么选? 绝大多数场景用 local 就够了,离线免费。遇到表格密集、排版特别复杂的合同,切 mineru_precision。
⚠️ MinerU precision 需要去 mineru.net 申请 API token,在参数设置页填入。
C 模式需要在本地跑两个模型:bge(约 26MB)和 Qwen(约 2GB)。这些模型通过 llama-server 运行(HTTP 服务)。我自己用 RTX5070ti 测试,应该提取速度会提升5-6倍数左右。
如果你没有本地化的需求,可以不用看这个部分了,也不用下载2GB的模型。


整个过程一行代码都没手写。下面这张简化版的流程图能说明问题:
需求描述(AGENTS.md)
│
▼ Claude Code
│ ├─ 探索项目结构
│ ├─ 制定开发计划
│ ├─ 逐模块实现(GUI / 解析 / OCR / 抽取 / 缓存 / 日志)
│ ├─ 调试修复(看日志、定位报错、改代码)
│ └─ PyInstaller 打包
│
▼ 产出:合同提取工具.exe(2.5GB 文件夹,拷贝即用)中间经历了数轮"看日志 → 定位 bug → 修复 → 重试",AI 负责写代码,我负责测试、看日志、给反馈。有点像带了个不会累的程序员,你说人话,它写代码,你盯着把关。

以上也是我的VibeCoding课程内容,感兴趣的朋友可以加入课程尝试手搓一个。
课程地址(直接点击“阅读原文”):
https://m.tenclass.cn/channel2/1881996
通过网盘分享的文件:合同提取工具分享版
链接: https://pan.baidu.com/s/1jyZiorKYY5n_TRl8g2kJhw 提取码: 1212
| 仅关键段上传 |
| ✅ 零上传 |
登录后发表评论。
暂无评论。来发表第一条吧。