FreeLLMAPI / config.py
javaeeduke's picture
Create config.py
56ddb31 verified
Raw
History Blame
2.42 kB
import os
# 模拟前端提交或者数据库存储的逻辑
# 假设项目原本有一个保存 Key 的字典或数据库函数,比如叫做 save_provider_key(platform, api_key, label)
def auto_load_hf_secrets():
"""
启动时自动从 Hugging Face Secrets 中读取 13 大主力军平台的 Key
并自动注入到 FreeLLMAPI 面板中
"""
print("🔄 开始检查并自动载入 Hugging Face Secrets...")
# 定义:环境变量名 与 FreeLLMAPI 面板内平台标识(Platform)的对应关系
secret_mapping = {
"GOOGLE_API_KEY": "google",
"GROQ_API_KEY": "groq",
"GITHUB_TOKEN": "github",
"OPENROUTER_API_KEY": "openrouter",
"MISTRAL_API_KEY": "mistral",
"TOGETHER_API_KEY": "together",
"NVIDIA_API_KEY": "nvidia",
"COHERE_API_KEY": "cohere",
"HF_TOKEN": "huggingface",
"CEREBRAS_API_KEY": "cerebras",
"SAMBANOVA_API_KEY": "sambanova",
"CLOUDFLARE_API_TOKEN": "cloudflare",
"ZHIPU_API_KEY": "zhipu" # 智谱清言
}
loaded_count = 0
for env_name, platform_id in secret_mapping.items():
# 1. 从系统环境(Secrets)中取值
api_key_from_secret = os.getenv(env_name)
if api_key_from_secret:
# 2. 核心对接:调用项目原有的保存逻辑
# 💡 注意:你需要将这里的 'save_provider_key_function' 替换为
# FreeLLMAPI 项目实际用来保存 Key 的函数或数据库操作(例如 db.insert 等)
try:
# 举例项目的原生保存逻辑:
# save_provider_key_function(platform=platform_id, key=api_key_from_secret, label="HF_Secret_Auto")
# 兼容性伪代码示范:
# if platform_id not in current_keys:
# add_to_system(platform_id, api_key_from_secret)
print(f"✅ 成功从 Secrets 中拉取并激活平台: [{platform_id}]")
loaded_count += 1
except Exception as e:
print(f"❌ 自动注入平台 {platform_id} 失败: {str(e)}")
print(f"🏁 Secrets 自动载入完成,共成功激活 {loaded_count} 个主力平台渠道!")
# 在项目运行/启动的最开始调用此函数
# if __name__ == "__main__":
# auto_load_hf_secrets()