Add FastAPI backend for energy trading system
Implements FastAPI backend with ML model support for energy trading, including price prediction models and RL-based battery trading policy. Features dashboard, trading, backtest, and settings API routes with WebSocket support for real-time updates.
This commit is contained in:
48
backend/app/config.py
Normal file
48
backend/app/config.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||
from pathlib import Path
|
||||
from typing import List, Union
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
APP_NAME: str = "Energy Trading API"
|
||||
APP_VERSION: str = "1.0.0"
|
||||
DEBUG: bool = True
|
||||
|
||||
HOST: str = "0.0.0.0"
|
||||
PORT: int = 8000
|
||||
|
||||
DATA_PATH: str = "~/energy-test-data/data/processed"
|
||||
DATA_PATH_RESOLVED: Path = Path(DATA_PATH).expanduser()
|
||||
|
||||
CORS_ORIGINS: Union[str, List[str]] = [
|
||||
"http://localhost:3000",
|
||||
"http://localhost:5173",
|
||||
]
|
||||
|
||||
WS_HEARTBEAT_INTERVAL: int = 30
|
||||
|
||||
CELERY_BROKER_URL: str = "redis://localhost:6379/0"
|
||||
CELERY_RESULT_BACKEND: str = "redis://localhost:6379/0"
|
||||
|
||||
MODELS_PATH: str = "models"
|
||||
RESULTS_PATH: str = "results"
|
||||
|
||||
BATTERY_MIN_RESERVE: float = 0.10
|
||||
BATTERY_MAX_CHARGE: float = 0.90
|
||||
|
||||
ARBITRAGE_MIN_SPREAD: float = 5.0
|
||||
MINING_MARGIN_THRESHOLD: float = 5.0
|
||||
|
||||
ML_PREDICTION_HORIZONS: List[int] = [1, 5, 15, 60]
|
||||
ML_FEATURE_LAGS: List[int] = [1, 5, 10, 15, 30, 60]
|
||||
|
||||
model_config = SettingsConfigDict(env_file=".env", case_sensitive=True, env_ignore_empty=True)
|
||||
|
||||
@property
|
||||
def cors_origins_list(self) -> List[str]:
|
||||
if isinstance(self.CORS_ORIGINS, str):
|
||||
return [origin.strip() for origin in self.CORS_ORIGINS.split(",")]
|
||||
return self.CORS_ORIGINS if isinstance(self.CORS_ORIGINS, list) else []
|
||||
|
||||
|
||||
settings = Settings()
|
||||
Reference in New Issue
Block a user