适配重构后的情绪管理器

pull/937/head
Bakadax 2025-05-13 13:48:22 +08:00
parent 8710c357df
commit 0e28d277c2
4 changed files with 5 additions and 24 deletions

View File

@ -138,9 +138,6 @@ class Conversation:
logger.debug(f"[私聊][{self.private_name}] 已减少IdleChat活跃实例计数") logger.debug(f"[私聊][{self.private_name}] 已减少IdleChat活跃实例计数")
if self.observation_info and self.chat_observer: # 确保二者都存在 if self.observation_info and self.chat_observer: # 确保二者都存在
self.observation_info.unbind_from_chat_observer() # 解绑 self.observation_info.unbind_from_chat_observer() # 解绑
if self.mood_mng and hasattr(self.mood_mng, "stop_mood_update") and self.mood_mng._running: # type: ignore
self.mood_mng.stop_mood_update() # type: ignore
logger.debug(f"[私聊][{self.private_name}] MoodManager 后台更新已停止。")
self._initialized = False # 标记为未初始化 self._initialized = False # 标记为未初始化
logger.info(f"[私聊][{self.private_name}] 对话实例 {self.stream_id} 已停止。") logger.info(f"[私聊][{self.private_name}] 对话实例 {self.stream_id} 已停止。")

View File

@ -249,22 +249,6 @@ async def initialize_core_components(conversation_instance: "Conversation"):
# 不需要再次启动,只需确保已初始化 # 不需要再次启动,只需确保已初始化
logger.debug(f"[私聊][{conversation_instance.private_name}] (Initializer) IdleChat实例已初始化") logger.debug(f"[私聊][{conversation_instance.private_name}] (Initializer) IdleChat实例已初始化")
if (
conversation_instance.mood_mng
and hasattr(conversation_instance.mood_mng, "start_mood_update")
and not conversation_instance.mood_mng._running
): # type: ignore
conversation_instance.mood_mng.start_mood_update(update_interval=global_config.mood_update_interval) # type: ignore
logger.debug(
f"[私聊][{conversation_instance.private_name}] (Initializer) MoodManager 已启动后台更新,间隔: {global_config.mood_update_interval} 秒。"
)
elif conversation_instance.mood_mng and conversation_instance.mood_mng._running: # type: ignore
logger.debug(f"[私聊][{conversation_instance.private_name}] (Initializer) MoodManager 已在运行中。")
else:
logger.warning(
f"[私聊][{conversation_instance.private_name}] (Initializer) MoodManager 未能启动,相关功能可能受限。"
)
if ( if (
conversation_instance.conversation_info conversation_instance.conversation_info
and conversation_instance.conversation_info.person_id and conversation_instance.conversation_info.person_id
@ -299,7 +283,7 @@ async def initialize_core_components(conversation_instance: "Conversation"):
if conversation_instance.conversation_info and conversation_instance.mood_mng: # 确保都存在 if conversation_instance.conversation_info and conversation_instance.mood_mng: # 确保都存在
try: try:
conversation_instance.conversation_info.current_emotion_text = ( conversation_instance.conversation_info.current_emotion_text = (
conversation_instance.mood_mng.get_prompt() conversation_instance.mood_mng.get_mood_prompt()
) # type: ignore ) # type: ignore
logger.debug( logger.debug(
f"[私聊][{conversation_instance.private_name}] (Initializer) 初始化时加载情绪文本: {conversation_instance.conversation_info.current_emotion_text}" f"[私聊][{conversation_instance.private_name}] (Initializer) 初始化时加载情绪文本: {conversation_instance.conversation_info.current_emotion_text}"

View File

@ -118,7 +118,7 @@ async def run_conversation_loop(conversation_instance: "Conversation"):
conversation_instance.conversation_info.relationship_text = "你们的关系是:普通。" conversation_instance.conversation_info.relationship_text = "你们的关系是:普通。"
if conversation_instance.mood_mng: if conversation_instance.mood_mng:
conversation_instance.conversation_info.current_emotion_text = ( conversation_instance.conversation_info.current_emotion_text = (
conversation_instance.mood_mng.get_prompt() conversation_instance.mood_mng.get_mood_prompt()
) )
if not all( if not all(

View File

@ -51,7 +51,7 @@ class PfcEmotionUpdater:
logger.error(f"[私聊][{self.private_name}] LLM未初始化无法进行情绪更新。") logger.error(f"[私聊][{self.private_name}] LLM未初始化无法进行情绪更新。")
# 即使LLM失败也应该更新conversation_info中的情绪文本为MoodManager的当前状态 # 即使LLM失败也应该更新conversation_info中的情绪文本为MoodManager的当前状态
if conversation_info and self.mood_mng: if conversation_info and self.mood_mng:
conversation_info.current_emotion_text = self.mood_mng.get_prompt() conversation_info.current_emotion_text = self.mood_mng.get_mood_prompt()
return return
if not self.mood_mng or not conversation_info or not observation_info: if not self.mood_mng or not conversation_info or not observation_info:
@ -97,7 +97,7 @@ class PfcEmotionUpdater:
if ( if (
detected_emotion_word detected_emotion_word
and detected_emotion_word != "无变化" and detected_emotion_word != "无变化"
and detected_emotion_word in self.mood_mng.emotion_map and detected_emotion_word in self.mood_mng.EMOTION_FACTOR_MAP
): ):
self.mood_mng.update_mood_from_emotion(detected_emotion_word, intensity=self.EMOTION_UPDATE_INTENSITY) self.mood_mng.update_mood_from_emotion(detected_emotion_word, intensity=self.EMOTION_UPDATE_INTENSITY)
logger.debug( logger.debug(
@ -114,4 +114,4 @@ class PfcEmotionUpdater:
# 无论LLM判断如何都更新conversation_info中的情绪文本以供Prompt使用 # 无论LLM判断如何都更新conversation_info中的情绪文本以供Prompt使用
if conversation_info and self.mood_mng: # 确保conversation_info有效 if conversation_info and self.mood_mng: # 确保conversation_info有效
conversation_info.current_emotion_text = self.mood_mng.get_prompt() conversation_info.current_emotion_text = self.mood_mng.get_mood_prompt()