from pydantic_settings import BaseSettings from typing import List, Optional import os class Settings(BaseSettings): # Database mongodb_url: str = "mongodb://localhost:27017" database_name: str = "contract_analysis" # Redis redis_url: str = "redis://localhost:6379" # Authentication jwt_secret_key: str = "your-super-secret-jwt-key-change-this-in-production" jwt_algorithm: str = "HS256" jwt_expire_minutes: int = 180 # Azure AD / SSO Configuration azure_client_id: Optional[str] = None azure_tenant_id: Optional[str] = None azure_redirect_uri: Optional[str] = None azure_authority: Optional[str] = None sso_enabled: bool = False allow_local_admin: bool = True # OpenAI openai_api_key: str llamaparse_api_key: str # Required for document processing # Application debug: bool = True cors_origins: List[str] = ["http://localhost:3000", "http://localhost:3002", "https://ai-sandbox.oliver.solutions", "*"] upload_dir: str = "./uploads" indices_dir: str = "./indices" # Document processing limits max_document_chars: int = 1000000 # 1 million characters for contract summaries max_summary_chars: int = 100000 # 100k characters for simple summaries # Cache - DISABLED for data freshness and debugging cache_enabled: bool = False cache_ttl: int = 3600 class Config: env_file = ".env" case_sensitive = False # Create settings instance settings = Settings() # Ensure directories exist os.makedirs(settings.upload_dir, exist_ok=True) os.makedirs(settings.indices_dir, exist_ok=True)