71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
|
|
"""一键配置 BaoDan API Key 到 docker-compose.baodan.yml。
|
|||
|
|
|
|||
|
|
使用方式:
|
|||
|
|
python scripts/setup_bodan_api_keys.py
|
|||
|
|
|
|||
|
|
会提示输入三个 API Key,自动更新 docker-compose 配置。
|
|||
|
|
"""
|
|||
|
|
import re
|
|||
|
|
import sys
|
|||
|
|
|
|||
|
|
COMPOSE_FILE = "docker-compose.baodan.yml"
|
|||
|
|
|
|||
|
|
|
|||
|
|
def update_env(compose_path: str, key: str, value: str):
|
|||
|
|
"""更新 docker-compose 中的环境变量。"""
|
|||
|
|
with open(compose_path, "r", encoding="utf-8") as f:
|
|||
|
|
content = f.read()
|
|||
|
|
|
|||
|
|
# 匹配 KEY: "value" 或 KEY: "placeholder-..."
|
|||
|
|
pattern = rf'({re.escape(key)}:\s*")[^"]*(")'
|
|||
|
|
replacement = rf'\g<1>{value}\2'
|
|||
|
|
|
|||
|
|
new_content, count = re.subn(pattern, replacement, content, count=1)
|
|||
|
|
if count == 0:
|
|||
|
|
print(f" [WARN] 未找到 {key},跳过")
|
|||
|
|
return False
|
|||
|
|
|
|||
|
|
with open(compose_path, "w", encoding="utf-8") as f:
|
|||
|
|
f.write(new_content)
|
|||
|
|
return True
|
|||
|
|
|
|||
|
|
|
|||
|
|
def main():
|
|||
|
|
print("=" * 50)
|
|||
|
|
print(" BaoDan API Key 配置工具")
|
|||
|
|
print("=" * 50)
|
|||
|
|
print()
|
|||
|
|
print("请在后台创建应用后,输入对应的 API Key。")
|
|||
|
|
print("如果暂时没有,可以直接回车跳过(用占位值)。")
|
|||
|
|
print()
|
|||
|
|
|
|||
|
|
keys = {
|
|||
|
|
"BAODAN_CHAT_API_KEY": "对话应用 API Key(用于智能问答)",
|
|||
|
|
"BAODAN_WORKFLOW_API_KEY": "Workflow 应用 API Key(用于产品推荐)",
|
|||
|
|
"BAODAN_KB_API_KEY": "知识库 API Key(用于文档管理)",
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
compose_path = COMPOSE_FILE
|
|||
|
|
updated = 0
|
|||
|
|
|
|||
|
|
for env_key, desc in keys.items():
|
|||
|
|
value = input(f" {desc}\n > {env_key}: ").strip()
|
|||
|
|
if value:
|
|||
|
|
if update_env(compose_path, env_key, value):
|
|||
|
|
print(f" ✓ {env_key} 已更新")
|
|||
|
|
updated += 1
|
|||
|
|
else:
|
|||
|
|
print(f" - 跳过 {env_key}")
|
|||
|
|
|
|||
|
|
print()
|
|||
|
|
if updated > 0:
|
|||
|
|
print(f"完成!已更新 {updated} 个 API Key。")
|
|||
|
|
print("请运行以下命令重启服务:")
|
|||
|
|
print(" docker compose -f docker-compose.baodan.yml restart baodan-api baodan-worker")
|
|||
|
|
else:
|
|||
|
|
print("未更新任何配置。")
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
main()
|