""" Antigravity Notebook - Configuration Management Handles all environment variables and application settings. """ from pydantic_settings import BaseSettings from pydantic import Field import os class Settings(BaseSettings): """Application settings loaded from environment variables""" # Database Configuration POSTGRES_USER: str = Field(default="antigravity", env="POSTGRES_USER") POSTGRES_PASSWORD: str = Field(default="antigravity123", env="POSTGRES_PASSWORD") POSTGRES_DB: str = Field(default="antigravity_db", env="POSTGRES_DB") POSTGRES_HOST: str = Field(default="localhost", env="POSTGRES_HOST") POSTGRES_PORT: int = Field(default=5432, env="POSTGRES_PORT") @property def DATABASE_URL(self) -> str: """Construct database URL from components""" return ( f"postgresql://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}" f"@{self.POSTGRES_HOST}:{self.POSTGRES_PORT}/{self.POSTGRES_DB}" ) @property def ASYNC_DATABASE_URL(self) -> str: """Construct async database URL from components""" return ( f"postgresql+asyncpg://{self.POSTGRES_USER}:{self.POSTGRES_PASSWORD}" f"@{self.POSTGRES_HOST}:{self.POSTGRES_PORT}/{self.POSTGRES_DB}" ) # CLaRa Model Configuration MODEL_NAME: str = Field(default="apple/CLaRa-7B-Instruct", env="MODEL_NAME") MODEL_CACHE_DIR: str = Field(default="./model_cache", env="MODEL_CACHE_DIR") DEVICE: str = Field(default="cuda", env="DEVICE") MAX_CONTEXT_TOKENS: int = Field(default=32768, env="MAX_CONTEXT_TOKENS") COMPRESSION_RATIO: int = Field(default=16, env="COMPRESSION_RATIO") # Storage Configuration LATENT_TENSOR_DIR: str = Field(default="./data/latent_tensors", env="LATENT_TENSOR_DIR") # API Configuration API_HOST: str = Field(default="0.0.0.0", env="API_HOST") API_PORT: int = Field(default=8000, env="API_PORT") # Security SECRET_KEY: str = Field(default="your-secret-key-here-change-in-production", env="SECRET_KEY") ALGORITHM: str = Field(default="HS256", env="ALGORITHM") ACCESS_TOKEN_EXPIRE_MINUTES: int = Field(default=30, env="ACCESS_TOKEN_EXPIRE_MINUTES") class Config: env_file = ".env" case_sensitive = True extra = "ignore" # Allow extra fields in .env file # Global settings instance settings = Settings() # Ensure required directories exist os.makedirs(settings.LATENT_TENSOR_DIR, exist_ok=True) os.makedirs(settings.MODEL_CACHE_DIR, exist_ok=True)