""" DeepMed-AI — core/config.py Environment variables and path constants. """ import os from dotenv import load_dotenv load_dotenv() # ── Paths ────────────────────────────────────────────────────────────────────── # backend/app/core/config.py -> backend/ _BACKEND_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..")) # Ensure logs and storage are inside backend directory LOG_DIR = os.getenv("LOG_DIR", os.path.join(_BACKEND_DIR, "logs")) CHAT_DB_PATH = os.getenv("CHAT_DB_PATH", os.path.join(_BACKEND_DIR, "storage", "chat_db", "medigenius.db")) DATA_DIR = os.getenv("DATA_DIR", os.path.join(_BACKEND_DIR, "data")) CHROMA_DB_PATH = os.getenv("CHROMA_DB_PATH", os.path.join(_BACKEND_DIR, "data", "chroma_db")) CHROMA_HF_DATASET = os.getenv("CHROMA_HF_DATASET", "PBThuong/deepmed-chroma-db") # ── API Keys ─────────────────────────────────────────────────────────────────── GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY") # Gemini 2.5 Flash (primary) # Multi-key rotation: comma-separated keys → [key1, key2, ...] _raw_keys = os.getenv("GOOGLE_API_KEYS", "") GOOGLE_API_KEYS: list[str] = [ k.strip() for k in _raw_keys.split(",") if k.strip() ] if _raw_keys.strip() else ([GOOGLE_API_KEY] if GOOGLE_API_KEY else []) NVIDIA_API_KEY = os.getenv("NVIDIA_API_KEY") # NVIDIA Build (fallback) NVIDIA_MODEL = os.getenv("NVIDIA_MODEL", "meta/llama-3.3-70b-instruct") # Legacy OpenRouter support (deprecated — use NVIDIA_API_KEY instead) OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY") OPENROUTER_MODEL = os.getenv("OPENROUTER_MODEL", "qwen/qwen3-235b-a22b:free")