feat: consolidate env config and add deployment files

- 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>
This commit is contained in:
egg
2025-12-14 15:02:16 +08:00
parent 858d93155f
commit 86a6633000
31 changed files with 1177 additions and 252 deletions

161
README.md Normal file
View File

@@ -0,0 +1,161 @@
# 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
```
## 授權
私有專案,僅供內部使用。