From c712a6bfcad0ec3654c7a30fcdfe1d073e34a8da Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 9 Jul 2025 19:20:48 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20=E8=87=AA=E5=8A=A8=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96=E4=BB=A3=E7=A0=81=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugin_system/apis/emoji_api.py | 4 +++- src/plugins/built_in/core_actions/emoji.py | 13 ++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/plugin_system/apis/emoji_api.py b/src/plugin_system/apis/emoji_api.py index 69d7a7b1b..4f1d03521 100644 --- a/src/plugin_system/apis/emoji_api.py +++ b/src/plugin_system/apis/emoji_api.py @@ -84,7 +84,9 @@ async def get_random(count: int = 1) -> Optional[List[Tuple[str, str, str]]]: return None if len(valid_emojis) < count: - logger.warning(f"[EmojiAPI] 有效表情包数量 ({len(valid_emojis)}) 少于请求的数量 ({count}),将返回所有有效表情包") + logger.warning( + f"[EmojiAPI] 有效表情包数量 ({len(valid_emojis)}) 少于请求的数量 ({count}),将返回所有有效表情包" + ) count = len(valid_emojis) # 随机选择 diff --git a/src/plugins/built_in/core_actions/emoji.py b/src/plugins/built_in/core_actions/emoji.py index 6303169d8..efd285f9d 100644 --- a/src/plugins/built_in/core_actions/emoji.py +++ b/src/plugins/built_in/core_actions/emoji.py @@ -80,7 +80,6 @@ class EmojiAction(BaseAction): logger.warning(f"{self.log_prefix} 获取到的表情包均无情感标签, 将随机发送") emoji_base64, emoji_description, _ = random.choice(sampled_emojis) else: - # 获取最近的5条消息内容用于判断 recent_messages = message_api.get_recent_messages(chat_id=self.chat_id, limit=5) messages_text = "" @@ -92,7 +91,7 @@ class EmojiAction(BaseAction): truncate=False, show_actions=False, ) - + # 4. 构建prompt让LLM选择情感 prompt = f""" 你是一个正在进行聊天的网友,你需要根据一个理由和最近的聊天记录,从一个情感标签列表中选择最匹配的一个。 @@ -112,13 +111,15 @@ class EmojiAction(BaseAction): logger.error(f"{self.log_prefix} 未找到'chat'模型配置,无法调用LLM") return False, "未找到'chat'模型配置" - success, chosen_emotion, _, _ = await llm_api.generate_with_model(prompt, model_config=chat_model_config, request_type="emoji") + success, chosen_emotion, _, _ = await llm_api.generate_with_model( + prompt, model_config=chat_model_config, request_type="emoji" + ) if not success: logger.error(f"{self.log_prefix} LLM调用失败: {chosen_emotion}") return False, f"LLM调用失败: {chosen_emotion}" - chosen_emotion = chosen_emotion.strip().replace("\"", "").replace("'", "") + chosen_emotion = chosen_emotion.strip().replace('"', "").replace("'", "") logger.info(f"{self.log_prefix} LLM选择的情感: {chosen_emotion}") # 6. 根据选择的情感匹配表情包 @@ -126,7 +127,9 @@ class EmojiAction(BaseAction): emoji_base64, emoji_description = random.choice(emotion_map[chosen_emotion]) logger.info(f"{self.log_prefix} 找到匹配情感 '{chosen_emotion}' 的表情包: {emoji_description}") else: - logger.warning(f"{self.log_prefix} LLM选择的情感 '{chosen_emotion}' 不在可用列表中, 将随机选择一个表情包") + logger.warning( + f"{self.log_prefix} LLM选择的情感 '{chosen_emotion}' 不在可用列表中, 将随机选择一个表情包" + ) emoji_base64, emoji_description, _ = random.choice(sampled_emojis) # 7. 发送表情包