From 85b2bfc2b708cc67c17b49e4c48e11a8e600edf9 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Tue, 30 Sep 2025 22:35:18 +0800 Subject: [PATCH] =?UTF-8?q?refactor(social):=20=E7=AE=80=E5=8C=96=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E8=A1=A8=E6=83=85=E5=9B=9E=E5=BA=94=E7=9A=84=E5=8A=A8?= =?UTF-8?q?=E4=BD=9C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除了 `emoji_input` 参数,现在直接通过二级LLM根据对话上下文选择合适的表情。这简化了动作的调用方式,并减少了不必要的参数传递和错误处理。同时,更新了日志和动作提示信息以反映这一变化。 --- .../built_in/social_toolkit_plugin/plugin.py | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/plugins/built_in/social_toolkit_plugin/plugin.py b/src/plugins/built_in/social_toolkit_plugin/plugin.py index f28e842d0..6ccfb1dd3 100644 --- a/src/plugins/built_in/social_toolkit_plugin/plugin.py +++ b/src/plugins/built_in/social_toolkit_plugin/plugin.py @@ -239,6 +239,7 @@ class SetEmojiLikeAction(BaseAction): async def execute(self) -> Tuple[bool, str]: """执行设置表情回应的动作""" message_id = None + set_like = self.action_data.get("set", True) if self.has_action_message: logger.debug(str(self.action_message)) if isinstance(self.action_message, dict): @@ -252,16 +253,6 @@ class SetEmojiLikeAction(BaseAction): action_done=False, ) return False, "未提供消息ID" - - emoji_input = self.action_data.get("emoji") - set_like = self.action_data.get("set", True) - - if not emoji_input: - logger.error("未提供表情") - return False, "未提供表情" - logger.info(f"设置表情回应: {emoji_input}, 是否设置: {set_like}") - - logger.info(f"无法直接匹配表情 '{emoji_input}',启动二级LLM选择...") available_models = llm_api.get_available_models() if "utils_small" not in available_models: logger.error("未找到 'utils_small' 模型配置,无法选择表情") @@ -269,7 +260,7 @@ class SetEmojiLikeAction(BaseAction): model_to_use = available_models["utils_small"] - # 获取最近的对话历史作为上下文 + # 获取最近的对话历史作为上下文 context_text = "" if self.action_message: context_text = self.action_message.get("processed_plain_text", "") @@ -290,8 +281,8 @@ class SetEmojiLikeAction(BaseAction): ) if not success or not response: - logger.error(f"二级LLM未能为 '{emoji_input}' 选择有效的表情。") - return False, f"无法为 '{emoji_input}' 找到合适的表情。" + logger.error("二级LLM未能选择有效的表情。") + return False, "无法找到合适的表情。" chosen_emoji_name = response.strip() logger.info(f"二级LLM选择的表情是: '{chosen_emoji_name}'") @@ -327,7 +318,7 @@ class SetEmojiLikeAction(BaseAction): logger.info("设置表情回应成功") await self.store_action_info( action_build_into_prompt=True, - action_prompt_display=f"执行了set_emoji_like动作,{emoji_input},设置表情回应: {emoji_id}, 是否设置: {set_like}", + action_prompt_display=f"执行了set_emoji_like动作,{chosen_emoji_name},设置表情回应: {emoji_id}, 是否设置: {set_like}", action_done=True, ) return True, "成功设置表情回应"