24 lines
818 B
Python
24 lines
818 B
Python
from functools import lru_cache
|
|
|
|
from pydantic import Field
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
|
|
|
|
telegram_bot_token: str = Field(alias="TELEGRAM_BOT_TOKEN")
|
|
border_status_url: str = Field(
|
|
default="https://gpk.gov.by/situation-at-the-border/",
|
|
alias="BORDER_STATUS_URL",
|
|
)
|
|
ai_base_url: str | None = Field(default=None, alias="AI_BASE_URL")
|
|
ai_api_key: str | None = Field(default=None, alias="AI_API_KEY")
|
|
ai_model: str = Field(default="gpt-5.5", alias="AI_MODEL")
|
|
request_timeout_seconds: float = Field(default=20.0, alias="REQUEST_TIMEOUT_SECONDS")
|
|
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
return Settings()
|