better:继续优化

This commit is contained in:
SengokuCola
2025-05-28 22:42:25 +08:00
parent 278521063f
commit cd41dcb4cb
9 changed files with 42 additions and 25 deletions

View File

@@ -234,9 +234,8 @@ class DefaultExpressor:
# logger.info(f"{self.log_prefix}\nPrompt:\n{prompt}\n---------------------------\n") # logger.info(f"{self.log_prefix}\nPrompt:\n{prompt}\n---------------------------\n")
logger.info(f"想要表达:{in_mind_reply}") logger.info(f"想要表达:{in_mind_reply}||理由:{reason}")
logger.info(f"理由:{reason}") logger.info(f"最终回复: {content}\n")
logger.info(f"生成回复: {content}\n")
info_catcher.catch_after_llm_generated( info_catcher.catch_after_llm_generated(
prompt=prompt, response=content, reasoning_content=reasoning_content, model_name=model_name prompt=prompt, response=content, reasoning_content=reasoning_content, model_name=model_name

View File

@@ -54,7 +54,7 @@ CONSECUTIVE_NO_REPLY_THRESHOLD = 3 # 连续不回复的阈值
logger = get_logger("hfc") # Logger Name Changed logger = get_logger("hfc") # Logger Name Changed
# 设定处理器超时时间(秒) # 设定处理器超时时间(秒)
PROCESSOR_TIMEOUT = 20 PROCESSOR_TIMEOUT = 40
async def _handle_cycle_delay(action_taken_this_cycle: bool, cycle_start_time: float, log_prefix: str): async def _handle_cycle_delay(action_taken_this_cycle: bool, cycle_start_time: float, log_prefix: str):
@@ -407,14 +407,14 @@ class HeartFChatting:
# 使用 await task 来获取结果或触发异常 # 使用 await task 来获取结果或触发异常
result_list = await task result_list = await task
logger.info( logger.info(
f"{self.log_prefix} 处理器 {processor_name} 已完成,信息已处理: {duration_since_parallel_start:.2f}" f"{self.log_prefix} 处理器 {processor_name} 已完成!"
) )
if result_list is not None: if result_list is not None:
all_plan_info.extend(result_list) all_plan_info.extend(result_list)
else: else:
logger.warning(f"{self.log_prefix} 处理器 {processor_name} 返回了 None") logger.warning(f"{self.log_prefix} 处理器 {processor_name} 返回了 None")
except asyncio.TimeoutError: except asyncio.TimeoutError:
logger.error(f"{self.log_prefix} 处理器 {processor_name} 超时(>{PROCESSOR_TIMEOUT}s已跳过") logger.info(f"{self.log_prefix} 处理器 {processor_name} 超时(>{PROCESSOR_TIMEOUT}s已跳过")
except Exception as e: except Exception as e:
logger.error( logger.error(
f"{self.log_prefix} 处理器 {processor_name} 执行失败,耗时 (自并行开始): {duration_since_parallel_start:.2f}秒. 错误: {e}", f"{self.log_prefix} 处理器 {processor_name} 执行失败,耗时 (自并行开始): {duration_since_parallel_start:.2f}秒. 错误: {e}",
@@ -493,7 +493,7 @@ class HeartFChatting:
else: else:
action_str = action_type action_str = action_type
logger.info(f"{self.log_prefix} 麦麦决定'{action_str}', 原因'{reasoning}'") logger.debug(f"{self.log_prefix} 麦麦想要:'{action_str}', 原因'{reasoning}'")
success, reply_text, command = await self._handle_action( success, reply_text, command = await self._handle_action(
action_type, reasoning, action_data, cycle_timers, thinking_id action_type, reasoning, action_data, cycle_timers, thinking_id
@@ -576,8 +576,8 @@ class HeartFChatting:
else: else:
success, reply_text = result success, reply_text = result
command = "" command = ""
logger.info( logger.debug(
f"{self.log_prefix} 麦麦决定'{action}', 原因'{reasoning}',返回结果'{success}', '{reply_text}', '{command}'" f"{self.log_prefix} 麦麦执行了'{action}', 原因'{reasoning}',返回结果'{success}', '{reply_text}', '{command}'"
) )
return success, reply_text, command return success, reply_text, command

View File

@@ -227,7 +227,7 @@ class MindProcessor(BaseProcessor):
# 记录初步思考结果 # 记录初步思考结果
logger.debug(f"{self.log_prefix} 思考prompt: \n{prompt}\n") logger.debug(f"{self.log_prefix} 思考prompt: \n{prompt}\n")
logger.info(f"{self.log_prefix} 思考结果: {content}") logger.info(f"{self.log_prefix} 聊天规划: {content}")
self.update_current_mind(content) self.update_current_mind(content)
return content return content

View File

@@ -186,7 +186,7 @@ class SelfProcessor(BaseProcessor):
content = "" content = ""
# 记录初步思考结果 # 记录初步思考结果
logger.debug(f"{self.log_prefix} 自我识别prompt: \n{prompt}\n") logger.debug(f"{self.log_prefix} 自我识别prompt: \n{prompt}\n")
logger.info(f"{self.log_prefix} 自我识别结果: {content}") logger.info(f"{self.log_prefix} 自我认知: {content}")
return content return content

View File

@@ -93,7 +93,7 @@ class WorkingMemoryProcessor(BaseProcessor):
# chat_info_truncate = observation.talking_message_str_truncate # chat_info_truncate = observation.talking_message_str_truncate
if not working_memory: if not working_memory:
logger.warning(f"{self.log_prefix} 没有找到工作记忆对象") logger.debug(f"{self.log_prefix} 没有找到工作记忆对象")
mind_info = MindInfo() mind_info = MindInfo()
return [mind_info] return [mind_info]
except Exception as e: except Exception as e:
@@ -180,7 +180,7 @@ class WorkingMemoryProcessor(BaseProcessor):
working_memory_info.add_working_memory(memory_str) working_memory_info.add_working_memory(memory_str)
logger.debug(f"{self.log_prefix} 取得工作记忆: {memory_str}") logger.debug(f"{self.log_prefix} 取得工作记忆: {memory_str}")
else: else:
logger.warning(f"{self.log_prefix} 没有找到工作记忆") logger.debug(f"{self.log_prefix} 没有找到工作记忆")
# 根据聊天内容添加新记忆 # 根据聊天内容添加新记忆
if new_memory: if new_memory:

View File

@@ -100,7 +100,8 @@ class ReplyAction(BaseAction):
"emojis": "微笑" # 表情关键词列表(可选) "emojis": "微笑" # 表情关键词列表(可选)
} }
""" """
logger.info(f"{self.log_prefix} 决定回复: {self.reasoning}")
# 从聊天观察获取锚定消息 # 从聊天观察获取锚定消息
chatting_observation: ChattingObservation = next( chatting_observation: ChattingObservation = next(
obs for obs in self.observations if isinstance(obs, ChattingObservation) obs for obs in self.observations if isinstance(obs, ChattingObservation)

View File

@@ -230,17 +230,32 @@ NORMAL_CHAT_RESPONSE_STYLE_CONFIG = {
"console_format": ( "console_format": (
"<white>{time:YYYY-MM-DD HH:mm:ss}</white> | " "<white>{time:YYYY-MM-DD HH:mm:ss}</white> | "
"<level>{level: <8}</level> | " "<level>{level: <8}</level> | "
"<light-yellow>普通聊天回复</light-yellow> | " "<light-yellow>普通水群回复</light-yellow> | "
"<level>{message}</level>" "<level>{message}</level>"
), ),
"file_format": "{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 普通聊天回复 | {message}", "file_format": "{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 普通水群回复 | {message}",
}, },
"simple": { "simple": {
"console_format": "<level>{time:HH:mm:ss}</level> | <light-green>普通聊天回复</light-green> | {message}", "console_format": "<level>{time:HH:mm:ss}</level> | <light-green>普通水群回复</light-green> | {message}",
"file_format": "{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 普通聊天回复 | {message}", "file_format": "{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 普通水群回复 | {message}",
}, },
} }
EXPRESS_STYLE_CONFIG = {
"advanced": {
"console_format": (
"<white>{time:YYYY-MM-DD HH:mm:ss}</white> | "
"<level>{level: <8}</level> | "
"<light-yellow>麦麦表达</light-yellow> | "
"<level>{message}</level>"
),
"file_format": "{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 麦麦表达 | {message}",
},
"simple": {
"console_format": "<level>{time:HH:mm:ss}</level> | <fg #E595FF>麦麦表达</fg #E595FF> | {message}",
"file_format": "{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {extra[module]: <15} | 麦麦表达 | {message}",
},
}
# Topic日志样式配置 # Topic日志样式配置
TOPIC_STYLE_CONFIG = { TOPIC_STYLE_CONFIG = {
@@ -975,7 +990,7 @@ INTEREST_CHAT_STYLE_CONFIG = (
) )
NORMAL_CHAT_STYLE_CONFIG = NORMAL_CHAT_STYLE_CONFIG["simple"] if SIMPLE_OUTPUT else NORMAL_CHAT_STYLE_CONFIG["advanced"] NORMAL_CHAT_STYLE_CONFIG = NORMAL_CHAT_STYLE_CONFIG["simple"] if SIMPLE_OUTPUT else NORMAL_CHAT_STYLE_CONFIG["advanced"]
FOCUS_CHAT_STYLE_CONFIG = FOCUS_CHAT_STYLE_CONFIG["simple"] if SIMPLE_OUTPUT else FOCUS_CHAT_STYLE_CONFIG["advanced"] FOCUS_CHAT_STYLE_CONFIG = FOCUS_CHAT_STYLE_CONFIG["simple"] if SIMPLE_OUTPUT else FOCUS_CHAT_STYLE_CONFIG["advanced"]
EXPRESS_STYLE_CONFIG = EXPRESS_STYLE_CONFIG["simple"] if SIMPLE_OUTPUT else EXPRESS_STYLE_CONFIG["advanced"]
def is_registered_module(record: dict) -> bool: def is_registered_module(record: dict) -> bool:
"""检查是否为已注册的模块""" """检查是否为已注册的模块"""

View File

@@ -47,6 +47,7 @@ from src.common.logger import (
INTEREST_CHAT_STYLE_CONFIG, INTEREST_CHAT_STYLE_CONFIG,
API_SERVER_STYLE_CONFIG, API_SERVER_STYLE_CONFIG,
NORMAL_CHAT_RESPONSE_STYLE_CONFIG, NORMAL_CHAT_RESPONSE_STYLE_CONFIG,
EXPRESS_STYLE_CONFIG,
) )
# 可根据实际需要补充更多模块配置 # 可根据实际需要补充更多模块配置
@@ -98,6 +99,7 @@ MODULE_LOGGER_CONFIGS = {
"api": API_SERVER_STYLE_CONFIG, # API服务器 "api": API_SERVER_STYLE_CONFIG, # API服务器
"normal_chat": NORMAL_CHAT_STYLE_CONFIG, # 一般水群 "normal_chat": NORMAL_CHAT_STYLE_CONFIG, # 一般水群
"focus_chat": FOCUS_CHAT_STYLE_CONFIG, # 专注水群 "focus_chat": FOCUS_CHAT_STYLE_CONFIG, # 专注水群
"expressor": EXPRESS_STYLE_CONFIG, # 麦麦表达
# ...如有更多模块,继续添加... # ...如有更多模块,继续添加...
} }

View File

@@ -142,29 +142,29 @@ class MainSystem:
"""记忆遗忘任务""" """记忆遗忘任务"""
while True: while True:
await asyncio.sleep(global_config.memory.forget_memory_interval) await asyncio.sleep(global_config.memory.forget_memory_interval)
print("\033[1;32m[记忆遗忘]\033[0m 开始遗忘记忆...") logger.info("[记忆遗忘] 开始遗忘记忆...")
await HippocampusManager.get_instance().forget_memory( await HippocampusManager.get_instance().forget_memory(
percentage=global_config.memory.memory_forget_percentage percentage=global_config.memory.memory_forget_percentage
) )
print("\033[1;32m[记忆遗忘]\033[0m 记忆遗忘完成") logger.info("[记忆遗忘] 记忆遗忘完成")
@staticmethod @staticmethod
async def consolidate_memory_task(): async def consolidate_memory_task():
"""记忆整合任务""" """记忆整合任务"""
while True: while True:
await asyncio.sleep(global_config.memory.consolidate_memory_interval) await asyncio.sleep(global_config.memory.consolidate_memory_interval)
print("\033[1;32m[记忆整合]\033[0m 开始整合记忆...") logger.info("[记忆整合] 开始整合记忆...")
await HippocampusManager.get_instance().consolidate_memory() await HippocampusManager.get_instance().consolidate_memory()
print("\033[1;32m[记忆整合]\033[0m 记忆整合完成") logger.info("[记忆整合] 记忆整合完成")
@staticmethod @staticmethod
async def learn_and_store_expression_task(): async def learn_and_store_expression_task():
"""学习并存储表达方式任务""" """学习并存储表达方式任务"""
while True: while True:
await asyncio.sleep(global_config.expression.learning_interval) await asyncio.sleep(global_config.expression.learning_interval)
print("\033[1;32m[表达方式学习]\033[0m 开始学习表达方式...") logger.info("[表达方式学习] 开始学习表达方式...")
await expression_learner.learn_and_store_expression() await expression_learner.learn_and_store_expression()
print("\033[1;32m[表达方式学习]\033[0m 表达方式学习完成") logger.info("[表达方式学习] 表达方式学习完成")
# async def print_mood_task(self): # async def print_mood_task(self):
# """打印情绪状态""" # """打印情绪状态"""