NO docker
This commit is contained in:
411
README.md
Normal file
411
README.md
Normal file
@@ -0,0 +1,411 @@
|
||||
# PANJIT Document Translator V2
|
||||
|
||||
## 🎯 系統概述
|
||||
|
||||
企業級文檔翻譯系統,支援多種文檔格式的智能翻譯,包含 OCR 圖像識別和對話上下文連貫性功能。
|
||||
|
||||
### 核心功能
|
||||
- ✅ **多格式支援**:DOCX、DOC、PDF、PPTX、XLSX、XLS 文檔翻譯
|
||||
- ✅ **智能 OCR**:掃描 PDF 自動識別,含圖像預處理增強
|
||||
- ✅ **對話持續性**:維持翻譯上下文,確保長文檔術語一致性
|
||||
- ✅ **多語言輸出**:單語言翻譯檔 + 多語言組合檔
|
||||
- ✅ **混合認證**:API 認證為主,LDAP 備援
|
||||
- ✅ **異步處理**:Celery + Redis 批量任務隊列
|
||||
- ✅ **快取機制**:OCR 快取 + 翻譯快取,避免重複處理
|
||||
|
||||
### 支援的翻譯語言
|
||||
中文(繁體)、中文(簡體)、英文、日文、韓文、法文、德文、西班牙文、俄文、阿拉伯文、葡萄牙文、義大利文、泰文、越南文
|
||||
|
||||
---
|
||||
|
||||
## 📋 系統需求
|
||||
|
||||
### 必要軟體
|
||||
| 軟體 | 版本要求 | 下載位置 |
|
||||
|------|---------|---------|
|
||||
| **Python** | ≥ 3.8 | https://www.python.org/downloads/ |
|
||||
| **Node.js** | ≥ 16.0 | https://nodejs.org/ |
|
||||
| **Redis** | ≥ 5.0 | https://github.com/tporadowski/redis/releases |
|
||||
|
||||
### 硬體需求
|
||||
- **CPU**: 4 核心以上 (推薦)
|
||||
- **記憶體**: ≥ 8GB (推薦 16GB)
|
||||
- **硬碟空間**: ≥ 20GB
|
||||
|
||||
### 網路需求
|
||||
- 可連線至外部 MySQL 資料庫 (mysql.theaken.com:33306)
|
||||
- 可連線至 Dify API (外部翻譯服務)
|
||||
- 可連線至 LDAP 伺服器 (panjit.com.tw:389)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速部署
|
||||
|
||||
### 一鍵自動部署(推薦)
|
||||
|
||||
```batch
|
||||
# 執行完整部署腳本
|
||||
deploy_venv.bat
|
||||
```
|
||||
|
||||
此腳本會自動完成:
|
||||
1. 建立 Python 虛擬環境
|
||||
2. 安裝 Python 後端依賴
|
||||
3. 安裝前端依賴並建置
|
||||
4. 建立必要目錄
|
||||
5. 複製前端建置產物
|
||||
|
||||
### 手動部署步驟
|
||||
|
||||
```batch
|
||||
# 1. 建立虛擬環境
|
||||
setup_venv.bat
|
||||
|
||||
# 2. 安裝 Python 依賴
|
||||
install_python_dependencies.bat
|
||||
|
||||
# 3. 安裝前端依賴並建置
|
||||
install_frontend_dependencies.bat
|
||||
|
||||
# 4. 建立必要目錄
|
||||
mkdir uploads cache logs app\static
|
||||
|
||||
# 5. 複製前端建置產物
|
||||
xcopy /E /I /Y frontend\dist app\static
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 環境配置
|
||||
|
||||
### 1. 環境變數配置 (.env)
|
||||
|
||||
主要配置項(已預設):
|
||||
|
||||
```bash
|
||||
# 服務端口
|
||||
SERVICE_PORT=12010
|
||||
|
||||
# 資料庫配置
|
||||
DATABASE_URL=mysql+pymysql://A060:WLeSCi0yhtc7@mysql.theaken.com:33306/db_A060
|
||||
|
||||
# Redis 配置
|
||||
REDIS_URL=redis://localhost:6379/0
|
||||
|
||||
# LDAP 配置
|
||||
LDAP_SERVER=panjit.com.tw
|
||||
LDAP_PORT=389
|
||||
|
||||
# SMTP 郵件配置
|
||||
SMTP_SERVER=mail.panjit.com.tw
|
||||
SMTP_PORT=25
|
||||
```
|
||||
|
||||
💡 **提示**:
|
||||
- 專案已包含完整的環境配置,可直接使用
|
||||
- 如需修改:`SECRET_KEY` 和 `JWT_SECRET_KEY` 可自訂金鑰
|
||||
- API 配置已內建於 `api.txt`,無需額外設定
|
||||
|
||||
---
|
||||
|
||||
## 🎬 啟動與停止
|
||||
|
||||
### 啟動所有服務
|
||||
|
||||
```batch
|
||||
# 一鍵啟動(推薦)
|
||||
start_all.bat
|
||||
```
|
||||
|
||||
會自動啟動 4 個服務,每個在獨立終端視窗:
|
||||
1. Redis Server (端口 6379)
|
||||
2. Flask Backend (端口 12010)
|
||||
3. Celery Worker (任務處理器)
|
||||
4. Celery Beat (定時任務)
|
||||
|
||||
啟動後自動開啟瀏覽器: http://localhost:12010
|
||||
|
||||
### 分別啟動服務
|
||||
|
||||
```batch
|
||||
# 視窗 1: Redis
|
||||
start_redis.bat
|
||||
|
||||
# 視窗 2: 後端
|
||||
start_backend.bat
|
||||
|
||||
# 視窗 3: Worker
|
||||
start_celery_worker.bat
|
||||
|
||||
# 視窗 4: Beat
|
||||
start_celery_beat.bat
|
||||
```
|
||||
|
||||
### 停止所有服務
|
||||
|
||||
```batch
|
||||
stop_all.bat
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 系統架構
|
||||
|
||||
### 服務組成
|
||||
|
||||
```
|
||||
用戶瀏覽器 (http://localhost:12010)
|
||||
↓
|
||||
Flask Backend (端口 12010)
|
||||
├── API 路由處理
|
||||
├── 靜態檔案服務
|
||||
├── JWT 認證
|
||||
└── 檔案上傳管理
|
||||
↓
|
||||
Redis (端口 6379)
|
||||
├── 訊息佇列
|
||||
├── 任務快取
|
||||
└── 翻譯快取
|
||||
↓
|
||||
Celery Worker ← 處理翻譯任務
|
||||
↓
|
||||
MySQL Database (遠端: mysql.theaken.com:33306)
|
||||
```
|
||||
|
||||
### 端口佔用
|
||||
|
||||
| 服務 | 端口 | 說明 |
|
||||
|------|------|------|
|
||||
| **Flask Backend** | 12010 | 主要 API 服務與前端 |
|
||||
| **Redis** | 6379 | 訊息佇列與快取 |
|
||||
| **MySQL** (遠端) | 33306 | 資料庫 |
|
||||
| **LDAP** (遠端) | 389 | 認證服務 |
|
||||
|
||||
---
|
||||
|
||||
## 📦 技術棧
|
||||
|
||||
### 後端核心套件
|
||||
|
||||
```
|
||||
Flask==3.0.0 # Web 框架
|
||||
Celery==5.3.4 # 異步任務佇列
|
||||
redis==5.0.1 # Redis 客戶端
|
||||
SQLAlchemy==2.0.23 # ORM
|
||||
PyMySQL==1.1.0 # MySQL 驅動
|
||||
PyMuPDF>=1.23.0 # PDF 處理
|
||||
opencv-python-headless==4.8.1.78 # 圖像處理
|
||||
python-docx==1.1.0 # Word 文檔
|
||||
python-pptx==0.6.23 # PowerPoint
|
||||
openpyxl==3.1.2 # Excel
|
||||
ldap3==2.9.1 # LDAP 認證
|
||||
```
|
||||
|
||||
完整清單請參考 `requirements.txt`
|
||||
|
||||
### 前端核心套件
|
||||
|
||||
```json
|
||||
{
|
||||
"vue": "^3.3.4", // Vue.js 3
|
||||
"element-plus": "^2.3.8", // UI 組件庫
|
||||
"axios": "^1.4.0", // HTTP 客戶端
|
||||
"pinia": "^2.1.6", // 狀態管理
|
||||
"echarts": "^5.4.3", // 圖表庫
|
||||
"vite": "^4.4.0" // 建置工具
|
||||
}
|
||||
```
|
||||
|
||||
完整清單請參考 `frontend/package.json`
|
||||
|
||||
---
|
||||
|
||||
## 📂 輸出格式說明
|
||||
|
||||
### 單語言翻譯檔案
|
||||
|
||||
| 輸入格式 | 輸出格式 | 檔名範例 |
|
||||
|---------|---------|---------|
|
||||
| `.docx` | `.docx` | `translated_報告_en_20241002.docx` |
|
||||
| `.pdf` | `.docx` | `translated_文件_ja_20241002.docx` |
|
||||
| `.xlsx` | `.xlsx` | `translated_表格_zh-CN_20241002.xlsx` |
|
||||
| `.pptx` | `.pptx` | `translated_簡報_ko_20241002.pptx` |
|
||||
|
||||
### 組合多語言檔案
|
||||
|
||||
當選擇多個目標語言時,自動產生組合檔案:
|
||||
|
||||
**檔名格式**: `combined_{檔名}_multilang_{timestamp}.{副檔名}`
|
||||
|
||||
**內容結構**:
|
||||
```
|
||||
原文段落1
|
||||
[英文翻譯]
|
||||
[日文翻譯]
|
||||
|
||||
原文段落2
|
||||
[英文翻譯]
|
||||
[日文翻譯]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🗂️ 目錄結構
|
||||
|
||||
```
|
||||
Document_translator_V2_nodocker/
|
||||
│
|
||||
├── app/ # 後端應用程式
|
||||
│ ├── models/ # 資料模型
|
||||
│ ├── api/ # API 路由
|
||||
│ ├── services/ # 業務邏輯
|
||||
│ ├── tasks/ # Celery 任務
|
||||
│ ├── utils/ # 工具函數
|
||||
│ └── static/ # 前端建置產物
|
||||
│
|
||||
├── frontend/ # 前端源碼
|
||||
│ ├── src/ # 源碼
|
||||
│ ├── dist/ # 建置產物
|
||||
│ └── package.json # 依賴清單
|
||||
│
|
||||
├── venv/ # Python 虛擬環境
|
||||
├── uploads/ # 檔案上傳目錄
|
||||
├── cache/ # 快取目錄
|
||||
├── logs/ # 日誌目錄
|
||||
│
|
||||
├── .env # 環境變數
|
||||
├── api.txt # Dify API 配置
|
||||
├── requirements.txt # Python 依賴
|
||||
├── database_schema.sql # 資料庫建置腳本
|
||||
│
|
||||
├── deploy_venv.bat # 一鍵部署
|
||||
├── setup_venv.bat # 建立虛擬環境
|
||||
├── install_python_dependencies.bat
|
||||
├── install_frontend_dependencies.bat
|
||||
│
|
||||
├── start_all.bat # 啟動所有服務
|
||||
├── start_redis.bat
|
||||
├── start_backend.bat
|
||||
├── start_celery_worker.bat
|
||||
├── start_celery_beat.bat
|
||||
├── stop_all.bat # 停止所有服務
|
||||
│
|
||||
├── README.md # 本文件
|
||||
└── README_VENV_DEPLOYMENT.md # 詳細部署手冊
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ 部署驗證
|
||||
|
||||
### 檢查服務狀態
|
||||
|
||||
```batch
|
||||
# Redis
|
||||
redis-cli ping
|
||||
# 預期: PONG
|
||||
|
||||
# 後端 API
|
||||
curl http://localhost:12010/api/health
|
||||
# 預期: {"status":"healthy"}
|
||||
|
||||
# 前端
|
||||
# 開啟瀏覽器: http://localhost:12010
|
||||
```
|
||||
|
||||
### 功能測試
|
||||
|
||||
1. 登入系統 (使用 LDAP 帳號)
|
||||
2. 上傳測試文檔
|
||||
3. 選擇目標語言
|
||||
4. 提交翻譯任務
|
||||
5. 檢查任務狀態
|
||||
6. 下載翻譯結果
|
||||
|
||||
---
|
||||
|
||||
## 🐛 故障排除
|
||||
|
||||
### Redis 啟動失敗
|
||||
|
||||
```batch
|
||||
# 安裝 Redis (Chocolatey)
|
||||
choco install redis-64
|
||||
|
||||
# 或手動下載
|
||||
# https://github.com/tporadowski/redis/releases
|
||||
```
|
||||
|
||||
### 端口被佔用
|
||||
|
||||
```batch
|
||||
# 查找佔用進程
|
||||
netstat -ano | findstr :12010
|
||||
|
||||
# 終止進程
|
||||
taskkill /F /PID <PID>
|
||||
|
||||
# 或停止所有服務
|
||||
stop_all.bat
|
||||
```
|
||||
|
||||
### 資料庫連線失敗
|
||||
|
||||
檢查 `.env` 中資料庫配置,確認網路可連線至 `mysql.theaken.com:33306`
|
||||
|
||||
### 翻譯任務失敗
|
||||
|
||||
1. 檢查 `api.txt` 中 Dify API 配置
|
||||
2. 查看 Celery Worker 終端的錯誤訊息
|
||||
3. 確認網路可連線至 Dify API
|
||||
|
||||
---
|
||||
|
||||
## 🔐 安全建議
|
||||
|
||||
### 生產環境檢查清單
|
||||
|
||||
- [ ] 修改 `SECRET_KEY` 和 `JWT_SECRET_KEY`
|
||||
- [ ] 確認資料庫密碼安全性
|
||||
- [ ] 配置防火牆,僅開放必要端口
|
||||
- [ ] 定期更新套件依賴
|
||||
- [ ] 配置日誌輪替
|
||||
- [ ] 定期備份資料庫和檔案
|
||||
- [ ] 設定檔案自動清理
|
||||
|
||||
---
|
||||
|
||||
## 📞 技術資訊
|
||||
|
||||
### 系統資訊
|
||||
- **版本**: Document Translator V2
|
||||
- **服務端口**: 12010
|
||||
- **Python**: ≥ 3.8
|
||||
- **Node.js**: ≥ 16
|
||||
- **核心框架**: Flask 3.0, Vue.js 3, Celery 5.3
|
||||
|
||||
### 聯絡資訊
|
||||
- **管理員**: ymirliu@panjit.com.tw
|
||||
- **詳細文件**: README_VENV_DEPLOYMENT.md
|
||||
|
||||
---
|
||||
|
||||
## 📝 快速指令
|
||||
|
||||
```batch
|
||||
# 部署
|
||||
deploy_venv.bat
|
||||
|
||||
# 啟動
|
||||
start_all.bat
|
||||
|
||||
# 停止
|
||||
stop_all.bat
|
||||
|
||||
# 訪問
|
||||
http://localhost:12010
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**🎉 完成部署後,系統即可正式使用!**
|
Reference in New Issue
Block a user