Spaces:
Sleeping
Sleeping
File size: 3,212 Bytes
7d67a69 4996b79 7d67a69 604ea61 7d67a69 604ea61 7d67a69 4996b79 7d67a69 97a461c 7d67a69 14640e3 7d67a69 14640e3 7d67a69 14640e3 7d67a69 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | # 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" |