diff --git a/astrbot/core/config/default.py b/astrbot/core/config/default.py index d4542b31a..3be2acb15 100644 --- a/astrbot/core/config/default.py +++ b/astrbot/core/config/default.py @@ -2,7 +2,7 @@ 如需修改配置,请在 `data/cmd_config.json` 中修改或者在管理面板中可视化修改。 """ -VERSION = "3.5.3.1" +VERSION = "3.5.3.2" DB_PATH = "data/data_v3.db" # 默认配置 diff --git a/astrbot/core/platform/sources/gewechat/gewechat_platform_adapter.py b/astrbot/core/platform/sources/gewechat/gewechat_platform_adapter.py index 930359837..7d8dddfca 100644 --- a/astrbot/core/platform/sources/gewechat/gewechat_platform_adapter.py +++ b/astrbot/core/platform/sources/gewechat/gewechat_platform_adapter.py @@ -67,7 +67,10 @@ class GewechatPlatformAdapter(Platform): async def terminate(self): self.client.shutdown_event.set() - await self.client.server.shutdown() + try: + await self.client.server.shutdown() + except Exception as _: + pass logger.info("Gewechat 适配器已被优雅地关闭。") async def logout(self): diff --git a/astrbot/core/platform/sources/webchat/webchat_event.py b/astrbot/core/platform/sources/webchat/webchat_event.py index ef5532920..30a6322a5 100644 --- a/astrbot/core/platform/sources/webchat/webchat_event.py +++ b/astrbot/core/platform/sources/webchat/webchat_event.py @@ -21,7 +21,7 @@ class WebChatMessageEvent(AstrMessageEvent): await web_chat_back_queue.put( {"type": "end", "data": "", "streaming": False} ) - return + return "" cid = session_id.split("!")[-1] data = "" diff --git a/astrbot/core/platform/sources/wecom/wecom_adapter.py b/astrbot/core/platform/sources/wecom/wecom_adapter.py index 4386a80ab..c6b7c096d 100644 --- a/astrbot/core/platform/sources/wecom/wecom_adapter.py +++ b/astrbot/core/platform/sources/wecom/wecom_adapter.py @@ -237,5 +237,8 @@ class WecomPlatformAdapter(Platform): async def terminate(self): self.server.shutdown_event.set() - await self.server.server.shutdown() + try: + await self.server.server.shutdown() + except Exception as _: + pass logger.info("企业微信 适配器已被优雅地关闭") diff --git a/astrbot/core/provider/func_tool_manager.py b/astrbot/core/provider/func_tool_manager.py index 72180759a..325f89199 100644 --- a/astrbot/core/provider/func_tool_manager.py +++ b/astrbot/core/provider/func_tool_manager.py @@ -339,7 +339,7 @@ class FuncCall: ] logger.info(f"已关闭 MCP 服务 {name}") - def get_func_desc_openai_style(self, omit_empty_parameter_field = True) -> list: + def get_func_desc_openai_style(self, omit_empty_parameter_field = False) -> list: """ 获得 OpenAI API 风格的**已经激活**的工具描述 """ diff --git a/astrbot/core/provider/sources/openai_source.py b/astrbot/core/provider/sources/openai_source.py index 703572b87..110d0d435 100644 --- a/astrbot/core/provider/sources/openai_source.py +++ b/astrbot/core/provider/sources/openai_source.py @@ -87,7 +87,8 @@ class ProviderOpenAIOfficial(Provider): async def _query(self, payloads: dict, tools: FuncCall) -> LLMResponse: if tools: - omit_empty_param_field = "grok" not in payloads.get("model", "").lower() + model = payloads.get("model", "").lower() + omit_empty_param_field = "gemini" in model tool_list = tools.get_func_desc_openai_style( omit_empty_parameter_field=omit_empty_param_field ) @@ -124,7 +125,8 @@ class ProviderOpenAIOfficial(Provider): ) -> AsyncGenerator[LLMResponse, None]: """流式查询API,逐步返回结果""" if tools: - omit_empty_param_field = "grok" not in payloads.get("model", "").lower() + model = payloads.get("model", "").lower() + omit_empty_param_field = "gemini" in model tool_list = tools.get_func_desc_openai_style( omit_empty_parameter_field=omit_empty_param_field ) diff --git a/changelogs/v3.5.3.2.md b/changelogs/v3.5.3.2.md new file mode 100644 index 000000000..fdbe4fa3e --- /dev/null +++ b/changelogs/v3.5.3.2.md @@ -0,0 +1,41 @@ +# What's Changed + +> 📢 在升级前,请完整阅读本次更新日志。 +> 此版本为针对 `v3.5.3` 的紧急修复版本 +> 修复以下 BUG: +> 1. 智谱 GLM 在函数工具有空参数时报错的问题。 + +--- + +v3.5.3 + +## ✨ 新增的功能 + +1. Telegram、Webchat、QQ官方机器人平台(私聊)支持流式输出(实验性)。@Soulter @Raven95676 @anka-afk +2. 支持针对不同消息平台开启/关闭插件 @zhx8702 @Raven95676 @Soulter +3. 插件市场支持显示 Star 个数、插件管理支持插件帮助对话框 @kterna +4. 飞书平台支持主动消息发送 @Soulter +5. Telegram 平台适配显示指令列表,支持自动补全 @Raven95676 +6. 新增配置项允许配置当超出最多携带对话数量时,一次性丢弃多少条旧消息 @Rail1bc +7. StarTool 新增获取插件数据目录接口 @Raven95676 + +## 🎈 功能性优化 + +1. 优化 /his 指令对函数调用的显示 @anka-afk +2. QQ 官方机器人支持对同一条消息多次回复 @kuangfeng + +## 🐛 修复的 Bug + +1. ‼️ 修复使用 gemini 时,函数数工具调用会重复调用已经在过去会话中调用过的工具 @Soulter +2. 修复使用 Gemini 模型时出现 的问题 @anka-afk +4. 修复使用 OneAPI + Gemini(openai) 传递空参数函数工具时可能报错的问题 @Soulter +5. 修复 permission 过滤算子的 raise_error 参数失效的问题 @Soulter +6. 修复函数调用时可能出现 `messages with role 'tool' must be a response to a preceeding message with 'tool_calls'` 报错的问题 @anka-afk +7. 修复 dify 下删除对话的报错问题 @Soulter +8. 修复人格预设对话多次插入上下文的问题 @Rail1bc +9. 修复了 event.get_sender_id() 返回值与函数注释不一致的问题 @zsbai + + +## 🧩 新增的插件 + +待补充