""" 应用配置 — 手动从 .env 读取,不依赖 pydantic-settings 自动 env_file """ import os from pathlib import Path from dotenv import load_dotenv # 强制加载 backend/.env 到 os.environ(用 __file__ 定位脚本所在目录,避免 cwd 漂移) # __file__ = e:\tps-dashboard\backend\app\core\config.py → parent.parent.parent = e:\tps-dashboard\backend _env_path = Path(__file__).parent.parent.parent / ".env" load_dotenv(str(_env_path), override=True) # 直接从 os.environ 读取,手动兜底 _DATABASE_URL = os.environ.get("DATABASE_URL") _SECRET_KEY = os.environ.get("SECRET_KEY", "change-me-to-a-random-string-in-production") _SESSION_MAX_AGE = int(os.environ.get("SESSION_MAX_AGE", "86400")) # MiniMax Embedding API 凭证 _MINIMAX_EMBED_API_KEY = os.environ.get("MINIMAX_EMBED_API_KEY", "") _MINIMAX_GROUP_ID = os.environ.get("MINIMAX_GROUP_ID", "") # 验证必需配置 if not _DATABASE_URL: raise RuntimeError(f"[config] DATABASE_URL 未设置。请检查 {_env_path} 是否存在且内容正确。") # 简单命名空间对象(替代 pydantic-settings,避免 env 读取失效) class Settings: DATABASE_URL: str = _DATABASE_URL SECRET_KEY: str = _SECRET_KEY SESSION_MAX_AGE: int = _SESSION_MAX_AGE MINIMAX_EMBED_API_KEY: str = _MINIMAX_EMBED_API_KEY MINIMAX_GROUP_ID: str = _MINIMAX_GROUP_ID settings = Settings()