1st_fix_login_issue
This commit is contained in:
261
README.md
Normal file
261
README.md
Normal file
@@ -0,0 +1,261 @@
|
||||
# PANJIT Document Translator
|
||||
|
||||
企業級文件翻譯管理系統,提供 Web 化介面,支援多語言文件翻譯、使用者權限管理、任務排隊處理及成本追蹤功能。
|
||||
|
||||
## 功能特色
|
||||
|
||||
- 🔐 **LDAP 認證**:整合公司 AD 帳號系統
|
||||
- 📄 **多格式支援**:支援 DOCX、PDF、PPTX、XLSX 等格式
|
||||
- 🌐 **多語言翻譯**:支援 12+ 種語言互譯
|
||||
- ⚡ **非同步處理**:使用 Celery 任務佇列
|
||||
- 💰 **成本追蹤**:即時記錄 API 使用成本
|
||||
- 📊 **統計報表**:完整的使用量分析
|
||||
- 📧 **通知系統**:SMTP 郵件通知
|
||||
- 🛡️ **權限管理**:使用者資料隔離
|
||||
- 🔍 **即時監控**:系統健康狀態檢查
|
||||
|
||||
## 技術架構
|
||||
|
||||
### 後端
|
||||
- **Python 3.8+** - 主要開發語言
|
||||
- **Flask 3.0** - Web 框架
|
||||
- **SQLAlchemy** - ORM 資料庫操作
|
||||
- **Celery** - 非同步任務處理
|
||||
- **Redis** - 快取與訊息佇列
|
||||
- **MySQL** - 主要資料庫
|
||||
- **LDAP3** - AD 認證
|
||||
|
||||
### 前端(規劃中)
|
||||
- **Vue 3** - 前端框架
|
||||
- **Element Plus** - UI 組件庫
|
||||
- **Vite** - 建置工具
|
||||
|
||||
## 快速開始
|
||||
|
||||
### 環境需求
|
||||
|
||||
- Python 3.8 或更高版本
|
||||
- Redis Server
|
||||
- MySQL Server(使用現有環境)
|
||||
- Git
|
||||
|
||||
### 安裝步驟
|
||||
|
||||
1. **下載專案**
|
||||
```bash
|
||||
cd C:\Users\EGG\WORK\data\user_scrip\TOOL\Document_translator_V2
|
||||
```
|
||||
|
||||
2. **配置環境變數**
|
||||
```bash
|
||||
copy .env.example .env
|
||||
# 編輯 .env 檔案設定您的環境變數
|
||||
```
|
||||
|
||||
3. **建立 API 配置檔案**
|
||||
```bash
|
||||
# 建立 api.txt 檔案並設定 Dify API
|
||||
echo base_url:YOUR_DIFY_API_BASE_URL > api.txt
|
||||
echo api:YOUR_DIFY_API_KEY >> api.txt
|
||||
```
|
||||
|
||||
4. **啟動開發環境**
|
||||
```bash
|
||||
# Windows
|
||||
start_dev.bat
|
||||
|
||||
# 或手動啟動
|
||||
python -m venv venv
|
||||
venv\Scripts\activate
|
||||
pip install -r requirements.txt
|
||||
python app.py
|
||||
```
|
||||
|
||||
5. **啟動 Celery Worker**(另開視窗)
|
||||
```bash
|
||||
venv\Scripts\activate
|
||||
celery -A app.celery worker --loglevel=info --pool=solo
|
||||
```
|
||||
|
||||
### 系統訪問
|
||||
|
||||
- **主應用程式**: http://127.0.0.1:5000
|
||||
- **API 文檔**: http://127.0.0.1:5000/api
|
||||
- **健康檢查**: http://127.0.0.1:5000/api/v1/health
|
||||
|
||||
## API 文檔
|
||||
|
||||
### 認證相關
|
||||
|
||||
| 端點 | 方法 | 描述 | 認證 |
|
||||
|------|------|------|------|
|
||||
| `/api/v1/auth/login` | POST | 使用者登入 | - |
|
||||
| `/api/v1/auth/logout` | POST | 使用者登出 | ✓ |
|
||||
| `/api/v1/auth/me` | GET | 取得當前使用者 | ✓ |
|
||||
|
||||
### 檔案管理
|
||||
|
||||
| 端點 | 方法 | 描述 | 認證 |
|
||||
|------|------|------|------|
|
||||
| `/api/v1/files/upload` | POST | 上傳檔案 | ✓ |
|
||||
| `/api/v1/files/{uuid}/download/{lang}` | GET | 下載翻譯檔案 | ✓ |
|
||||
| `/api/v1/files/supported-formats` | GET | 支援的檔案格式 | - |
|
||||
|
||||
### 任務管理
|
||||
|
||||
| 端點 | 方法 | 描述 | 認證 |
|
||||
|------|------|------|------|
|
||||
| `/api/v1/jobs` | GET | 取得任務列表 | ✓ |
|
||||
| `/api/v1/jobs/{uuid}` | GET | 任務詳細資訊 | ✓ |
|
||||
| `/api/v1/jobs/{uuid}/retry` | POST | 重試失敗任務 | ✓ |
|
||||
|
||||
### 管理功能
|
||||
|
||||
| 端點 | 方法 | 描述 | 認證 |
|
||||
|------|------|------|------|
|
||||
| `/api/v1/admin/stats` | GET | 系統統計 | 管理員 |
|
||||
| `/api/v1/admin/jobs` | GET | 所有任務 | 管理員 |
|
||||
| `/api/v1/admin/users` | GET | 使用者列表 | 管理員 |
|
||||
|
||||
## 測試
|
||||
|
||||
### 執行測試
|
||||
|
||||
```bash
|
||||
# Windows
|
||||
run_tests.bat
|
||||
|
||||
# 或手動執行
|
||||
pytest tests/ -v
|
||||
pytest tests/ --cov=app --cov-report=html
|
||||
```
|
||||
|
||||
### 測試覆蓋率
|
||||
|
||||
測試覆蓋率報告會生成到 `htmlcov/index.html`,目標覆蓋率 > 80%。
|
||||
|
||||
## 資料庫結構
|
||||
|
||||
### 主要資料表
|
||||
|
||||
- `dt_users` - 使用者資訊
|
||||
- `dt_translation_jobs` - 翻譯任務
|
||||
- `dt_job_files` - 檔案記錄
|
||||
- `dt_translation_cache` - 翻譯快取
|
||||
- `dt_api_usage_stats` - API 使用統計
|
||||
- `dt_system_logs` - 系統日誌
|
||||
|
||||
## 部署指南
|
||||
|
||||
### 開發環境
|
||||
|
||||
使用提供的 `start_dev.bat` 腳本快速啟動開發環境。
|
||||
|
||||
### 生產環境
|
||||
|
||||
1. **安裝 Gunicorn**
|
||||
```bash
|
||||
pip install gunicorn
|
||||
```
|
||||
|
||||
2. **配置環境變數**
|
||||
```bash
|
||||
export FLASK_ENV=production
|
||||
export DATABASE_URL=your_production_db_url
|
||||
```
|
||||
|
||||
3. **啟動應用程式**
|
||||
```bash
|
||||
gunicorn -w 4 -b 0.0.0.0:5000 app:app
|
||||
```
|
||||
|
||||
4. **啟動 Celery**
|
||||
```bash
|
||||
celery -A app.celery worker -D
|
||||
celery -A app.celery beat -D
|
||||
```
|
||||
|
||||
## 監控與維護
|
||||
|
||||
### 健康檢查
|
||||
|
||||
系統提供完整的健康檢查端點:
|
||||
|
||||
- **基本檢查**: `/api/v1/health/ping`
|
||||
- **完整檢查**: `/api/v1/health`
|
||||
- **系統指標**: `/api/v1/health/metrics`
|
||||
|
||||
### 日誌管理
|
||||
|
||||
- **應用日誌**: `logs/app.log`
|
||||
- **系統日誌**: 儲存在資料庫 `dt_system_logs` 表
|
||||
- **日誌等級**: DEBUG, INFO, WARNING, ERROR, CRITICAL
|
||||
|
||||
### 自動清理
|
||||
|
||||
系統會自動執行以下清理任務:
|
||||
|
||||
- **每日凌晨 2 點**: 清理 7 天以上的舊檔案
|
||||
- **每日早上 8 點**: 發送管理員報告
|
||||
- **手動清理**: 通過管理員 API 執行
|
||||
|
||||
## 安全性
|
||||
|
||||
- ✅ LDAP 認證整合
|
||||
- ✅ 使用者工作隔離
|
||||
- ✅ 檔案權限控制
|
||||
- ✅ SQL 注入防護
|
||||
- ✅ 速率限制
|
||||
- ✅ 敏感資料保護
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 常見問題
|
||||
|
||||
1. **Redis 連線失敗**
|
||||
- 檢查 Redis 服務是否運行
|
||||
- 確認 `REDIS_URL` 設定正確
|
||||
|
||||
2. **LDAP 認證失敗**
|
||||
- 檢查 LDAP 設定參數
|
||||
- 確認網路連線正常
|
||||
|
||||
3. **檔案上傳失敗**
|
||||
- 檢查 `UPLOAD_FOLDER` 權限
|
||||
- 確認檔案大小限制
|
||||
|
||||
4. **翻譯任務卡住**
|
||||
- 檢查 Celery Worker 狀態
|
||||
- 查看 Dify API 連線
|
||||
|
||||
### 除錯模式
|
||||
|
||||
```bash
|
||||
export FLASK_DEBUG=true
|
||||
export LOG_LEVEL=DEBUG
|
||||
python app.py
|
||||
```
|
||||
|
||||
## 貢獻指南
|
||||
|
||||
1. Fork 專案
|
||||
2. 建立功能分支
|
||||
3. 提交變更
|
||||
4. 執行測試
|
||||
5. 建立 Pull Request
|
||||
|
||||
## 授權條款
|
||||
|
||||
本專案僅供 PANJIT 公司內部使用。
|
||||
|
||||
## 聯繫資訊
|
||||
|
||||
- **開發團隊**: PANJIT IT Team
|
||||
- **維護人員**: System Administrator
|
||||
- **問題回報**: 請聯繫系統管理員
|
||||
|
||||
---
|
||||
|
||||
**版本**: 1.0.0
|
||||
**建立日期**: 2024-01-28
|
||||
**最後更新**: 2024-01-28
|
Reference in New Issue
Block a user