baodan/scripts/setup_dify_api_keys.py

71 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""一键配置 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()