diff --git a/src/plugins/chat/bot.py b/src/plugins/chat/bot.py index d22c3aaf7..52f103c1a 100644 --- a/src/plugins/chat/bot.py +++ b/src/plugins/chat/bot.py @@ -339,24 +339,11 @@ class ChatBot: ) message_manager.add_message(bot_message) - stance,emotion = await self.gpt._get_emotion_tags(raw_content,message.processed_plain_text) + # 获取立场和情感标签,更新关系值 + stance, emotion = await self.gpt._get_emotion_tags(raw_content, message.processed_plain_text) logger.debug(f"为 '{response}' 立场为:{stance} 获取到的情感标签为:{emotion}") await relationship_manager.calculate_update_relationship_value(chat_stream=chat, label=emotion, stance=stance) - # emotion = await self.gpt._get_emotion_tags(raw_content) - # logger.debug(f"为 '{response}' 获取到的情感标签为:{emotion}") - # valuedict = { - # "happy": 0.5, - # "angry": -1, - # "sad": -0.5, - # "surprised": 0.2, - # "disgusted": -1.5, - # "fearful": -0.7, - # "neutral": 0.1, - # } - # await relationship_manager.update_relationship_value( - # chat_stream=chat, relationship_value=valuedict[emotion[0]] - # ) # 使用情绪管理器更新情绪 self.mood_manager.update_mood_from_emotion(emotion[0], global_config.mood_intensity_factor) diff --git a/src/plugins/chat/llm_generator.py b/src/plugins/chat/llm_generator.py index 991d2bf4a..1d62ea064 100644 --- a/src/plugins/chat/llm_generator.py +++ b/src/plugins/chat/llm_generator.py @@ -69,18 +69,6 @@ class ResponseGenerator: else: f"用户({message.chat_stream.user_info.user_id})" - # # 获取关系值 - # relationship_value = ( - # relationship_manager.get_relationship( - # message.chat_stream - # ).relationship_value - # if relationship_manager.get_relationship(message.chat_stream) - # else 0.0 - # ) - # if relationship_value != 0.0: - # # print(f"\033[1;32m[关系管理]\033[0m 回复中_当前关系值: {relationship_value}") - # pass - # 构建prompt prompt, prompt_check = await prompt_builder._build_prompt( message.chat_stream, diff --git a/src/plugins/chat/prompt_builder.py b/src/plugins/chat/prompt_builder.py index ae94db825..3dce60de3 100644 --- a/src/plugins/chat/prompt_builder.py +++ b/src/plugins/chat/prompt_builder.py @@ -34,11 +34,9 @@ class PromptBuilder: Returns: str: 构建好的prompt """ - # 关系 + # 关系(载入当前聊天记录里所以人的关系) relationship_level = ["厌恶", "冷漠", "一般", "友好", "喜欢", "爱慕"] - # position_attitude_list = ["反驳", "中立", "支持"] relation_prompt2 = "" - # position_attitude = "" relation_prompt2_list = ["极度厌恶,冷漠回应或直接辱骂", "关系较差,冷淡回复,保持距离", "关系一般,保持理性", \ "关系较好,友善回复,积极互动", "关系很好,积极回复,关心对方", "关系暧昧,热情回复,无条件支持", ] relation_prompt = "" @@ -53,29 +51,26 @@ class PromptBuilder: relation_prompt += f"你对昵称为'({person.user_info.user_id}){person.user_info.user_nickname}'的用户的态度为" relation_prompt2 += f"你对昵称为'({person.user_info.user_id}){person.user_info.user_nickname}'的用户的回复态度为" relationship_level_num = 2 - # position_attitude_num = 1 if -1000 <= relationship_value < -227: relationship_level_num = 0 - # position_attitude_num = 0 elif -227 <= relationship_value < -73: relationship_level_num = 1 - # position_attitude_num = 0 elif -76 <= relationship_value < 227: relationship_level_num = 2 - # position_attitude_num = 1 elif 227 <= relationship_value < 587: relationship_level_num = 3 - # position_attitude_num = 2 elif 587 <= relationship_value < 900: relationship_level_num = 4 - # position_attitude_num = 2 - elif 900 <= relationship_value <= 1000: # 不是随便写的数据! + elif 900 <= relationship_value <= 1000: # 不是随便写的数据喵 relationship_level_num = 5 - # position_attitude_num = 2 - else: + elif relationship_value > 1000 or relationship_value < -1000: + if relationship_value > 1000: + relationship_level_num = 5 + else: + relationship_level_num = 0 logger.debug("relationship_value 超出有效范围 (-1000 到 1000)") + relation_prompt2 += relation_prompt2_list[relationship_level_num] + "," - # position_attitude = position_attitude_list[position_attitude_num] relation_prompt += relationship_level[relationship_level_num] + "," # 开始构建prompt diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 93b405f4c..91c519b2e 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -208,14 +208,14 @@ def get_recent_group_speaker(chat_stream_id: int, sender, limit: int = 12) -> li if not recent_messages: return [] - who_chat_in_group = [] + who_chat_in_group = [] # ChatStream列表 duplicate_removal = [] for msg_db_data in recent_messages: user_info = UserInfo.from_dict(msg_db_data["user_info"]) if (user_info.user_id, user_info.platform) != sender \ and (user_info.user_id, user_info.platform) != (global_config.BOT_QQ, "qq") \ - and (user_info.user_id, user_info.platform) not in duplicate_removal: + and (user_info.user_id, user_info.platform) not in duplicate_removal: # 排除重复,排除消息发送者,排除bot(此处bot的平台强制为了qq,可能需要更改) duplicate_removal.append((user_info.user_id, user_info.platform)) chat_info = msg_db_data.get("chat_info", {})