Files
Hydra-Engine/hydra/config/profiles.py
2026-03-30 13:19:11 +09:00

50 lines
1.0 KiB
Python

from dataclasses import dataclass
@dataclass
class ProfileLimits:
name: str
core_mem_gb: int
redis_mem_gb: int
db_mem_gb: int
cpus: int
ai_enabled: bool
db_backend: str # "sqlite" or "timescaledb"
PROFILES: dict[str, ProfileLimits] = {
"lite": ProfileLimits(
name="lite",
core_mem_gb=2,
redis_mem_gb=1,
db_mem_gb=0,
cpus=2,
ai_enabled=False,
db_backend="sqlite",
),
"pro": ProfileLimits(
name="pro",
core_mem_gb=4,
redis_mem_gb=2,
db_mem_gb=4,
cpus=4,
ai_enabled=True,
db_backend="timescaledb",
),
"expert": ProfileLimits(
name="expert",
core_mem_gb=8,
redis_mem_gb=4,
db_mem_gb=8,
cpus=8,
ai_enabled=True,
db_backend="timescaledb",
),
}
def get_profile(name: str) -> ProfileLimits:
if name not in PROFILES:
raise ValueError(f"Unknown profile '{name}'. Choose: {list(PROFILES)}")
return PROFILES[name]