一、前言
由于 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:
- 原仓库(英文版) :
https://github.com/zademy/deepSeek-ocr-docker-compose - 我维护的仓库(中文增强版) :
https://github.com/daibitx/deepSeek-ocr-docker-compose
本仓库修改内容如下:
- 对 后端 API 返回内容和部分提示信息进行了中文化处理。
- 前端界面未进行代码层面的汉化,如需使用中文界面,可依赖浏览器自带翻译功能。
- 未修改原仓库的整体逻辑、部署方式及模型流程。
重要说明
如果在部署过程中遇到技术性问题,请优先参考原仓库的说明文档、Issue 讨论或原作者的更新内容。本仓库主要提供中文使用体验,并不替代原仓库的官方维护。