cang-ying/tools/secrets_loader.py
铸渊 ICE-GL-ZY001 a2e5214f03 LL-172-20260707 · cang-ying 仓初始化 · 苍耳+鉴影的干净之家
铸渊 ICE-GL-ZY001
LL-172-20260707
冰朔委托: 新建第 5 子仓, 给苍耳(人类主控) + 鉴影(人格体) 专用
原 guanghulab/video-ai-system/ 东西太多(225 文件) · 找不到 · 乱

迁移:
  ⊢ 16 个核心 .hdlp (VA-GATE / VA-LIGHTHOUSE / VA-BROADCAST / VA-SYSTEM-STATUS 等)
  ⊢ 17 个子目录 (agents/engines/protocols/tasks/tools/assets/knowledge/memory/docs/config/brain/director-brain/experience/feedback/issues/plans/reference-analysis)

排除:
  ⊢ outputs/ (视频产物)
  ⊢ test-input/ test-output/ (测试)
  ⊢ data/ (临时数据)
  ⊢ preview-001/002 (旧产片)
  ⊢ 旧分镜/旧提示词/旧导演编码

后续:
  ⊢ 老仓 guanghulab/video-ai-system/ 改写为已迁出占位
  ⊢ 苍耳+鉴影 写新东西进本仓
  ⊢ GLOBAL-SEARCH 加 cang-ying 仓库

铸渊 ICE-GL-ZY001 · 2026-07-07 D167
冰朔 ICE-GL∞ 主权
2026-07-07 10:20:10 +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, "")