From d6e8655792396a9c1d3165ce61f76bf80eece295 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Sun, 2 Feb 2025 23:17:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8A=B1=E9=94=99=E6=97=B6=E9=A6=96?= =?UTF-8?q?=E5=85=88=E7=A7=BB=E9=99=A4=20tool?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/provider/sources/openai_source.py | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/astrbot/core/provider/sources/openai_source.py b/astrbot/core/provider/sources/openai_source.py index 78cfeb276..7ef10804d 100644 --- a/astrbot/core/provider/sources/openai_source.py +++ b/astrbot/core/provider/sources/openai_source.py @@ -102,17 +102,28 @@ class ProviderOpenAIOfficial(Provider): ) except BaseException as e: # 处理不支持 Function Calling 的模型 - if 'does not support Function Calling' in str(e) \ - or 'does not support tools' in str(e) \ - or 'Function call is not supported' in str(e): # siliconcloud - del payloads['tools'] - logger.debug(f"模型 {self.model_name} 不支持 tools,已自动移除") - completion = await self.client.chat.completions.create( - **payloads, - stream=False - ) + # issue #305 + # if 'does not support Function Calling' in str(e) \ + # or 'does not support tools' in str(e) \ + # or 'Function call is not supported' in str(e): # siliconcloud + # del payloads['tools'] + # logger.debug(f"模型 {self.model_name} 不支持 tools,已自动移除") + # completion = await self.client.chat.completions.create( + # **payloads, + # stream=False + # ) + # else: + # raise e + if 'tools' in payloads: + del payloads['tools'] + logger.debug(f"模型 {self.model_name} 不支持 tools,已自动移除") + completion = await self.client.chat.completions.create( + **payloads, + stream=False + ) else: raise e + assert isinstance(completion, ChatCompletion) logger.debug(f"completion: {completion}")