Spaces:
Sleeping
Sleeping
| # config.py | |
| # 此檔案負責系統配置、環境變數載入和全域常數定義 | |
| # 包含 SMTP 設定、Resend 設定、系統權重、動作映射等 | |
| import os | |
| from dotenv import load_dotenv | |
| # 載入環境變數 | |
| load_dotenv() | |
| # 測試用固定郵箱 | |
| # 測試用固定郵箱:HF 上若未設定 Secret,以此為預設收件人 | |
| FIXED_TEST_EMAIL = os.getenv("FIXED_TEST_EMAIL", "h6696201@gmail.com").strip() | |
| # SMTP 設定 | |
| SMTP_CONFIG = { | |
| "host": os.getenv("SMTP_HOST", "").strip(), | |
| "port": int(os.getenv("SMTP_PORT", "587").strip() or "587"), | |
| "username": os.getenv("SMTP_USERNAME", "").strip(), | |
| "password": os.getenv("SMTP_PASSWORD", "").strip(), | |
| "from": os.getenv("SMTP_FROM", "").strip() or os.getenv("SMTP_USERNAME", "").strip(), | |
| # APP_BASE_URL 未設定時預設為 HF Space URL(用於驗證信中的點擊連結) | |
| # 本地開發請在 .env 中設定 APP_BASE_URL=http://localhost:7860 | |
| "base_url": os.getenv("APP_BASE_URL", "").strip() or "https://my-project-team-infosecai-finalproj.hf.space" | |
| } | |
| # Resend 設定 | |
| RESEND_API_KEY = os.getenv("RESEND_API_KEY", "").strip() | |
| # 郵件發送方式: "resend"(優先,適合 HF 部署)或 "smtp"(備援) | |
| # 若 RESEND_API_KEY 有設定則自動使用 resend,否則 fallback 到 smtp | |
| EMAIL_PROVIDER = "resend" if os.getenv("RESEND_API_KEY", "").strip() else "smtp" | |
| # 系統權重設定 | |
| SYSTEM_WEIGHTS = { | |
| "ow": 75.0, "tw": 80.0, "iw": 65.0, | |
| "dw": 45.0, "gw": 50.0, "fw": 60.0 | |
| } | |
| # 動作映射:將中文系統名稱映射到代碼 | |
| ACTION_MAP = { | |
| "教務系統: 期末網路教學評量": "click_eval_system", | |
| "教務系統: 期末網路預選系統": "click_pre_select_system", | |
| "教務系統: 開學後加退選系統": "click_add_drop_system", | |
| "教務系統: 北科i學園PLUS": "click_istudy", | |
| "教務系統: 學生證掛失及補發系統": "click_card_loss", | |
| "教務系統: 課程系統": "click_course_system", | |
| "教務系統: 學業成績查詢系統": "click_score_query", | |
| "學務系統: 學生請假系統": "click_leave_system", | |
| "學務系統: 學生宿舍登錄(抽籤)系統": "click_dorm_system", | |
| "學務系統: 獎助學金申請系統": "click_scholarship", | |
| "資訊服務: 網路郵局 WebMail": "click_webmail", | |
| "資訊服務: 北科軟體雲": "click_vdesk", | |
| "惡意測試: 嘗試偷改成績 (SQL Injection)": "malicious_sql_injection" | |
| } | |
| # 用戶資料庫 | |
| USER_DB = { | |
| "student": ["1234", "學生", "Alex Wang"], | |
| "student2": ["1234", "學生", "Bella Lin"], | |
| "admin": ["1234", "管理", "Charles Chen"], | |
| "admin2": ["1234", "管理", "David Lee"] | |
| } | |
| # 伺服器設定 | |
| SERVER_CONFIG = { | |
| "host": "0.0.0.0", | |
| "port": int(os.getenv("PORT", 7860)) | |
| } | |
| # 字型檔案名稱 | |
| FONT_PATH = 'SimHei.ttf' | |
| # 模型檔案名稱 | |
| BASE_DIR = os.path.dirname(os.path.abspath(__file__)) | |
| MODEL_FILES = { | |
| "label_encoder": os.path.join(BASE_DIR, "le_action.pkl"), | |
| "baseline_logs": os.path.join(BASE_DIR, "baseline_logs.csv") | |
| } | |
| # Hugging Face 設定 | |
| DATASET_REPO_ID = os.getenv("DATASET_REPO_ID", "My-Project-Team/Digital-Bodyguard-Dataset") | |
| # 環境變數檢查 | |
| ENABLE_HDBSCAN = os.getenv("ENABLE_HDBSCAN", "1").strip() == "1" |