本文目录导读:

是的,脚本可以自动轮换API密钥,常见的实现方式有以下几种:
轮询列表法(最简单)
api_keys = ["key1", "key2", "key3"]
current_index = 0
def get_next_key():
global current_index
key = api_keys[current_index]
current_index = (current_index + 1) % len(api_keys)
return key
失败自动切换
def make_request_with_retry(url, headers):
for key in api_keys:
headers["Authorization"] = f"Bearer {key}"
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response
elif response.status_code == 429: # 速率限制
time.sleep(1)
continue
raise Exception("所有API密钥均失败")
基于使用量均衡
from collections import defaultdict
key_usage = defaultdict(int) # 记录每个密钥的使用次数
def get_least_used_key():
return min(api_keys, key=lambda k: key_usage[k])
def use_key(key):
key_usage[key] += 1
第三方工具/库
- API Key Rotator:专门的密钥轮换库
- Hashicorp Vault:专业密钥管理,支持自动轮换
- AWS Secrets Manager:云服务商提供的密钥轮换功能
注意事项
- 密钥轮换要配合错误处理(如429限流、401未授权)
- 对轮换逻辑加锁避免多线程冲突
- 记录日志便于排查问题
- 不要硬编码密钥,使用环境变量或密钥管理服务
需要我提供特定场景(如OpenAI API、多个服务商的API)的轮换示例吗?