- Add debug_font_path, demo_docs_dir, e2e_api_base_url to config.py - Fix hardcoded paths in pp_structure_debug.py, create_demo_images.py - Fix hardcoded paths in test files - Update .env.example with new configuration options - Update .gitignore to exclude AI development files (.claude/, openspec/, AGENTS.md, CLAUDE.md) - Add production startup script (start-prod.sh) - Add README.md with project documentation - Add 1panel Docker deployment files (docker-compose.yml, Dockerfiles, nginx.conf) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
162 lines
4.1 KiB
Markdown
162 lines
4.1 KiB
Markdown
# Tool_OCR
|
||
|
||
智能文檔 OCR 處理系統,支援 PDF/圖片識別、版面分析、表格提取及翻譯功能。
|
||
|
||
## 功能特點
|
||
|
||
- **多格式支援**:PDF、PNG、JPG、BMP、TIFF、DOC/DOCX、PPT/PPTX
|
||
- **版面保留 OCR**:使用 PP-StructureV3 進行版面分析,保留原始文檔結構
|
||
- **表格識別**:自動識別表格結構並提取內容
|
||
- **多語言支援**:中文(簡/繁)、英文、日文、韓文
|
||
- **翻譯功能**:整合 DIFY API 進行文檔翻譯
|
||
- **批次處理**:支援多檔案同時上傳處理
|
||
- **多種匯出格式**:TXT、JSON、Markdown、Excel、PDF
|
||
|
||
## 系統需求
|
||
|
||
- Python 3.10+
|
||
- Node.js 18+
|
||
- MySQL 8.0+
|
||
- CUDA 11.8+(GPU 加速,可選)
|
||
|
||
## 快速開始
|
||
|
||
### 1. 環境設置
|
||
|
||
```bash
|
||
# 執行開發環境設置腳本
|
||
./setup_dev_env.sh
|
||
```
|
||
|
||
此腳本會自動:
|
||
- 檢測 GPU 並安裝對應的 PyTorch/PaddlePaddle
|
||
- 建立 Python 虛擬環境並安裝依賴
|
||
- 安裝 Node.js 及前端依賴
|
||
- 執行資料庫遷移
|
||
|
||
### 2. 配置環境變數
|
||
|
||
```bash
|
||
# 複製範本
|
||
cp .env.example .env.local
|
||
|
||
# 編輯配置
|
||
nano .env.local
|
||
```
|
||
|
||
必要配置項:
|
||
- `MYSQL_HOST`、`MYSQL_PORT`、`MYSQL_USER`、`MYSQL_PASSWORD`、`MYSQL_DATABASE`
|
||
- `SECRET_KEY`(生產環境請使用隨機字串)
|
||
- `DIFY_BASE_URL`、`DIFY_API_KEY`(翻譯功能)
|
||
|
||
### 3. 啟動服務
|
||
|
||
**開發環境**:
|
||
```bash
|
||
./start.sh # 啟動全部服務
|
||
./start.sh backend # 只啟動後端
|
||
./start.sh frontend # 只啟動前端
|
||
./start.sh --stop # 停止服務
|
||
./start.sh --status # 查看狀態
|
||
```
|
||
|
||
**生產環境**:
|
||
```bash
|
||
./start-prod.sh # 啟動全部服務(多 worker)
|
||
./start-prod.sh --stop # 停止服務
|
||
```
|
||
|
||
### 4. 存取服務
|
||
|
||
- 前端介面:http://localhost:5173(開發)/ http://localhost:12010(生產)
|
||
- API 文件:http://localhost:8000/docs
|
||
- 健康檢查:http://localhost:8000/health
|
||
|
||
## 專案結構
|
||
|
||
```
|
||
Tool_OCR/
|
||
├── backend/ # 後端 FastAPI 應用
|
||
│ ├── app/
|
||
│ │ ├── api/ # API 路由
|
||
│ │ ├── core/ # 核心配置
|
||
│ │ ├── models/ # 資料模型
|
||
│ │ ├── schemas/ # Pydantic schemas
|
||
│ │ └── services/ # 業務邏輯
|
||
│ ├── tests/ # 測試檔案
|
||
│ └── alembic/ # 資料庫遷移
|
||
├── frontend/ # 前端 React 應用
|
||
│ ├── src/
|
||
│ │ ├── components/ # React 元件
|
||
│ │ ├── pages/ # 頁面元件
|
||
│ │ ├── services/ # API 服務
|
||
│ │ └── i18n/ # 國際化
|
||
│ └── public/ # 靜態資源
|
||
├── .env.example # 環境變數範本
|
||
├── start.sh # 開發環境啟動腳本
|
||
├── start-prod.sh # 生產環境啟動腳本
|
||
└── setup_dev_env.sh # 開發環境設置腳本
|
||
```
|
||
|
||
## 環境變數說明
|
||
|
||
| 變數 | 說明 | 預設值 |
|
||
|------|------|--------|
|
||
| `BACKEND_PORT` | 後端服務埠號 | 8000 |
|
||
| `FRONTEND_PORT` | 前端服務埠號 | 5173(開發)/ 12010(生產) |
|
||
| `MYSQL_*` | 資料庫連線設定 | - |
|
||
| `SECRET_KEY` | JWT 簽名金鑰 | - |
|
||
| `DIFY_BASE_URL` | DIFY API 位址 | - |
|
||
| `DIFY_API_KEY` | DIFY API 金鑰 | - |
|
||
| `LOG_LEVEL` | 日誌等級 | INFO |
|
||
|
||
完整配置請參考 `.env.example`。
|
||
|
||
## API 文件
|
||
|
||
啟動後端服務後,存取 http://localhost:8000/docs 查看 Swagger API 文件。
|
||
|
||
主要端點:
|
||
- `POST /api/v2/upload/` - 上傳檔案
|
||
- `POST /api/v2/tasks/{task_id}/start` - 開始處理
|
||
- `GET /api/v2/tasks/{task_id}` - 查詢任務狀態
|
||
- `GET /api/v2/tasks/{task_id}/download/{format}` - 下載結果
|
||
|
||
## 開發指南
|
||
|
||
### 後端開發
|
||
|
||
```bash
|
||
# 啟動虛擬環境
|
||
source venv/bin/activate
|
||
|
||
# 執行測試
|
||
cd backend
|
||
pytest tests/ -v
|
||
|
||
# 執行資料庫遷移
|
||
alembic upgrade head
|
||
|
||
# 新增遷移
|
||
alembic revision --autogenerate -m "description"
|
||
```
|
||
|
||
### 前端開發
|
||
|
||
```bash
|
||
cd frontend
|
||
|
||
# 開發模式
|
||
npm run dev
|
||
|
||
# 建置
|
||
npm run build
|
||
|
||
# 型別檢查
|
||
npx tsc --noEmit
|
||
```
|
||
|
||
## 授權
|
||
|
||
私有專案,僅供內部使用。
|