aibridze/document_intelligence
0
1from pydantic_settings import BaseSettings2from pathlib import Path3from functools import lru_cache4 5 6class Settings(BaseSettings):7 # API Keys8 GOOGLE_API_KEY: str = ""9 10 # Models11 VISION_MODEL: str = "gemini-2.5-flash"12 EMBEDDING_MODEL: str = "models/gemini-embedding-001"13 14 # Paths15 DATA_DIR: str = "data"16 UPLOAD_DIR: str = "uploads"17 PROCESSED_DIR: str = "processed"18 VECTORSTORE_DIR: str = "vectorstore"19 20 # Server21 HOST: str = "0.0.0.0"22 PORT: int = 800023 24 class Config:25 env_file = ".env"26 extra = "ignore"27 28 def get_data_path(self) -> Path:29 p = Path(self.DATA_DIR)30 p.mkdir(parents=True, exist_ok=True)31 return p32 33 def get_upload_path(self) -> Path:34 p = self.get_data_path() / self.UPLOAD_DIR35 p.mkdir(parents=True, exist_ok=True)36 return p37 38 def get_processed_path(self) -> Path:39 p = self.get_data_path() / self.PROCESSED_DIR40 p.mkdir(parents=True, exist_ok=True)41 return p42 43 def get_vectorstore_path(self) -> Path:44 p = self.get_data_path() / self.VECTORSTORE_DIR45 p.mkdir(parents=True, exist_ok=True)46 return p47 48 49@lru_cache()50def get_settings() -> Settings:51 return Settings()