guanghulab/video-ai-system/tools/secrets_loader.py
冰朔 a6e6493a8d
Some checks failed
自动更新代码和重启 / update-and-restart (push) Has been cancelled
CI检查 + 自动部署 / check (push) Has been cancelled
CI检查 + 自动部署 / deploy (push) Has been cancelled
D149: 视频AI编号体系 · VA-/VX-双编号 · 异步协作模式
- PREFIX-MAP.hdlp: VA-/VX-编号→URL完整映射表
- VA-BROADCAST.hdlp: 广播主控台·通用AI装脑第一读
- ENGINEERING-ASSETS.hdlp: 工程资产清单·弃用旧提示词分镜
- ENTRY.hdlp/CURRENT.hdlp: 加VA-编号+VX-跳转·更新进入路径
- .code-map: VA-/VX-编号全面注册
- P0资产入仓(D147腾讯线·CHAR/ENV/PROP批准资产)
- TCS验证链回执(3份·D139-D149)
2026-06-26 18:38:41 +08:00

60 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""secrets-loader.py · 统一密钥加载 · 编号路由
读 LOCAL-SECRETS-PATH.hdlp 规定的两个密钥文件,按编号返回密钥。
"""
import os
SECRET_PATHS = [
"/Users/bingshuolingdianyuanhe/Documents/guanghulab-local-secrets/video-ai-system.env",
os.path.expanduser("~/guanghulab/video-ai-system/.env"),
]
# 编号 → env变量名 映射
SECRET_MAP = {
"SC-004": "ALIYUN_QWEN_VL_KEY", # 阿里千问VL视觉
"SC-005": "ALIYUN_BAILIAN_API_KEY", # 阿里百炼通用
"SC-001": "JIMENG_API_KEY", # 火山即梦
}
ENDPOINT_MAP = {
"EPT-002": "ALIYUN_QWEN_VL_ENDPOINT", # 千问VL业务空间端点
"EPT-001": "JIMENG_BASE_URL", # 火山即梦端点
}
# 环境变量兜底值
ENDPOINT_DEFAULTS = {
"EPT-002": "https://ws-umd6xwlovzmshuat.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation",
}
def _load_env():
"""按优先级加载所有密钥到内存"""
env = dict(os.environ)
for path in SECRET_PATHS:
if os.path.exists(path):
for line in open(path):
line = line.strip()
if not line or line.startswith("#"):
continue
if "=" in line:
k, v = line.split("=", 1)
k, v = k.strip(), v.strip()
if v and k not in env:
env[k] = v
return env
_ENV = _load_env()
def secret(code):
"""按编号返回密钥"""
key_name = SECRET_MAP.get(code)
if key_name:
return _ENV.get(key_name, "")
return ""
def endpoint(code):
"""按编号返回端点"""
key_name = ENDPOINT_MAP.get(code)
if key_name and _ENV.get(key_name):
return _ENV[key_name]
return ENDPOINT_DEFAULTS.get(code, "")