From 9451dc3fd43c6dc38cc06a4a04e5aebc361a589e Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Tue, 25 Feb 2025 11:45:54 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9F=90=E4=BA=9B=E6=83=85=E5=86=B5=E4=B8=8B=E7=83=AD=E9=87=8D?= =?UTF-8?q?=E8=BD=BD=20provider=20=E6=97=B6=E5=8F=AF=E8=83=BD=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=AD=A3=E7=A1=AE=E5=BA=94=E7=94=A8=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/core/provider/manager.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/astrbot/core/provider/manager.py b/astrbot/core/provider/manager.py index 62f79b2f8..871fd79a0 100644 --- a/astrbot/core/provider/manager.py +++ b/astrbot/core/provider/manager.py @@ -123,6 +123,7 @@ class ProviderManager(): return logger.info(f"载入 {provider_config['type']}({provider_config['id']}) 服务提供商适配器 ...") + logger.debug(f"Provider Config: {provider_config}") # 动态导入 try: @@ -242,7 +243,7 @@ class ProviderManager(): async def terminate_provider(self, provider_id: str): if provider_id in self.inst_map: - logger.info(f"终止 {provider_id} 提供商适配器 ...") + logger.info(f"终止 {provider_id} 提供商适配器({len(self.provider_insts)}, {len(self.stt_provider_insts)}, {len(self.tts_provider_insts)}) ...") if self.inst_map[provider_id] in self.provider_insts: self.provider_insts.remove(self.inst_map[provider_id]) @@ -250,11 +251,19 @@ class ProviderManager(): self.stt_provider_insts.remove(self.inst_map[provider_id]) if self.inst_map[provider_id] in self.tts_provider_insts: self.tts_provider_insts.remove(self.inst_map[provider_id]) + + if self.inst_map[provider_id] == self.curr_provider_inst: + self.curr_provider_inst = None + if self.inst_map[provider_id] == self.curr_stt_provider_inst: + self.curr_stt_provider_inst = None + if self.inst_map[provider_id] == self.curr_tts_provider_inst: + self.curr_tts_provider_inst = None if getattr(self.inst_map[provider_id], 'terminate', None): await self.inst_map[provider_id].terminate() - logger.info(f"{provider_id} 提供商适配器已终止。") - del self.inst_map[provider_id] + + logger.info(f"{provider_id} 提供商适配器已终止({len(self.provider_insts)}, {len(self.stt_provider_insts)}, {len(self.tts_provider_insts)})") + del self.inst_map[provider_id] async def terminate(self): for provider_inst in self.provider_insts: