feat: 支持多个API Key,增强错误处理和负载均衡机制

This commit is contained in:
墨梓柒
2025-07-27 13:55:18 +08:00
parent e240fb92ca
commit 16931ef7b4
6 changed files with 391 additions and 44 deletions

View File

@@ -122,6 +122,7 @@ def _api_providers(parent: Dict, config: ModuleConfig):
name = provider.get("name", None)
base_url = provider.get("base_url", None)
api_key = provider.get("api_key", None)
api_keys = provider.get("api_keys", []) # 新增支持多个API Key
client_type = provider.get("client_type", "openai")
if name in config.api_providers: # 查重
@@ -129,10 +130,22 @@ def _api_providers(parent: Dict, config: ModuleConfig):
raise KeyError(f"重复的API提供商名称: {name},请检查配置文件。")
if name and base_url:
# 处理API Key配置支持单个api_key或多个api_keys
if api_keys:
# 使用新格式api_keys列表
logger.debug(f"API提供商 '{name}' 配置了 {len(api_keys)} 个API Key")
elif api_key:
# 向后兼容使用单个api_key
api_keys = [api_key]
logger.debug(f"API提供商 '{name}' 使用单个API Key向后兼容模式")
else:
logger.warning(f"API提供商 '{name}' 没有配置API Key某些功能可能不可用")
config.api_providers[name] = APIProvider(
name=name,
base_url=base_url,
api_key=api_key,
api_key=api_key, # 保留向后兼容
api_keys=api_keys, # 新格式
client_type=client_type,
)
else: