Spaces:
Sleeping
Sleeping
| """ | |
| backend/utils/config.py | |
| ======================== | |
| Centralised application configuration using Pydantic Settings. | |
| All values are read from environment variables / .env file. | |
| """ | |
| from functools import lru_cache | |
| from typing import Literal | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| class Settings(BaseSettings): | |
| """Application settings loaded from .env""" | |
| model_config = SettingsConfigDict( | |
| env_file=".env", | |
| env_file_encoding="utf-8", | |
| case_sensitive=False, | |
| extra="ignore", | |
| ) | |
| # ββ LLM Provider βββββββββββββββββββββββββββββββββββββββββ | |
| LLM_PROVIDER: Literal["openai", "huggingface"] = "openai" | |
| OPENAI_API_KEY: str = "" | |
| OPENAI_MODEL: str = "gpt-3.5-turbo" | |
| OPENAI_BASE_URL: str | None = None | |
| HUGGINGFACE_API_KEY: str = "" | |
| HF_SUMMARIZATION_MODEL: str = "facebook/bart-large-cnn" | |
| # ββ Whisper ASR βββββββββββββββββββββββββββββββββββββββββββ | |
| WHISPER_MODEL: Literal["tiny", "base", "small", "medium", "large"] = "tiny" | |
| WHISPER_DEVICE: Literal["cpu", "cuda"] = "cpu" | |
| # ββ Text Processing βββββββββββββββββββββββββββββββββββββββ | |
| MAX_CHUNK_SIZE: int = 1000 | |
| CHUNK_OVERLAP: int = 200 | |
| # ββ FAISS / Embeddings ββββββββββββββββββββββββββββββββββββ | |
| EMBEDDING_MODEL: str = "all-MiniLM-L6-v2" | |
| FAISS_INDEX_PATH: str = "data/embeddings/faiss.index" | |
| # ββ Application βββββββββββββββββββββββββββββββββββββββββββ | |
| APP_HOST: str = "0.0.0.0" | |
| APP_PORT: int = 7860 | |
| DEBUG: bool = True | |
| # ββ File Storage ββββββββββββββββββββββββββββββββββββββββββ | |
| UPLOAD_DIR: str = "data/videos" | |
| AUDIO_DIR: str = "data/audio" | |
| TRANSCRIPT_DIR: str = "data/transcripts" | |
| SUMMARY_DIR: str = "data/summaries" | |
| OUTPUT_DIR: str = "outputs" | |
| MAX_FILE_SIZE_MB: int = 500 | |
| def max_file_size_bytes(self) -> int: | |
| return self.MAX_FILE_SIZE_MB * 1024 * 1024 | |
| def get_settings() -> Settings: | |
| return Settings() | |
| # Singleton instance used throughout the app | |
| settings: Settings = get_settings() | |