From 5220c269b6adb85bdda153a52f558ccd157fd180 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sat, 9 Aug 2025 00:19:02 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E8=A1=A8?= =?UTF-8?q?=E8=BE=BE=E5=AD=A6=E4=B9=A0=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/chat_loop/heartFC_chat.py | 3 ++- src/chat/express/expression_learner.py | 16 ++++++++++------ src/llm_models/utils_model.py | 2 +- src/mood/mood_manager.py | 4 ++-- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/chat/chat_loop/heartFC_chat.py b/src/chat/chat_loop/heartFC_chat.py index 7ef3894ad..75e6a8c41 100644 --- a/src/chat/chat_loop/heartFC_chat.py +++ b/src/chat/chat_loop/heartFC_chat.py @@ -627,8 +627,9 @@ class HeartFChatting: # 设置了关闭标志位后被取消是正常流程 logger.info(f"{self.log_prefix} 麦麦已关闭聊天") except Exception: - logger.error(f"{self.log_prefix} 麦麦聊天意外错误,尝试重新启动") + logger.error(f"{self.log_prefix} 麦麦聊天意外错误,将于3s后尝试重新启动") print(traceback.format_exc()) + await asyncio.sleep(3) self._loop_task = asyncio.create_task(self._main_chat_loop()) logger.error(f"{self.log_prefix} 结束了当前聊天循环") diff --git a/src/chat/express/expression_learner.py b/src/chat/express/expression_learner.py index 383279c70..19ada5472 100644 --- a/src/chat/express/expression_learner.py +++ b/src/chat/express/expression_learner.py @@ -10,7 +10,7 @@ from src.common.logger import get_logger from src.common.database.database_model import Expression from src.llm_models.utils_model import LLMRequest from src.config.config import model_config, global_config -from src.chat.utils.chat_message_builder import get_raw_msg_by_timestamp_random, build_anonymous_messages +from src.chat.utils.chat_message_builder import get_raw_msg_by_timestamp_with_chat_inclusive, build_anonymous_messages from src.chat.utils.prompt_builder import Prompt, global_prompt_manager from src.chat.message_receive.chat_stream import get_chat_manager @@ -146,8 +146,10 @@ class ExpressionLearner: return False # 检查消息数量(只检查指定聊天流的消息) - recent_messages = get_raw_msg_by_timestamp_random( - self.last_learning_time, current_time, limit=self.min_messages_for_learning + 1, chat_id=self.chat_id + recent_messages = get_raw_msg_by_timestamp_with_chat_inclusive( + chat_id=self.chat_id, + timestamp_start=self.last_learning_time, + timestamp_end=time.time(), ) if not recent_messages or len(recent_messages) < self.min_messages_for_learning: @@ -404,9 +406,11 @@ class ExpressionLearner: current_time = time.time() # 获取上次学习时间 - last_time = self.last_learning_time.get(self.chat_id, current_time - 3600 * 24) - random_msg: Optional[List[Dict[str, Any]]] = get_raw_msg_by_timestamp_random( - last_time, current_time, limit=num, chat_id=self.chat_id + random_msg: Optional[List[Dict[str, Any]]] = get_raw_msg_by_timestamp_with_chat_inclusive( + chat_id=self.chat_id, + timestamp_start=self.last_learning_time, + timestamp_end=current_time, + limit=num, ) # print(random_msg) diff --git a/src/llm_models/utils_model.py b/src/llm_models/utils_model.py index f3668eef3..b9986afce 100644 --- a/src/llm_models/utils_model.py +++ b/src/llm_models/utils_model.py @@ -165,7 +165,7 @@ class LLMRequest: model_info, api_provider, client = self._select_model() # 请求并处理返回值 - logger.info(f"LLM选择耗时: {model_info.name} {time.time() - start_time}") + logger.debug(f"LLM选择耗时: {model_info.name} {time.time() - start_time}") response = await self._execute_request( api_provider=api_provider, diff --git a/src/mood/mood_manager.py b/src/mood/mood_manager.py index 8daf38e65..ea864bd3c 100644 --- a/src/mood/mood_manager.py +++ b/src/mood/mood_manager.py @@ -196,7 +196,7 @@ class MoodRegressionTask(AsyncTask): self.mood_manager = mood_manager async def run(self): - logger.debug("Running mood regression task...") + logger.debug("开始情绪回归任务...") now = time.time() for mood in self.mood_manager.mood_list: if mood.last_change_time == 0: @@ -206,7 +206,7 @@ class MoodRegressionTask(AsyncTask): if mood.regression_count >= 3: continue - logger.info(f"{mood.log_prefix} 开始情绪回归, 这是第 {mood.regression_count + 1} 次") + logger.info(f"{mood.log_prefix} 开始情绪回归, 第 {mood.regression_count + 1} 次") await mood.regress_mood()