fix:修复表达学习出错

This commit is contained in:
SengokuCola
2025-08-09 00:19:02 +08:00
parent 35c13986d1
commit 5220c269b6
4 changed files with 15 additions and 10 deletions

View File

@@ -627,8 +627,9 @@ class HeartFChatting:
# 设置了关闭标志位后被取消是正常流程 # 设置了关闭标志位后被取消是正常流程
logger.info(f"{self.log_prefix} 麦麦已关闭聊天") logger.info(f"{self.log_prefix} 麦麦已关闭聊天")
except Exception: except Exception:
logger.error(f"{self.log_prefix} 麦麦聊天意外错误,尝试重新启动") logger.error(f"{self.log_prefix} 麦麦聊天意外错误,将于3s后尝试重新启动")
print(traceback.format_exc()) print(traceback.format_exc())
await asyncio.sleep(3)
self._loop_task = asyncio.create_task(self._main_chat_loop()) self._loop_task = asyncio.create_task(self._main_chat_loop())
logger.error(f"{self.log_prefix} 结束了当前聊天循环") logger.error(f"{self.log_prefix} 结束了当前聊天循环")

View File

@@ -10,7 +10,7 @@ from src.common.logger import get_logger
from src.common.database.database_model import Expression from src.common.database.database_model import Expression
from src.llm_models.utils_model import LLMRequest from src.llm_models.utils_model import LLMRequest
from src.config.config import model_config, global_config 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.utils.prompt_builder import Prompt, global_prompt_manager
from src.chat.message_receive.chat_stream import get_chat_manager from src.chat.message_receive.chat_stream import get_chat_manager
@@ -146,8 +146,10 @@ class ExpressionLearner:
return False return False
# 检查消息数量(只检查指定聊天流的消息) # 检查消息数量(只检查指定聊天流的消息)
recent_messages = get_raw_msg_by_timestamp_random( recent_messages = get_raw_msg_by_timestamp_with_chat_inclusive(
self.last_learning_time, current_time, limit=self.min_messages_for_learning + 1, chat_id=self.chat_id 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: if not recent_messages or len(recent_messages) < self.min_messages_for_learning:
@@ -404,9 +406,11 @@ class ExpressionLearner:
current_time = time.time() 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_with_chat_inclusive(
random_msg: Optional[List[Dict[str, Any]]] = get_raw_msg_by_timestamp_random( chat_id=self.chat_id,
last_time, current_time, limit=num, chat_id=self.chat_id timestamp_start=self.last_learning_time,
timestamp_end=current_time,
limit=num,
) )
# print(random_msg) # print(random_msg)

View File

@@ -165,7 +165,7 @@ class LLMRequest:
model_info, api_provider, client = self._select_model() 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( response = await self._execute_request(
api_provider=api_provider, api_provider=api_provider,

View File

@@ -196,7 +196,7 @@ class MoodRegressionTask(AsyncTask):
self.mood_manager = mood_manager self.mood_manager = mood_manager
async def run(self): async def run(self):
logger.debug("Running mood regression task...") logger.debug("开始情绪回归任务...")
now = time.time() now = time.time()
for mood in self.mood_manager.mood_list: for mood in self.mood_manager.mood_list:
if mood.last_change_time == 0: if mood.last_change_time == 0:
@@ -206,7 +206,7 @@ class MoodRegressionTask(AsyncTask):
if mood.regression_count >= 3: if mood.regression_count >= 3:
continue 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() await mood.regress_mood()