beabigegg 273591f201 NO DOCKER
2025-10-02 18:54:30 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:53:41 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00
2025-10-02 18:50:53 +08:00

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)

🚀 快速部署

一鍵自動部署(推薦)

# 執行完整部署腳本
deploy_venv.bat

此腳本會自動完成:

  1. 建立 Python 虛擬環境
  2. 安裝 Python 後端依賴
  3. 安裝前端依賴並建置
  4. 建立必要目錄
  5. 複製前端建置產物

手動部署步驟

# 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)

主要配置項(已預設):

# 服務端口
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_KEYJWT_SECRET_KEY 可自訂金鑰
  • API 配置已內建於 api.txt,無需額外設定

🎬 啟動與停止

啟動所有服務

# 一鍵啟動(推薦)
start_all.bat

會自動啟動 4 個服務,每個在獨立終端視窗:

  1. Redis Server (端口 6379)
  2. Flask Backend (端口 12010)
  3. Celery Worker (任務處理器)
  4. Celery Beat (定時任務)

啟動後自動開啟瀏覽器: http://localhost:12010

分別啟動服務

# 視窗 1: Redis
start_redis.bat

# 視窗 2: 後端
start_backend.bat

# 視窗 3: Worker
start_celery_worker.bat

# 視窗 4: Beat
start_celery_beat.bat

停止所有服務

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

前端核心套件

{
  "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 # 詳細部署手冊

部署驗證

檢查服務狀態

# 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 啟動失敗

# 安裝 Redis (Chocolatey)
choco install redis-64

# 或手動下載
# https://github.com/tporadowski/redis/releases

端口被佔用

# 查找佔用進程
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_KEYJWT_SECRET_KEY
  • 確認資料庫密碼安全性
  • 配置防火牆,僅開放必要端口
  • 定期更新套件依賴
  • 配置日誌輪替
  • 定期備份資料庫和檔案
  • 設定檔案自動清理

📞 技術資訊

系統資訊

  • 版本: Document Translator V2
  • 服務端口: 12010
  • Python: ≥ 3.8
  • Node.js: ≥ 16
  • 核心框架: Flask 3.0, Vue.js 3, Celery 5.3

聯絡資訊


📝 快速指令

# 部署
deploy_venv.bat

# 啟動
start_all.bat

# 停止
stop_all.bat

# 訪問
http://localhost:12010

Description
No description provided
Readme 255 KiB
Languages
Python 61.9%
Vue 24.8%
JavaScript 8%
SCSS 3.4%
Batchfile 1.7%
Other 0.2%