Spaces:
Sleeping
Sleeping
| import os | |
| from pathlib import Path | |
| from typing import Literal | |
| from pydantic import BaseModel, Field | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| class ModelSettings(BaseModel): | |
| name: str = "qwen3.5-27b-fp8" | |
| base_url: str = os.environ["MODAL_QWEN"] | |
| api_key: str = "EMPTY" | |
| temperature: float = 0.3 | |
| max_tokens: int = 4096 | |
| class ModelOption(BaseModel): | |
| name: str | |
| base_url: str | |
| label: str | |
| api_key: str = "EMPTY" | |
| class AppSettings(BaseSettings): | |
| model: ModelSettings = ModelSettings() | |
| model_options: dict[str, ModelOption] = Field( | |
| default_factory=lambda: { | |
| "qwen": ModelOption( | |
| label="Qwen 3.5 27B FP8", | |
| name="qwen3.5-27b-fp8", | |
| base_url=os.environ["MODAL_QWEN"], | |
| ), | |
| "nemotron": ModelOption( | |
| label="Nemotron 3 Nano 30B BF16", | |
| name="nemotron-3-nano-30b-bf16", | |
| base_url=os.environ["MODAL_NEMOTRON"], | |
| ), | |
| } | |
| ) | |
| max_iterations: int = 4 | |
| language: str = "en" | |
| tone: Literal["professional", "concise", "executive"] = "professional" | |
| output_dir: Path = Path("output") | |
| debug: bool = False | |
| model_config = SettingsConfigDict(env_file=".env", env_nested_delimiter="__") | |