Spaces:
Sleeping
Sleeping
| """ | |
| backend/config.py | |
| βββββββββββββββββββββββββββββββββββββββββββββ | |
| ConfiguraciΓ³n centralizada del backend. | |
| Variables de entorno, paths y constantes. | |
| βββββββββββββββββββββββββββββββββββββββββββββ | |
| """ | |
| import os | |
| from pathlib import Path | |
| # βββββββββββββββββββββββββββββββββββββββββββββ | |
| # Paths | |
| # βββββββββββββββββββββββββββββββββββββββββββββ | |
| PROJECT_ROOT = Path(__file__).parent.parent | |
| MODELS_DIR = PROJECT_ROOT / "models" | |
| # Model files | |
| XGBOOST_MODEL_PATH = MODELS_DIR / "xgboost.pkl" | |
| LSTM_MODEL_PATH = MODELS_DIR / "lstm.pt" | |
| LOGREG_MODEL_PATH = MODELS_DIR / "logistic_regression.pkl" | |
| SCALER_PATH = MODELS_DIR / "scaler_lr.pkl" | |
| # βββββββββββββββββββββββββββββββββββββββββββββ | |
| # Riot API | |
| # βββββββββββββββββββββββββββββββββββββββββββββ | |
| RIOT_API_KEY: str = os.environ.get("HF_SECRET") | |
| if not RIOT_API_KEY: | |
| raise ValueError("HF_SECRET no estΓ‘ configurado en el entorno") | |
| # Riot API routing | |
| RIOT_REGION = "americas" # Regional routing for Match-V5 | |
| RIOT_PLATFORM = "na1" # Platform routing | |
| RIOT_BASE_URL = f"https://{RIOT_REGION}.api.riotgames.com" | |
| RIOT_PLATFORM_URL = f"https://{RIOT_PLATFORM}.api.riotgames.com" | |
| # βββββββββββββββββββββββββββββββββββββββββββββ | |
| # Model constants (must match training) | |
| # βββββββββββββββββββββββββββββββββββββββββββββ | |
| LSTM_HIDDEN_DIM = 64 | |
| LSTM_DROPOUT = 0.3 | |
| LSTM_MAX_SEQ_LEN = 20 | |
| SEED = 42 | |
| # βββββββββββββββββββββββββββββββββββββββββββββ | |
| # Feature columns (80 features, exact order from training) | |
| # Excludes: match_id, blue_win | |
| # βββββββββββββββββββββββββββββββββββββββββββββ | |
| FEATURE_COLUMNS = [ | |
| "minute", | |
| "blue_totalGold", "red_totalGold", "goldDiff", | |
| "blue_totalXP", "red_totalXP", "xpDiff", | |
| "blue_totalLevel", "red_totalLevel", "levelDiff", | |
| "blue_totalMinions", "red_totalMinions", "minionsDiff", | |
| "blue_totalDmgChamp", "red_totalDmgChamp", "dmgChampDiff", | |
| "blue_totalDmgTaken", "red_totalDmgTaken", "dmgTakenDiff", | |
| "blue_kills", "red_kills", "killsDiff", | |
| "blue_assists", "red_assists", "assistsDiff", | |
| "blue_wardsPlaced", "red_wardsPlaced", "wardsPlacedDiff", | |
| "blue_wardsKilled", "red_wardsKilled", "wardsKilledDiff", | |
| "blue_dragons", "red_dragons", "dragonsDiff", | |
| "blue_barons", "red_barons", "baronsDiff", | |
| "blue_towers", "red_towers", "towersDiff", | |
| "blue_inhibitors", "red_inhibitors", "inhibitorsDiff", | |
| "blue_heralds", "red_heralds", "heraldsDiff", | |
| "blue_grubs", "red_grubs", "grubsDiff", | |
| "first_blood", "first_tower", "first_dragon", "first_baron", | |
| "blue_baron_active", "red_baron_active", | |
| "blue_goldPerMin", "red_goldPerMin", "blue_killsPerMin", | |
| "gold_ratio", "xp_ratio", | |
| "blue_kda", "red_kda", | |
| "goldDiff_3min_delta", "xpDiff_3min_delta", "killsDiff_3min_delta", | |
| "blue_dragons_weighted", "red_dragons_weighted", | |
| "blue_gold_share", | |
| "blue_dmg_efficiency", "red_dmg_efficiency", "dmg_efficiency_diff", | |
| "blue_obj_conversion", "red_obj_conversion", "obj_conversion_diff", | |
| "blue_vision_density", "red_vision_density", "vision_density_diff", | |
| "blue_teamwork_score", "red_teamwork_score", "teamwork_diff", | |
| ] | |