# LIB · 密钥管理模块 # D181 · 2026-07-10 """统一密钥入口 · 永不硬编码 · 铁律①""" import os def get_ark_key(): """获取火山方舟 ARK API Key 查找顺序: 1. 环境变量 ARK_API_KEY 2. tools/secrets_loader.py 的 SC-001 3. 项目根 .env 文件 """ # 1. 直接环境变量 key = os.environ.get("ARK_API_KEY") if key: return key # 2. 通过 secrets_loader 的编号体系 try: import sys tools_dir = os.path.join( os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "tools" ) if tools_dir not in sys.path: sys.path.insert(0, tools_dir) from secrets_loader import secret key = secret("SC-001") if key: return key except Exception: pass # 3. .env 文件兜底 for env_path in [ os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), ".env"), os.path.expanduser("~/guanghulab/video-ai-system/.env"), ]: if os.path.exists(env_path): try: with open(env_path, "r", encoding="utf-8") as f: for line in f: line = line.strip() if "=" in line and not line.startswith("#"): k, v = line.split("=", 1) if k.strip() == "ARK_API_KEY": return v.strip() except Exception: continue raise RuntimeError( "🔑 ARK_API_KEY 未找到。\n" " 请设置环境变量: export ARK_API_KEY=ark-xxx\n" " 或配置 SC-001: tools/secrets_loader.py\n" " 或在项目根目录创建 .env 文件: ARK_API_KEY=ark-xxx\n" " ⊢ 铁律① · 密钥永远不放代码仓库" )