From 79b9f878692b3c459385199531e8558fea45a04f Mon Sep 17 00:00:00 2001 From: kawayiYokami <289104862@qq.com> Date: Thu, 18 Sep 2025 23:12:10 +0800 Subject: [PATCH] =?UTF-8?q?fix(provider):=20=E4=BF=AE=E5=A4=8D=E5=9B=A0?= =?UTF-8?q?=E7=BC=BA=E5=B0=91=20key=20=E5=AF=BC=E8=87=B4=20provider=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=8A=A0=E8=BD=BD=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 load_provider 方法中,对 provider_config 进行预处理,确保 'key' 字段存在且不为空列表,从而避免在实例化 OpenAI 兼容的 Provider 时因缺少 API Key 而抛出异常。 --- astrbot/core/provider/manager.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/astrbot/core/provider/manager.py b/astrbot/core/provider/manager.py index 3b50e4976..aaad852a5 100644 --- a/astrbot/core/provider/manager.py +++ b/astrbot/core/provider/manager.py @@ -192,6 +192,13 @@ async def load_provider(self, provider_config: dict): if not provider_config["enable"]: return + # 预处理:确保 Provider 不会因空 api_key 列表而实例化失败 + # 创建副本以避免修改原始配置 + provider_config = provider_config.copy() + # 统一添加一个空的 api_key,防止 __init__ 抛出 "API key is required" 异常 + if not provider_config.get("key"): + provider_config["key"] = [""] + logger.info( f"载入 {provider_config['type']}({provider_config['id']}) 服务提供商 ..." )