# DsOCR-Web **Repository Path**: jspi-aeson/ds-ocr-web ## Basic Information - **Project Name**: DsOCR-Web - **Description**: 使用DeepSeek-OCR模型执行OCR相关任务,拥有API、本地部署两种模式 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-12-11 - **Last Updated**: 2026-10-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: ocr, deepseek ## README

DeepSeek-OCR 可视化系统

中文 | English
## ⚡ 项目简介 本项目是基于 DeepSeek-OCR 的多模态文档解析工具。采用 FastAPI 后端 + React 前端。该工具能够高效地处理 PDF 文档和图片,提供强大的光学字符识别(OCR)功能,支持多语种文字识别、表格解析、图表分析等多种功能。 ### 主要功能 - **多格式文档解析**:支持 PDF、图片等多种格式的文档上传和解析 - **智能 OCR 识别**:基于 DeepSeek-OCR 模型,提供高精度的文字识别 - **版面分析**:智能识别文档版面结构,准确提取内容布局 - **多语种支持**:支持中文、英文等多种语言的文字识别 - **表格&图表解析**:专业的表格识别和图表数据提取功能 - **专业领域图纸识别**:支持各类专业领域图纸的语义识别 - **数据可视化**:支持数据分析可视化图的逆向解析 - **Markdown 转换**:将 PDF 内容转换为结构化的 Markdown 格式 ## 📁 项目结构 ``` ds-ocr-web/ ├── backend/ # FastAPI 后端服务 │ ├── __init__.py │ ├── main.py # FastAPI 应用入口 │ ├── config.py # 配置管理 │ ├── config_loader.py # 配置加载器 │ ├── deepseek_ocr.py # DeepSeek-OCR 核心逻辑 │ ├── file_manager.py # 文件管理 │ ├── inference_runner.py # 推理运行器 │ ├── run_dpsk_ocr_eval_batch.py │ ├── run_dpsk_ocr_image.py │ ├── run_dpsk_ocr_pdf.py │ ├── deepencoder/ # 深度编码器模块 │ │ ├── __init__.py │ │ ├── build_linear.py │ │ ├── clip_sdpa.py │ │ └── sam_vary_sdpa.py │ └── process/ # 处理模块 │ ├── __init__.py │ ├── image_process.py │ └── ngram_norepeat.py ├── frontend/ # React 前端应用 │ ├── index.html │ ├── package.json │ ├── vite.config.ts │ ├── src/ │ │ ├── App.tsx # 主应用组件 │ │ ├── main.tsx # 入口文件 │ │ ├── index.css │ │ ├── config/ │ │ │ └── api.ts # API 配置 │ │ ├── components/ # React 组件 │ │ │ ├── FileExplorer.tsx │ │ │ ├── FilePreview.tsx │ │ │ ├── FileUploader.tsx │ │ │ ├── PromptInput.tsx │ │ │ ├── figma/ │ │ │ │ └── ImageWithFallback.tsx │ │ │ └── ui/ # UI 组件库(shadcn/ui) │ │ └── styles/ │ │ └── globals.css │ └── public/ │ └── gitee.svg ├── workspace/ # 工作目录 │ ├── uploads/ # 上传文件存储 │ ├── results/ # OCR 结果存储 │ └── logs/ # 日志文件 ├── packages/ # 第三方包 ├── requirements.txt # Python 依赖 ├── pyproject.toml # Python 项目配置 ├── install.sh # 安装脚本 ├── start.sh # 启动脚本 └── README.md # 项目说明文档 ``` ## 🚀 使用指南 ### 快速开始 #### 方法一:API 模式(无需 GPU,但解析效果差) **系统要求:** - **操作系统**:Windows、Linux 或 macOS - **Python 版本**:3.10–3.12 - **Node.js**:16+(用于前端) **步骤:** 1. **配置环境变量** ```bash cp .env.example .env ``` 编辑 `.env` 文件,设置: ```env MODE=api SILICONFLOW_API_KEY=sk-你的API密钥 # 可选:自定义模型或API地址 # SILICONFLOW_MODEL=deepseek-ai/DeepSeek-OCR # SILICONFLOW_API_BASE=https://api.siliconflow.cn/v1 # 可选:Temperature 参数(0.0-2.0),默认 0.0(确定性输出),值越大输出越随机 # SILICONFLOW_TEMPERATURE=0.0 ``` 2. **安装后端依赖** ```bash pip install -r requirements.txt # 使用uv uv sync ``` 3. **启动后端服务** > **重要提示**:启动后端服务时,请确保在项目根目录(`ds-ocr-web/`)下运行。 ```bash # 确保在项目根目录下运行 uv run uvicorn backend.main:app --host 0.0.0.0 --port 8002 --reload ``` 4. **启动前端服务** ```bash cd frontend npm install npm run dev ``` 5. **访问应用** 在浏览器中打开前端地址(通常是 `http://localhost:5173`)。上传 PDF 或图片文件,后端会调用硅基流动 DeepSeek-OCR API 进行处理。结果保存在 `workspace/results` 目录,并在前端展示。 ### 使用样例 您可以使用 `public/` 目录中提供的样例图片来测试应用: - 用于测试公式 OCR 功能的样例图片 ![sample.jpg](public/sample.jpg) - 证明 OCR 识别公式效果的图片 ![sample_test.jpg](public/sample_test.jpg) **测试步骤:** 1. 按照上述说明启动后端和前端服务 2. 在浏览器中打开前端地址(`http://localhost:5173`) 3. 上传 `public/` 目录中的任意一张样例图片 4. 等待 OCR 处理完成 5. 在前端界面查看识别结果 #### 方法二:本地模式(推荐,需要 GPU,功能丰富) **系统要求:** - **操作系统**:需要在 Linux 系统下运行 - **显卡要求**:GPU ≥ 7 GB 显存(大图/多页 PDF 建议 16–24 GB) - **兼容性说明**:50 系显卡目前不兼容,请使用其他型号显卡 - **Python 版本**:3.10–3.12(推荐 3.10/3.11) - **CUDA 版本**:11.8 或 12.1/12.2(需与显卡驱动匹配) - **PyTorch**:需安装与 CUDA 匹配的预编译版本 **步骤:** 1. **下载模型权重** 从 Hugging Face 或魔搭社区(ModelScope)下载 DeepSeek-OCR 模型权重: ```bash pip install modelscope mkdir ./deepseek-ocr modelscope download --model deepseek-ai/DeepSeek-OCR --local_dir ./deepseek-ocr ``` 2. **创建虚拟环境** ```bash conda create -n deepseek-ocr python=3.12.9 -y conda activate deepseek-ocr ``` 3. **安装 PyTorch** ```bash pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118 ``` 4. **安装 vLLM 和依赖** ```bash pip install ./packages/vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl pip install -r requirements.txt pip install flash-attn==2.7.3 --no-build-isolation ``` 5. **配置环境变量** ```bash cp .env.example .env ``` 编辑 `.env` 文件,设置: ```env MODE=local MODEL_PATH=/path/to/deepseek-ocr DEVICE_ID=0 MAX_CONCURRENCY=10 ``` 6. **启动服务** > **重要提示**:启动后端服务时,请确保在项目根目录(`ds-ocr-web/`)下运行。 ```bash # 后端(确保在项目根目录下运行) uvicorn backend.main:app --host 0.0.0.0 --port 8002 --reload # 前端(在另一个终端) cd frontend npm install npm run dev ```