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} 麦麦已关闭聊天")
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} 结束了当前聊天循环")

View File

@@ -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)

View File

@@ -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,

View File

@@ -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()