Spaces:
Configuration error
Configuration error
File size: 2,541 Bytes
88f8604 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | """
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)
|