mirror of https://github.com/Mai-with-u/MaiBot.git
适配重构后的情绪管理器
parent
8710c357df
commit
0e28d277c2
|
|
@ -138,9 +138,6 @@ class Conversation:
|
|||
logger.debug(f"[私聊][{self.private_name}] 已减少IdleChat活跃实例计数")
|
||||
if self.observation_info and self.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 # 标记为未初始化
|
||||
logger.info(f"[私聊][{self.private_name}] 对话实例 {self.stream_id} 已停止。")
|
||||
|
|
|
|||
|
|
@ -249,22 +249,6 @@ async def initialize_core_components(conversation_instance: "Conversation"):
|
|||
# 不需要再次启动,只需确保已初始化
|
||||
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 (
|
||||
conversation_instance.conversation_info
|
||||
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: # 确保都存在
|
||||
try:
|
||||
conversation_instance.conversation_info.current_emotion_text = (
|
||||
conversation_instance.mood_mng.get_prompt()
|
||||
conversation_instance.mood_mng.get_mood_prompt()
|
||||
) # type: ignore
|
||||
logger.debug(
|
||||
f"[私聊][{conversation_instance.private_name}] (Initializer) 初始化时加载情绪文本: {conversation_instance.conversation_info.current_emotion_text}"
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ async def run_conversation_loop(conversation_instance: "Conversation"):
|
|||
conversation_instance.conversation_info.relationship_text = "你们的关系是:普通。"
|
||||
if conversation_instance.mood_mng:
|
||||
conversation_instance.conversation_info.current_emotion_text = (
|
||||
conversation_instance.mood_mng.get_prompt()
|
||||
conversation_instance.mood_mng.get_mood_prompt()
|
||||
)
|
||||
|
||||
if not all(
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class PfcEmotionUpdater:
|
|||
logger.error(f"[私聊][{self.private_name}] LLM未初始化,无法进行情绪更新。")
|
||||
# 即使LLM失败,也应该更新conversation_info中的情绪文本为MoodManager的当前状态
|
||||
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
|
||||
|
||||
if not self.mood_mng or not conversation_info or not observation_info:
|
||||
|
|
@ -97,7 +97,7 @@ class PfcEmotionUpdater:
|
|||
if (
|
||||
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)
|
||||
logger.debug(
|
||||
|
|
@ -114,4 +114,4 @@ class PfcEmotionUpdater:
|
|||
|
||||
# 无论LLM判断如何,都更新conversation_info中的情绪文本以供Prompt使用
|
||||
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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue