vasanthfeb13's picture
Deploy Main Space
09e8c1e
raw
history blame contribute delete
898 Bytes
"""Configuration helpers for the Gradio UI."""
from __future__ import annotations
from pathlib import Path
import yaml
from pydantic import BaseModel, Field, HttpUrl
class UIConfig(BaseModel):
orchestrator_url: HttpUrl = Field(..., description="Base URL for the orchestrator API")
host: str = Field(default="0.0.0.0", description="Host/IP to bind the Gradio server")
port: int = Field(default=7860, description="Port for the Gradio server")
refresh_interval: float = Field(default=5.0, gt=1.0)
def load_ui_config(path: str | Path) -> UIConfig:
config_path = Path(path).expanduser().resolve()
if not config_path.exists():
raise FileNotFoundError(f"UI config not found: {config_path}")
with config_path.open("r", encoding="utf-8") as handle:
data = yaml.safe_load(handle) or {}
return UIConfig(**data)
__all__ = ["UIConfig", "load_ui_config"]