from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", extra="ignore") DATABASE_URL: str = "sqlite:///./quiz.db" SECRET_KEY: str = "change-me-to-a-random-secret-key-in-production" ALGORITHM: str = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES: int = 1440 REDIS_URL: str = "redis://localhost:6379/0" LITELLM_MODEL: str = "gpt-4o-mini" LITELLM_API_KEY: str = "" LITELLM_API_BASE: str = "" LITELLM_EMBEDDING_MODEL: str = "" OPENAI_API_KEY: str = "" ELEVENLABS_API_KEY: str = "" GOOGLE_TTS_API_KEY: str = "" AWS_ACCESS_KEY_ID: str = "" AWS_SECRET_ACCESS_KEY: str = "" AWS_REGION: str = "us-east-1" AWS_BEDROCK_REGION: str = "us-east-1" EMBEDDING_DIMENSIONS: int = 1024 APP_URL: str = "https://quiz.danvics.com" CHROMA_PERSIST_DIR: str = "./chroma_data" MAIL_USERNAME: str = "" MAIL_PASSWORD: str = "" MAIL_FROM: str = "" MAIL_PORT: int = 587 MAIL_SERVER: str = "smtp.gmail.com" MAIL_STARTTLS: bool = True MAIL_SSL_TLS: bool = False UPLOAD_DIR: str = "./uploads" MAX_UPLOAD_SIZE: int = 524288000 # 500MB settings = Settings()