from __future__ import annotations from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): app_name: str = "GitHub Profile AI Reviewer" app_version: str = "1.0.0" app_host: str = "0.0.0.0" app_port: int = 8000 cors_origins: str = "http://localhost:5500,http://127.0.0.1:5500,http://localhost:8000,http://127.0.0.1:8000" github_token: str = Field(default="", alias="GITHUB_TOKEN") github_api_url: str = "https://api.github.com/graphql" github_rest_api_url: str = "https://api.github.com" github_public_repo_limit: int = 20 github_fetch_commit_counts: bool = False github_cache_ttl_seconds: int = 900 codebert_model: str = "microsoft/codebert-base" embedding_dim: int = 768 scoring_backend: str = "heuristic" request_timeout_seconds: float = 30.0 model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore", populate_by_name=True) settings = Settings()