AI合同审查系统搭建:零基础服务器部署与配置指南

AI合同审查系统搭建的核心,是在一台可联网的 Linux 云服务器上,把合同解析、文本比对和模型调用三个环节串起来。
本文以常见的 Python + FastAPI + 大模型 API 方案为例,零基础用户按步骤执行即可完成基础部署。

先确定你的审查范围和部署方式

动手前先想清楚两件事:合同是纯文本还是扫描件、审查结果是只做关键词提示还是要生成修改建议。
纯文本合同只需解析 PDF/DOCX 文本;
扫描件则要额外部署 OCR 服务,对服务器内存要求更高。

部署方式建议选云服务器,系统用 Ubuntu 22.04 或 24.04,配置 2 核 4G 起步。
如果合同量不大,2 核 4G 足够跑通流程;
要本地加载开源模型,则至少 8G 内存并考虑 GPU 机型。

准备服务器和基础环境

登录服务器后,先更新系统并安装 Python 虚拟环境和常用工具:

sudo apt update && sudo apt upgrade -y
sudo apt install -y python3 python3-venv python3-pip git nginx

验证 Python 版本:

python3 --version

输出应为 Python 3.10 以上。
接着创建项目目录并建立虚拟环境:

mkdir -p /opt/ai-contract && cd /opt/ai-contract
python3 -m venv venv
source venv/bin/activate

激活后命令行前会出现 (venv) 标识,后续安装依赖都在这个环境里进行。

安装依赖并配置模型接口

合同解析常用 pdfplumber 和 python-docx,服务框架用 fastapi 和 uvicorn。
在虚拟环境中执行:

pip install fastapi uvicorn pdfplumber python-docx requests

项目需要一个配置文件来存放模型 API 地址和密钥。
新建 config.py,写入:

API_URL = "https://你的模型服务地址/v1/chat/completions"
API_KEY = "你的API密钥"

不要把密钥提交到公开仓库,建议用环境变量读取。
在启动服务前设置:

export CONTRACT_API_KEY="你的API密钥"

然后在代码中用 os.getenv("CONTRACT_API_KEY") 获取。

编写最小可用的审查接口

新建 main.py,实现一个接收合同文件、提取文本并调用模型返回审查要点的接口。
核心逻辑如下:

from fastapi import FastAPI, UploadFile
import pdfplumber, requests, os

app = FastAPI()

@app.post("/review")
async def review(file: UploadFile):
    text = ""
    with pdfplumber.open(file.file) as pdf:
        for page in pdf.pages:
            text += page.extract_text() or ""
    resp = requests.post(
        os.getenv("API_URL"),
        headers={"Authorization": f"Bearer {os.getenv('CONTRACT_API_KEY')}"},
        json={"model": "你的模型名", "messages": [{"role": "user", "content": f"审查以下合同风险点:{text[:3000]}"}]},
        timeout=60
    )
    return {"result": resp.json()}

启动服务:

uvicorn main:app --host 0.0.0.0 --port 8000

看到 Uvicorn running on http://0.0.0.0:8000 说明服务已启动。
用 curl 上传一份测试 PDF 验证:

curl -X POST http://127.0.0.1:8000/review -F "file=@test.pdf"

返回 JSON 中包含模型输出即表示链路通。

容易踩坑的几个地方

  • 上传大文件超时:Nginx 默认限制请求体大小,需在站点配置中加 client_max_body_size 20m;,否则会报 413。
  • PDF 提取为空:扫描件没有文本层,extract_text() 返回空字符串。需要先确认合同是否为扫描件,若是则要接入 OCR,不能直接调模型。
  • 模型接口 401:优先检查密钥是否带 Bearer 前缀、密钥是否过期。用 curl 直接请求模型接口排除代码问题。
  • 服务重启后失效:uvicorn 前台启动关闭终端即停止。生产环境建议用 systemd 托管,或至少用 nohup 后台运行并记录日志。

验证部署是否真正可用

完成启动后,不要只看进程在不在,按下面三项检查:

  1. 本机 curl http://127.0.0.1:8000/docs 能打开接口文档页面。
  2. 上传一份纯文本 PDF,返回结果中包含风险点描述,而不是空数组或报错。
  3. 查看服务日志 journalctl -u 你的服务名 -f 或 nohup.out,确认没有持续报错。

三项都通过,说明基础版 AI 合同审查系统已可对外提供测试。
后续再按需增加用户鉴权、审查规则库和结果存储。

常见疑问

没有 GPU 服务器能跑吗? 可以。
本文方案调用远程模型 API,服务器只负责解析和转发,2 核 4G 即可。
只有本地加载开源模型时才需要 GPU 或大内存。

合同内容会不会泄露? 取决于模型 API 提供方的数据政策。
涉及敏感合同时,应选择支持数据不落盘或私有化部署的方案,并在上传前脱敏。

支持 Word 合同吗? 支持,把 pdfplumber 换成 python-docx 读取段落文本即可,接口结构不变。

整套流程的关键是把文件解析、模型调用和结果返回拆开验证,哪一步报错就单独测哪一步,不要一上来就排查全部环节。

分享到:
上一篇
零基础用大模型搭一个法律问答助手:从API配置到效果验证
下一篇
AI法律咨询配置实战:从零搭建本地知识库问答系统
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意