contract-query/backend/app/config/settings.py
2025-08-14 15:03:33 -05:00

53 lines
No EOL
1.6 KiB
Python

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)