一、前言
由於 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 討論或原作者的更新內容。本倉庫主要提供中文使用體驗,並不替代原倉庫的官方維護。