DeepSeek OCR+Fast API 容器化部署傻瓜包

一、前言

由于 DeepSeek-OCR 底层依赖的 LLVM 环境目前不支持 Windows 原生平台,因此在 Windows 系统上无法直接进行本地安装和部署。为了保证可用性与兼容性,DeepSeek-OCR 主要通过以下方式运行:

  • Docker
  • WSL(Windows Subsystem for Linux)
  • 原生 Linux 环境

为了便于在这些环境中快速搭建完整的 OCR 服务,我基于社区已有的 DeepSeek-OCR + FastAPI 项目进行了 Fork,并补充了必要的中文化处理,使其更适合国内开发者理解与使用。本仓库保持原仓库的整体结构与部署方式,仅对后端 API 的中文输出与提示内容做了调整。

二、功能概述

1. OCR 模型

项目使用 DeepSeek-OCR 模型,支持多种图像分辨率和自动切片策略,能够完成普通文本识别、文档结构化输出、图表内容理解等任务。

2. Web 图形界面

前端支持拖拽上传、多种模式选择、模型下载提示以及结果展示。

3. 后端 API

基于 FastAPI 提供统一接口,包括:

  • 文件上传接口 /api/ocr
  • 健康检查接口 /health
  • 自动生成的 Swagger 文档 /docs

4. Docker 化部署

项目使用 Docker Compose 管理,默认包含:

  • deepseek-ocr-api:OCR 推理服务
  • deepseek-ocr-web:前端界面服务
  • HuggingFace 模型缓存 Volume

三、项目结构

复制代码
deepseek-ocr/
├── backend/            # FastAPI 后端
├── frontend/           # 前端界面(Nginx)
├── uploads/            # 上传文件目录
├── outputs/            # OCR 输出结果目录
├── docs/               # 相关文档
└── docker-compose.yml  # 部署配置文件

后端与前端分别拥有独立 Dockerfile,便于镜像构建和后续扩展。


四、系统要求

  • Docker 20.10+
  • Docker Compose 2.0+
  • NVIDIA GPU(如需加速)
  • CUDA 11.8+
  • 至少 8GB 显存(推荐)
  • 10GB 以上磁盘空间(用于模型缓存)

五、部署方式

1. 克隆仓库

复制代码
git clone https://github.com/daibitx/deepSeek-ocr-docker-compose
cd deepSeek-ocr-docker-compose

2. 启动服务

复制代码
docker-compose up -d

3. 访问服务

服务 地址
Web 界面 http://localhost:3000
健康检查 http://localhost:8000/health

首次访问界面时需要根据提示下载模型,也可以使用 Demo 模式进行体验。


六、API 使用示例

/api/ocr 提交图像文件:

复制代码
curl -X POST "http://localhost:8000/api/ocr" \
  -F "file=@image.jpg" \
  -F "mode=markdown"

返回格式示例:

复制代码
{
  "text": "# 标题\n内容......",
  "mode": "markdown",
  "processing_time": 2.5,
  "image_size": [1024, 768],
  "tokens": 2257
}

七、Docker Compose 配置要点

后端 GPU 加速配置示例:

复制代码
deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: 1
          capabilities: [gpu]

模型路径缓存:

复制代码
volumes:
  model_cache:

八、常见问题

1. GPU 未识别

运行:

复制代码
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi

如无法识别,请检查:

  • NVIDIA 驱动
  • nvidia-container-toolkit

2. 模型下载失败

可能原因包括:

  • 网络访问受限
  • HuggingFace 权限问题
  • 磁盘空间不足

3. 显存不足

可在后端调整基础分辨率:

复制代码
BASE_SIZE = 640

九、仓库说明(Fork 说明)

本项目基于以下原始仓库进行 Fork:

本仓库修改内容如下:

  1. 后端 API 返回内容和部分提示信息进行了中文化处理。
  2. 前端界面未进行代码层面的汉化,如需使用中文界面,可依赖浏览器自带翻译功能。
  3. 未修改原仓库的整体逻辑、部署方式及模型流程。

重要说明

如果在部署过程中遇到技术性问题,请优先参考原仓库的说明文档、Issue 讨论或原作者的更新内容。本仓库主要提供中文使用体验,并不替代原仓库的官方维护。