Spaces:
Running
Running
File size: 1,726 Bytes
e251d62 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | """Runtime configuration for the KORA backend."""
from __future__ import annotations
from functools import lru_cache
from pathlib import Path
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
BASE_DIR = Path(__file__).resolve().parents[2]
class Settings(BaseSettings):
"""Environment-driven settings with safe defaults."""
model_config = SettingsConfigDict(
env_file=str(BASE_DIR / ".env"),
env_file_encoding="utf-8",
extra="ignore",
)
app_name: str = Field(default="KORA AI Backend", alias="APP_NAME")
app_env: str = Field(default="production", alias="APP_ENV")
log_level: str = Field(default="INFO", alias="LOG_LEVEL")
model_name: str = Field(default="ProfessorCEO/KORA-v1", alias="MODEL_NAME")
trust_remote_code: bool = Field(default=True, alias="TRUST_REMOTE_CODE")
low_cpu_mem_usage: bool = Field(default=True, alias="LOW_CPU_MEM_USAGE")
max_input_tokens: int = Field(default=3072, alias="MAX_INPUT_TOKENS")
torch_num_threads: int = Field(default=0, alias="TORCH_NUM_THREADS")
torch_num_interop_threads: int = Field(default=0, alias="TORCH_NUM_INTEROP_THREADS")
default_temperature: float = Field(default=0.7, alias="DEFAULT_TEMPERATURE")
default_top_p: float = Field(default=0.9, alias="DEFAULT_TOP_P")
default_max_tokens: int = Field(default=512, alias="DEFAULT_MAX_TOKENS")
system_prompt_file: Path = Field(default=BASE_DIR / "prompts" / "system_prompt.txt")
knowledge_file: Path = Field(default=BASE_DIR / "knowledge" / "kontyra.md")
@lru_cache
def get_settings() -> Settings:
"""Return a cached settings instance."""
return Settings()
settings = get_settings()
|