🤖 自动格式化代码 [skip ci]
This commit is contained in:
@@ -84,7 +84,9 @@ async def get_random(count: int = 1) -> Optional[List[Tuple[str, str, str]]]:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
if len(valid_emojis) < count:
|
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)
|
count = len(valid_emojis)
|
||||||
|
|
||||||
# 随机选择
|
# 随机选择
|
||||||
|
|||||||
@@ -80,7 +80,6 @@ class EmojiAction(BaseAction):
|
|||||||
logger.warning(f"{self.log_prefix} 获取到的表情包均无情感标签, 将随机发送")
|
logger.warning(f"{self.log_prefix} 获取到的表情包均无情感标签, 将随机发送")
|
||||||
emoji_base64, emoji_description, _ = random.choice(sampled_emojis)
|
emoji_base64, emoji_description, _ = random.choice(sampled_emojis)
|
||||||
else:
|
else:
|
||||||
|
|
||||||
# 获取最近的5条消息内容用于判断
|
# 获取最近的5条消息内容用于判断
|
||||||
recent_messages = message_api.get_recent_messages(chat_id=self.chat_id, limit=5)
|
recent_messages = message_api.get_recent_messages(chat_id=self.chat_id, limit=5)
|
||||||
messages_text = ""
|
messages_text = ""
|
||||||
@@ -92,7 +91,7 @@ class EmojiAction(BaseAction):
|
|||||||
truncate=False,
|
truncate=False,
|
||||||
show_actions=False,
|
show_actions=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
# 4. 构建prompt让LLM选择情感
|
# 4. 构建prompt让LLM选择情感
|
||||||
prompt = f"""
|
prompt = f"""
|
||||||
你是一个正在进行聊天的网友,你需要根据一个理由和最近的聊天记录,从一个情感标签列表中选择最匹配的一个。
|
你是一个正在进行聊天的网友,你需要根据一个理由和最近的聊天记录,从一个情感标签列表中选择最匹配的一个。
|
||||||
@@ -112,13 +111,15 @@ class EmojiAction(BaseAction):
|
|||||||
logger.error(f"{self.log_prefix} 未找到'chat'模型配置,无法调用LLM")
|
logger.error(f"{self.log_prefix} 未找到'chat'模型配置,无法调用LLM")
|
||||||
return False, "未找到'chat'模型配置"
|
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:
|
if not success:
|
||||||
logger.error(f"{self.log_prefix} LLM调用失败: {chosen_emotion}")
|
logger.error(f"{self.log_prefix} LLM调用失败: {chosen_emotion}")
|
||||||
return False, f"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}")
|
logger.info(f"{self.log_prefix} LLM选择的情感: {chosen_emotion}")
|
||||||
|
|
||||||
# 6. 根据选择的情感匹配表情包
|
# 6. 根据选择的情感匹配表情包
|
||||||
@@ -126,7 +127,9 @@ class EmojiAction(BaseAction):
|
|||||||
emoji_base64, emoji_description = random.choice(emotion_map[chosen_emotion])
|
emoji_base64, emoji_description = random.choice(emotion_map[chosen_emotion])
|
||||||
logger.info(f"{self.log_prefix} 找到匹配情感 '{chosen_emotion}' 的表情包: {emoji_description}")
|
logger.info(f"{self.log_prefix} 找到匹配情感 '{chosen_emotion}' 的表情包: {emoji_description}")
|
||||||
else:
|
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)
|
emoji_base64, emoji_description, _ = random.choice(sampled_emojis)
|
||||||
|
|
||||||
# 7. 发送表情包
|
# 7. 发送表情包
|
||||||
|
|||||||
Reference in New Issue
Block a user