feat(planner): 重构动作规划器以支持组合动作和概率性表情
重写了 Planner 的主 Prompt,引导 LLM 将回复(reply)视为主动作,将表情(emoji)等视为辅助动作,从而更好地生成组合动作,使响应更生动。 - 移除了旧的“100%概率动作强制添加”逻辑,并替换为新的“概率性表情”机制。现在,当生成回复时,会根据配置的概率(emoji_chance)自动附加一个 emoji 动作。 - 改进了 emoji 动作的情感匹配逻辑,从精确匹配改为模糊匹配,提高了根据 LLM 输出找到合适表情的成功率。 - 修复了随机类型动作在激活概率计算时的一个边界条件问题。
This commit is contained in:
@@ -143,9 +143,12 @@ class EmojiAction(BaseAction):
|
||||
chosen_emotion = chosen_emotion.strip().replace('"', "").replace("'", "")
|
||||
logger.info(f"{self.log_prefix} LLM选择的情感: {chosen_emotion}")
|
||||
|
||||
if chosen_emotion in emotion_map:
|
||||
emoji_base64, emoji_description = random.choice(emotion_map[chosen_emotion])
|
||||
logger.info(f"{self.log_prefix} 找到匹配情感 '{chosen_emotion}' 的表情包: {emoji_description}")
|
||||
# 使用模糊匹配来查找最相关的情感标签
|
||||
matched_key = next((key for key in emotion_map if chosen_emotion in key), None)
|
||||
|
||||
if matched_key:
|
||||
emoji_base64, emoji_description = random.choice(emotion_map[matched_key])
|
||||
logger.info(f"{self.log_prefix} 找到匹配情感 '{chosen_emotion}' (匹配到: '{matched_key}') 的表情包: {emoji_description}")
|
||||
else:
|
||||
logger.warning(
|
||||
f"{self.log_prefix} LLM选择的情感 '{chosen_emotion}' 不在可用列表中, 将随机选择一个表情包"
|
||||
|
||||
Reference in New Issue
Block a user