# OCR图片理解模型服务Docker部署手册(GPU版)

# 前言

OCR GPU版和API版区别:

  • 如需CoMi进行图片理解,依赖OCR服务 - API版或GPU版二选一
  • API版需要客户允许连接公有云OCR服务,通过公有云算力提供OCR识别
  • GPU版需客户提供本地GPU算力支持,通过部署本地OCR GPU服务进行识别
程序版本 所需显卡 依赖服务 部署方案 运行模式
OCR Docker GPU版 需要 无需连接公有云 独立服务部署 CoMi→OCR GPU服务
OCR Docker API版 无需 需连接云OCR服务 可与CoMi服务一起部署 CoMI→OCR API服务→云OCR服务

# 一、服务信息

**服务名称:**OCR识别服务

  • **服务功能:**可识别图片、PDF扫描件,生成文字,常用于CoMi知识库上传扫描件后进行OCR识别解析成文字
  • **服务端口:**12841
  • **GPU支持:**是(必须)
  • 架构支持: 标准支持x86_64(amd64)
  • GPU支持: 标准支持NVIDIA GPU,如需昆仑 XPU、海光 DCU、沐曦 GPU、华为昇腾 NPU国产化支持请发起技术服务支持申请单研发评估
  • **依赖CoMi版本:**CoMi V2.0.2及以上
  • 支持产品线: V5产品线A6、A8、G6、A8-N、G6-N (注:V8新一代产品线不适用,V8暂不支持此OCR)

OCR镜像安装包较大(约12G),建议通过云盘提前下载 ocr_gpu_x86.tar.gz ,离线安装:

百度网盘中下载ocr镜像
链接: https://pan.baidu.com/s/19jIO87ldikfdLK41DWyeug?pwd=838s
提取码: 838s

1785234820125.png

什么时候需要部署OCR图片理解模型服务?

用户有大量重要的扫描件、图片需要导入CoMi知识库,此时如果没有OCR服务,会提示:ocr请求失败。

1770278954177.png

# 二、环境要求

# 硬件要求

  • CPU: 4核+
  • 内存: 32G+
  • 磁盘: 100G+(镜像约13G,日志持续增长)
  • 显卡推荐: NVIDIA RTX 4090 * 1(显存 ≥ 16GB)(本手册仅适用于NVIDIA),其它GPU请发技术服务支持申请单项目化评估

# 软件要求

**重要兼容性声明:**当前 PaddleOCR-VL 部署方案及随包提供的 Docker 镜像仅支持 x86_64(amd64)Linux + NVIDIA GPU,暂不支持 ARM64(aarch64) 环境。ARM64 服务器不能直接使用本部署包,修改 Docker Compose 配置也无法解决镜像架构不兼容问题。

  • 操作系统: Ubuntu 22.04(x86_64)
  • Docker Engine: 24.0.7+
  • NVIDIA 驱动: 450.80.02+
  • NVIDIA Container Toolkit: 1.0.0+

说明: 镜像已内置 CUDA 12.8.1 和 cuDNN 运行时,宿主机仅需安装 NVIDIA 驱动和 Container Toolkit。

# 三、环境检查与准备(客户)

需要客户完成如下环境准备:

# 3.1 检查Ubuntu版本和架构

OCR识别服务对 CPU 架构和操作系统版本要求严格:当前部署包仅适配 Ubuntu 22.04 x86_64(amd64)+ NVIDIA GPU,暂不支持 ARM64(aarch64)环境:

# 检查版本信息,确保输出为Ubuntu 22.04.xxx LTS
lsb_release -a

# 检查CPU架构,确保输出为X86_64
uname -a

# 3.2 安装NVIDIA驱动

使用 nvidia-smi 检查GPU驱动情况:

nvidia-smi

如果返回 GPU 信息(型号、驱动版本、显存),说明驱动已安装,可跳过本节。如未安装,参考以下步骤安装:

# 安装驱动管理工具(如安装缓慢,建议先更换国内镜像源)
sudo apt update
sudo apt install -y ubuntu-drivers-common

# 自动检测并安装推荐驱动
sudo ubuntu-drivers autoinstall

# 安装完成后重启系统生效
sudo reboot

# 重启后验证
nvidia-smi

NVIDIA驱动也可以通过 Ubuntu官网文档获取:Install NVIDIA drivers (opens new window)

# 3.3 安装Docker Engine

# 检查docker是否已安装
docker -v

# 查看docker状态
sudo systemctl status docker

如未安装,使用国内镜像源安装:

# 导入Docker官方签名密钥
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加 Docker apt 源(阿里云镜像)
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 设置开机启动
sudo systemctl start docker
sudo systemctl enable docker

# 验证
docker -v

# 3.4 安装NVIDIA Container Toolkit

Docker容器中如需使用GPU驱动,需要安装NVIDIA Container Toolkit:

# 使用中科大镜像源安装
sudo apt-get update && sudo apt-get install -y --no-install-recommends curl gnupg2

curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# 配置 Docker 使用 nvidia runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

# 验证安装
dpkg -l | grep nvidia-container-toolkit

验证GPU在Docker中可用:

# 在线环境
docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

# 离线环境(先执行 4.4 加载镜像后再验证)
docker run --rm --gpus all \
  ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleocr-vl:latest-nvidia-gpu-offline \
  nvidia-smi

# 四、部署步骤

# 4.1 创建部署目录

sudo mkdir -p /data/Seeyon/Comi/ocr/

# 4.2 获取部署包

从百度网盘下载 ocr_gpu.tar.gz,并上传到服务器 /data/Seeyon/Comi/ocr/ 目录:

cd /data/Seeyon/Comi/ocr/

# 解压部署包
tar xzf ocr_gpu.tar.gz

# 进入部署目录
cd ocr_gpu

部署包目录结构:

ocr_gpu/
├── docker-compose.yml       ← 容器编排文件
├── .env.example             ← 配置模板(复制为 .env 后编辑)
├── install.sh               ← 安装脚本
├── start.sh                 ← 启动脚本
├── images.tar.gz            ← 镜像归档(约13GB)
├── ocr_test.png             ← 健康检查测试图片
└── docker/config/           ← 推理后端配置

# 4.3 配置环境变量

# 从模板创建配置文件
cp .env.example .env

# 按需编辑配置(可选)
vi .env

主要可配参数:

参数 默认值 说明
OCR_PROXY_PORT 12841 对外服务端口
GPU_DEVICE 0 GPU设备序号(多卡时修改)
PADDLEOCR_VL_PORT 8800 PaddleOCR后端端口(一般不改)

# 4.4 首次安装

# 普通用户
./install.sh

# 如无docker权限
sudo bash install.sh

脚本自动完成:

  1. 环境检查 — docker / compose / 端口 / 磁盘空间 / 镜像完整性 / NVIDIA驱动 / Container Toolkit
  2. 加载所有镜像(ocr-proxy + PaddleOCR-VL x 2,约 13GB)
  3. 创建日志和数据目录

镜像已内置模型文件,无需联网下载

# 4.5 启动服务

# 普通用户
./start.sh

# 如无docker权限
sudo bash start.sh

# 4.6 验证部署

# 查看所有容器状态
docker compose ps

# 查看日志
docker compose logs -f ocr-proxy

# 测试服务是否正常
curl http://127.0.0.1:12841/ocr/pic/health

预期返回:

{"code":"200","message":"Success","data":{"text_content":["单位"],"backend":"ok"}}

首次启动时,PaddleOCR-VL 需要加载模型到 GPU,启动较慢(约 5-10 分钟)。 可通过 docker compose logs -f paddleocr-vlm-server 查看初始化进度。

# 4.7 上游系统对接

CoMi 或其他上游系统配置 OCR 服务地址为:

http://<服务器IP>:12841/ocr/pic/get_all_text

# 五、常用运维操作

# 停止服务
docker compose down

# 重启服务
docker compose restart

# 查看日志
docker compose logs -f

# 更新镜像(替换 images.tar.gz 后重新执行)
./install.sh
./start.sh

# 修改端口映射

如需修改宿主机端口:

  1. 编辑 .env 文件,修改 OCR_PROXY_PORT 为目标端口
  2. 停止服务:docker compose down
  3. 重新启动:./start.sh
  4. 将上游系统的 OCR 地址更新为新端口

# 六、CoMi配置测试

# 场景一:智能部署工具配置OCR

如果项目上采用智能部署工具部署的CoMi,则通过一体化工具管理控制台修改AI-Manager的配置:

V5产品线仅需修改"OA OCR服务地址"这个配置,将其改成OCR真实地址。

格式为 http://OCR服务地址:OCR端口/ocr/pic/get_all_text

修改配置后,需要重新发布修改后的应用才能生效,具体操作方法详见《智能部署工具手册》 → 修改CoMi配置 章节。

1770276636006.png

到CoMiBuilder本地知识库上传一个扫描件,解析策略勾选“文档图片解析”,等待执行完成,如果扫描件执行完成,并且正常切片则说明OCR服务部署配置成功!

1770278204148.png

# 场景二:Docker部署CoMi场景配置OCR

如果项目上采用Docker部署的CoMi,则修改 comi-install/config/ai-manager/application.yaml 文件:

cd /data/Seeyon/Comi/comi-install
vim config/ai-manager/application.yaml

# 找到 oaOcrUrl: 后面设置成OCR服务正确的地址
# 格式为 http://OCR服务地址:OCR端口/ocr/pic/get_all_text

# 修改保存后重启AI-Manager服务
docker restart comi-builder

1770367857695.png

以上完成后,到管理员系统后台CoMiBuilder测试一下扫描件是否生效,测试方法同场景一。

知识库OCR解析进度可通过AI-Manager日志看到 tail -f volumes/ai-manager/logs/log-info.log

编撰人:het