from typing import Optional from pydantic_settings import BaseSettings class Settings(BaseSettings): # API Keys ANTHROPIC_API_KEY: Optional[str] = None OPENAI_API_KEY: Optional[str] = None # Provider Settings DEFAULT_PROVIDER: str = "claude" CLAUDE_MODEL: str = "claude-3-5-sonnet-20241022" OPENAI_MODEL: str = "gpt-4-turbo-preview" # API Settings MAX_TOKENS: int = 4000 TEMPERATURE: float = 0.7 TIMEOUT: int = 60 # CORS FRONTEND_URL: str = "http://localhost:3000" # Rate Limiting RATE_LIMIT_REQUESTS: int = 10 RATE_LIMIT_WINDOW: int = 60 # Microsoft Entra ID ENTRA_TENANT_ID: Optional[str] = None ENTRA_CLIENT_ID: Optional[str] = None ENTRA_CLIENT_SECRET: Optional[str] = None ENTRA_REDIRECT_URI: str = "http://localhost:3000/auth/callback" # JWT JWT_SECRET: str = "change-this-in-production-use-a-secure-random-string" JWT_ALGORITHM: str = "HS256" JWT_EXPIRY_HOURS: int = 24 class Config: env_file = ".env" case_sensitive = True settings = Settings()