yc-bench/src/yc_bench/config.py
2026-02-25 02:16:35 -08:00

44 lines
1.2 KiB
Python

from __future__ import annotations
from dataclasses import dataclass
import os
from .agent.runtime.schemas import RuntimeSettings
@dataclass(frozen=True)
class RuntimeConfig:
model: str
temperature: float
top_p: float
history_keep_rounds: int = 20
def load_runtime_config():
model = os.getenv("YC_BENCH_MODEL", "gpt-5.2")
temperature = float(os.getenv("YC_BENCH_TEMPERATURE", "0"))
top_p = float(os.getenv("YC_BENCH_TOP_P", "1"))
history_keep_rounds = int(os.getenv("YC_BENCH_HISTORY_KEEP_ROUNDS", "20"))
if temperature < 0:
raise ValueError("YC_BENCH_TEMPERATURE must be >= 0")
if top_p <= 0 or top_p > 1:
raise ValueError("YC_BENCH_TOP_P must be in (0, 1]")
if history_keep_rounds < 1:
raise ValueError("YC_BENCH_HISTORY_KEEP_ROUNDS must be >= 1")
return RuntimeConfig(
model=model,
temperature=temperature,
top_p=top_p,
history_keep_rounds=history_keep_rounds,
)
def to_runtime_settings(cfg):
return RuntimeSettings(
model=cfg.model,
temperature=cfg.temperature,
top_p=cfg.top_p,
history_keep_rounds=cfg.history_keep_rounds,
)
__all__ = ["RuntimeConfig", "load_runtime_config", "to_runtime_settings"]