添加一点注释
This commit is contained in:
@@ -339,24 +339,11 @@ class ChatBot:
|
|||||||
)
|
)
|
||||||
message_manager.add_message(bot_message)
|
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}")
|
logger.debug(f"为 '{response}' 立场为:{stance} 获取到的情感标签为:{emotion}")
|
||||||
await relationship_manager.calculate_update_relationship_value(chat_stream=chat, label=emotion, stance=stance)
|
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)
|
self.mood_manager.update_mood_from_emotion(emotion[0], global_config.mood_intensity_factor)
|
||||||
|
|
||||||
|
|||||||
@@ -69,18 +69,6 @@ class ResponseGenerator:
|
|||||||
else:
|
else:
|
||||||
f"用户({message.chat_stream.user_info.user_id})"
|
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, prompt_check = await prompt_builder._build_prompt(
|
prompt, prompt_check = await prompt_builder._build_prompt(
|
||||||
message.chat_stream,
|
message.chat_stream,
|
||||||
|
|||||||
@@ -34,11 +34,9 @@ class PromptBuilder:
|
|||||||
Returns:
|
Returns:
|
||||||
str: 构建好的prompt
|
str: 构建好的prompt
|
||||||
"""
|
"""
|
||||||
# 关系
|
# 关系(载入当前聊天记录里所以人的关系)
|
||||||
relationship_level = ["厌恶", "冷漠", "一般", "友好", "喜欢", "爱慕"]
|
relationship_level = ["厌恶", "冷漠", "一般", "友好", "喜欢", "爱慕"]
|
||||||
# position_attitude_list = ["反驳", "中立", "支持"]
|
|
||||||
relation_prompt2 = ""
|
relation_prompt2 = ""
|
||||||
# position_attitude = ""
|
|
||||||
relation_prompt2_list = ["极度厌恶,冷漠回应或直接辱骂", "关系较差,冷淡回复,保持距离", "关系一般,保持理性", \
|
relation_prompt2_list = ["极度厌恶,冷漠回应或直接辱骂", "关系较差,冷淡回复,保持距离", "关系一般,保持理性", \
|
||||||
"关系较好,友善回复,积极互动", "关系很好,积极回复,关心对方", "关系暧昧,热情回复,无条件支持", ]
|
"关系较好,友善回复,积极互动", "关系很好,积极回复,关心对方", "关系暧昧,热情回复,无条件支持", ]
|
||||||
relation_prompt = ""
|
relation_prompt = ""
|
||||||
@@ -53,29 +51,26 @@ class PromptBuilder:
|
|||||||
relation_prompt += f"你对昵称为'({person.user_info.user_id}){person.user_info.user_nickname}'的用户的态度为"
|
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}'的用户的回复态度为"
|
relation_prompt2 += f"你对昵称为'({person.user_info.user_id}){person.user_info.user_nickname}'的用户的回复态度为"
|
||||||
relationship_level_num = 2
|
relationship_level_num = 2
|
||||||
# position_attitude_num = 1
|
|
||||||
if -1000 <= relationship_value < -227:
|
if -1000 <= relationship_value < -227:
|
||||||
relationship_level_num = 0
|
relationship_level_num = 0
|
||||||
# position_attitude_num = 0
|
|
||||||
elif -227 <= relationship_value < -73:
|
elif -227 <= relationship_value < -73:
|
||||||
relationship_level_num = 1
|
relationship_level_num = 1
|
||||||
# position_attitude_num = 0
|
|
||||||
elif -76 <= relationship_value < 227:
|
elif -76 <= relationship_value < 227:
|
||||||
relationship_level_num = 2
|
relationship_level_num = 2
|
||||||
# position_attitude_num = 1
|
|
||||||
elif 227 <= relationship_value < 587:
|
elif 227 <= relationship_value < 587:
|
||||||
relationship_level_num = 3
|
relationship_level_num = 3
|
||||||
# position_attitude_num = 2
|
|
||||||
elif 587 <= relationship_value < 900:
|
elif 587 <= relationship_value < 900:
|
||||||
relationship_level_num = 4
|
relationship_level_num = 4
|
||||||
# position_attitude_num = 2
|
elif 900 <= relationship_value <= 1000: # 不是随便写的数据喵
|
||||||
elif 900 <= relationship_value <= 1000: # 不是随便写的数据!
|
|
||||||
relationship_level_num = 5
|
relationship_level_num = 5
|
||||||
# position_attitude_num = 2
|
elif relationship_value > 1000 or relationship_value < -1000:
|
||||||
else:
|
if relationship_value > 1000:
|
||||||
|
relationship_level_num = 5
|
||||||
|
else:
|
||||||
|
relationship_level_num = 0
|
||||||
logger.debug("relationship_value 超出有效范围 (-1000 到 1000)")
|
logger.debug("relationship_value 超出有效范围 (-1000 到 1000)")
|
||||||
|
|
||||||
relation_prompt2 += relation_prompt2_list[relationship_level_num] + ","
|
relation_prompt2 += relation_prompt2_list[relationship_level_num] + ","
|
||||||
# position_attitude = position_attitude_list[position_attitude_num]
|
|
||||||
relation_prompt += relationship_level[relationship_level_num] + ","
|
relation_prompt += relationship_level[relationship_level_num] + ","
|
||||||
|
|
||||||
# 开始构建prompt
|
# 开始构建prompt
|
||||||
|
|||||||
@@ -208,14 +208,14 @@ def get_recent_group_speaker(chat_stream_id: int, sender, limit: int = 12) -> li
|
|||||||
if not recent_messages:
|
if not recent_messages:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
who_chat_in_group = []
|
who_chat_in_group = [] # ChatStream列表
|
||||||
|
|
||||||
duplicate_removal = []
|
duplicate_removal = []
|
||||||
for msg_db_data in recent_messages:
|
for msg_db_data in recent_messages:
|
||||||
user_info = UserInfo.from_dict(msg_db_data["user_info"])
|
user_info = UserInfo.from_dict(msg_db_data["user_info"])
|
||||||
if (user_info.user_id, user_info.platform) != sender \
|
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) != (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))
|
duplicate_removal.append((user_info.user_id, user_info.platform))
|
||||||
chat_info = msg_db_data.get("chat_info", {})
|
chat_info = msg_db_data.get("chat_info", {})
|
||||||
|
|||||||
Reference in New Issue
Block a user