from __future__ import annotations import os from dataclasses import dataclass @dataclass class Settings: index_dir: str materials_dir: str embedder_kind: str # "bge-m3" | "fake" app_users_raw: str title: str fake_llm: bool rerank_kind: str # "bge" | "fake" | "off" def load_settings(env=None) -> Settings: env = os.environ if env is None else env return Settings( index_dir=env.get("STUDYHUB_INDEX_DIR", "index"), materials_dir=env.get("STUDYHUB_MATERIALS_DIR", "materials"), embedder_kind=env.get("STUDYHUB_EMBEDDER", "bge-m3"), app_users_raw=env.get("APP_USERS", ""), title=env.get("STUDYHUB_TITLE", "StudyHub"), fake_llm=env.get("STUDYHUB_FAKE_LLM", "0") == "1", rerank_kind=env.get("STUDYHUB_RERANK", "off"), )