""" settings.py — RAG API configuration loaded from environment variables. """ from __future__ import annotations from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file='.env', extra='ignore') # App app_title: str = 'Second Brain RAG API' app_version: str = '1.0.0' log_level: str = 'INFO' # Database database_url: str = 'postgresql://brain:brain@postgres:5432/second_brain' db_pool_min: int = 2 db_pool_max: int = 20 # Ollama ollama_url: str = 'http://ollama:11434' embedding_model: str = 'nomic-embed-text' chat_model: str = 'mistral' embedding_dimensions: int = 768 # Search defaults search_top_k: int = 10 search_threshold: float = 0.65 rerank_enabled: bool = False # CORS (comma-separated origins) cors_origins: str = 'http://localhost:3000' @property def cors_origins_list(self) -> list[str]: return [o.strip() for o in self.cors_origins.split(',') if o.strip()]