from functools import lru_cache from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") nextcloud_webdav_url: str nextcloud_user: str nextcloud_app_password: str ollama_url: str ollama_embed_model: str qdrant_url: str qdrant_collection: str webhook_secret: str ingest_root: str = "Documents/THB/Studium" chunk_size_words: int = 500 chunk_overlap_words: int = 50 log_level: str = "INFO" @lru_cache(maxsize=1) def get_settings() -> Settings: return Settings()