修复 sender name 混乱

pull/937/head
Bakadax 2025-05-09 09:11:59 +08:00
parent 80f97ffbe2
commit b1dcd3d0ad
5 changed files with 5 additions and 14 deletions

View File

@ -212,7 +212,7 @@ class ActionPlanner:
goals_str = self._build_goals_string(conversation_info)
chat_history_text = await build_chat_history_text(observation_info, self.private_name)
# 获取 sender_name, relationship_text, current_emotion_text
sender_name_str = getattr(observation_info, "sender_name", "对方") # 从 observation_info 获取
sender_name_str = self.private_name
if not sender_name_str:
sender_name_str = "对方" # 再次确保有默认值

View File

@ -200,7 +200,7 @@ async def run_conversation_loop(conversation_instance: "Conversation"):
):
last_user_msg = other_new_messages_during_planning[-1]
last_user_msg_text = last_user_msg.get("processed_plain_text", "用户发了新消息")
sender_name_for_event = getattr(conversation_instance.observation_info, "sender_name", "对方")
sender_name_for_event = conversation_instance.private_name
event_desc = f"用户【{sender_name_for_event}】发送了新消息: '{last_user_msg_text[:30]}...'"
await conversation_instance.emotion_updater.update_emotion_based_on_context(
conversation_info=conversation_instance.conversation_info,

View File

@ -114,8 +114,6 @@ class ObservationInfo:
"""初始化 ObservationInfo"""
self.private_name: str = private_name
# 新增:发信人信息
self.sender_name: Optional[str] = None
self.sender_user_id: Optional[str] = None # 存储为字符串
self.sender_platform: Optional[str] = None
@ -232,23 +230,20 @@ class ObservationInfo:
if user_info:
try:
self.sender_user_id = str(user_info.user_id) # 确保是字符串
self.sender_name = user_info.user_nickname # 或者 user_info.card 如果私聊时card更准
self.sender_platform = user_info.platform
current_message_sender_id = self.sender_user_id # 用于后续逻辑
logger.debug(
f"[私聊][{self.private_name}] 更新发信人信息: ID={self.sender_user_id}, Name={self.sender_name}, Platform={self.sender_platform}"
f"[私聊][{self.private_name}] 更新发信人信息: ID={self.sender_user_id}, Name={self.private_name}, Platform={self.sender_platform}"
)
except AttributeError as e:
logger.error(f"[私聊][{self.private_name}] 从 UserInfo 对象提取信息时出错: {e}, UserInfo: {user_info}")
# 如果提取失败,将这些新字段设为 None避免使用旧数据
self.sender_user_id = None
self.sender_name = None
self.sender_platform = None
else:
logger.warning(f"[私聊][{self.private_name}] 处理消息更新时缺少有效的 UserInfo, message_id: {message_id}")
# 如果没有 UserInfo也将这些新字段设为 None
self.sender_user_id = None
self.sender_name = None
self.sender_platform = None
# --- 新增/修改结束 ---

View File

@ -71,9 +71,7 @@ class PfcEmotionUpdater:
)
current_mood_text_from_manager = self.mood_mng.current_mood.text # 从 MoodManager 获取当前情绪文本
sender_name_for_prompt = getattr(observation_info, "sender_name", "对方")
if not sender_name_for_prompt:
sender_name_for_prompt = "对方"
sender_name_for_prompt = self.private_name
relationship_text_for_prompt = getattr(
conversation_info, "relationship_text", "关系一般。"
) # 从 ConversationInfo 获取关系文本

View File

@ -218,9 +218,7 @@ class ReplyGenerator:
chat_history_text = await build_chat_history_text(observation_info, self.private_name)
sender_name_str = getattr(observation_info, "sender_name", "对方")
if not sender_name_str:
sender_name_str = "对方"
sender_name_str = self.private_name
relationship_text_str = getattr(conversation_info, "relationship_text", "你们还不熟悉。")
current_emotion_text_str = getattr(conversation_info, "current_emotion_text", "心情平静。")