# PANJIT 文件翻譯系統 ## 專案簡介 PANJIT 文件翻譯系統是一個企業級的多語言文件翻譯平台,支持多種文件格式的自動翻譯。系統採用 Flask + Vue.js 架構,整合 LDAP 認證、Celery 異步處理、通知系統等企業功能。 ### 主要功能 - **多格式翻譯**:支援 Word (.docx)、PowerPoint (.pptx)、Excel (.xlsx)、PDF 文件翻譯 - **多語言支援**:支援繁體中文、簡體中文、英語、日語、韓語、越南語等 - **LDAP 認證**:整合企業 Active Directory 用戶系統 - **異步處理**:使用 Celery + Redis 處理翻譯任務 - **即時通知**:WebSocket 即時狀態更新 + 郵件通知 - **檔案管理**:支援單檔下載、批量下載、合併檔案下載 - **管理後台**:系統統計、用戶管理等功能 ## 技術架構 **後端** - Python 3.8+ - Flask 3.0 + SQLAlchemy 2.0 - MySQL 資料庫 - Celery 4.5 + Redis - LDAP3 認證 - Socket.IO 即時通信 **前端** - Vue.js 3.0 + Composition API - Element Plus UI 框架 - Pinia 狀態管理 - Vite 建置工具 ## 系統需求 - Python 3.8+ - Node.js 16+ - Redis Server - MySQL 資料庫(已配置) - Windows 10+ 或 Linux 系統 ## 快速啟動 ### 開發環境 1. **克隆專案** ```bash cd C:\Users\EGG\WORK\data\user_scrip\TOOL\Document_translator_V2 ``` 2. **後端啟動** ```bash # 使用提供的啟動腳本 start_dev.bat # 或手動啟動 python -m venv venv venv\Scripts\activate pip install -r requirements.txt python app.py ``` 3. **前端啟動**(另開命令視窗) ```bash cd frontend npm install npm run dev # 或使用批次檔 start_frontend.bat ``` 4. **Celery Worker 啟動**(另開命令視窗) ```bash venv\Scripts\activate celery -A app.celery worker --loglevel=info --pool=solo # 或使用批次檔 start_celery_worker.bat ``` ### 系統訪問 - **前端界面**: http://127.0.0.1:5173 (開發模式) - **後端 API**: http://127.0.0.1:12010 (生產模式) - **API 文檔**: http://127.0.0.1:12010/api - **健康檢查**: http://127.0.0.1:12010/api/v1/health ## 專案結構 ``` Document_translator_V2/ ├── app/ # 後端應用 │ ├── api/ # API 路由 │ ├── models/ # 資料模型 │ ├── services/ # 業務邏輯 │ ├── tasks/ # Celery 任務 │ └── utils/ # 工具函數 ├── frontend/ # 前端應用 │ ├── src/ │ │ ├── components/ # Vue 組件 │ │ ├── views/ # 頁面視圖 │ │ ├── stores/ # Pinia 狀態 │ │ └── utils/ # 工具函數 │ └── package.json ├── uploads/ # 檔案上傳目錄 ├── logs/ # 日誌目錄 ├── app.py # 主應用入口 ├── celery_app.py # Celery 配置 ├── requirements.txt # Python 依賴 └── .env # 環境變數 ``` ## 配置說明 ### 環境變數 (.env) 系統需要以下環境變數配置: ```env # 資料庫配置 DATABASE_URL=mysql+pymysql://user:pass@host:port/db_name MYSQL_HOST=mysql.theaken.com MYSQL_PORT=33306 MYSQL_USER=A060 MYSQL_DATABASE=db_A060 # LDAP 配置 LDAP_SERVER=panjit.com.tw LDAP_PORT=389 LDAP_BIND_USER_DN=CN=LdapBind,CN=Users,DC=PANJIT,DC=COM,DC=TW # SMTP 配置 SMTP_SERVER=mail.panjit.com.tw SMTP_PORT=25 SMTP_SENDER_EMAIL=todo-system@panjit.com.tw # Redis 配置 REDIS_URL=redis://localhost:6379/0 ``` ### API 配置 (api.txt) 系統使用 Dify API 進行翻譯,需要配置: ``` base_url:YOUR_DIFY_API_BASE_URL api:YOUR_DIFY_API_KEY ``` ## 部署指南 ### Docker 部署 1. **建置映像** ```bash docker build -t panjit-translator . ``` 2. **啟動服務** ```bash docker-compose up -d ``` 3. **檢查狀態** ```bash docker-compose ps docker logs panjit-translator ``` ### 生產環境 1. **使用 Gunicorn 啟動** ```bash pip install gunicorn gunicorn -w 4 -b 0.0.0.0:12010 app:app ``` 2. **前端建置** ```bash cd frontend npm run build ``` 3. **配置 Web 服務器** 將 `frontend/dist` 部署到 Nginx 或 Apache ## API 文檔 ### 認證相關 - `POST /api/v1/auth/login` - 用戶登入 - `POST /api/v1/auth/logout` - 用戶登出 - `GET /api/v1/auth/me` - 獲取當前用戶 ### 檔案上傳 - `POST /api/v1/files/upload` - 上傳檔案 ### 任務管理 - `GET /api/v1/jobs` - 獲取任務列表 - `GET /api/v1/jobs/{uuid}` - 獲取任務詳情 - `POST /api/v1/jobs/{uuid}/retry` - 重試任務 ### 檔案下載 - `GET /api/v1/files/{uuid}/download/{lang}` - 下載指定語言版本 - `GET /api/v1/files/{uuid}/download/batch` - 批量下載 (ZIP) - `GET /api/v1/files/{uuid}/download/combine` - 下載合併檔案 ### 通知系統 - `GET /api/v1/notifications` - 獲取通知列表 - `POST /api/v1/notifications/{id}/read` - 標記已讀 ### 系統管理 - `GET /api/v1/admin/stats` - 系統統計 - `GET /api/v1/health` - 健康檢查 ## 故障排除 ### 常見問題 1. **Redis 連接失敗** - 確認 Redis 服務是否運行 - 檢查 REDIS_URL 設定 2. **資料庫連接失敗** - 確認 MySQL 連接參數 - 檢查網路連接 3. **LDAP 認證失敗** - 確認 LDAP 服務器設定 - 檢查服務帳號權限 4. **檔案上傳失敗** - 檢查 uploads 目錄權限 - 確認磁碟空間充足 ### 日誌查看 ```bash # 應用日誌 tail -f logs/app.log # Celery 日誌 tail -f logs/celery.log # 查看錯誤日誌 grep ERROR logs/app.log ``` ## 維護指南 ### 資料庫維護 ```bash # 備份資料庫 mysqldump -u A060 -p db_A060 > backup_$(date +%Y%m%d).sql # 清理舊檔案(90天前) find uploads/ -mtime +90 -delete ``` ### 日誌清理 ```bash # 清理應用日誌(保留30天) find logs/ -name "*.log" -mtime +30 -delete ``` ## Docker 部署 ### 快速部署 ```bash # 1. 建置 Docker 映像 docker build -t panjit-translator . # 2. 運行容器 docker run -d -p 12010:12010 --name panjit-translator panjit-translator # 3. 檢查服務狀態 docker ps docker logs panjit-translator ``` ### 服務管理 ```bash # 停止服務 docker stop panjit-translator # 啟動服務 docker start panjit-translator # 重啟服務 docker restart panjit-translator ``` ### 部署方式 ```bash # Docker 部署 (推薦) docker build -t panjit-translator . docker run -d -p 12010:12010 --name panjit-translator panjit-translator ``` ## 支援與聯絡 **PANJIT IT Team** - Email: it-support@panjit.com.tw - 內線電話: 2481 - 辦公時間: 週一至週五 9:00-18:00 ## 版本資訊 - **版本**: v2.0.0 - **發布日期**: 2025-09-04 - **維護人員**: PANJIT IT Team ## 授權條款 此軟體為 PANJIT 集團內部使用系統,版權歸 PANJIT 所有,僅供公司內部使用。