From 25a2caf3c09635c09fe31f24018da7796122de1c Mon Sep 17 00:00:00 2001 From: Navinatte Date: Mon, 11 Aug 2025 22:22:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=83=BD=E9=87=8F=E5=80=BC?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA=20----?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E7=9A=84=E5=A4=AA=E5=88=B7=E5=B1=8F=E4=BA=86?= =?UTF-8?q?...=20-=20=E6=B7=BB=E5=8A=A0=E8=83=BD=E9=87=8F=E5=80=BC?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=97=B6=E9=97=B4=E9=97=B4=E9=9A=94=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=20(90=E7=A7=92)=20-=E6=9A=82=E6=97=B6=E5=85=88?= =?UTF-8?q?=E8=BF=99=E4=B9=88=E5=86=99=20-=20=E5=87=8F=E5=B0=91=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=88=B7=E5=B1=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改文件: - src/chat/chat_loop/heartFC_chat.py - template/model_config_template.toml: 别问为什么改了这个,问就是手残() --- src/chat/chat_loop/heartFC_chat.py | 43 +++++++++++++++++++++++------ template/model_config_template.toml | 2 +- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/src/chat/chat_loop/heartFC_chat.py b/src/chat/chat_loop/heartFC_chat.py index f15223752..11cb31566 100644 --- a/src/chat/chat_loop/heartFC_chat.py +++ b/src/chat/chat_loop/heartFC_chat.py @@ -120,6 +120,10 @@ class HeartFChatting: self.focus_energy = 1 self.no_reply_consecutive = 0 + + # 能量值日志时间控制 + self.last_energy_log_time = 0 # 上次记录能量值日志的时间 + self.energy_log_interval = 90 # 能量值日志间隔(秒) async def start(self): """检查是否需要启动主循环,如果未激活则启动。""" @@ -172,11 +176,33 @@ class HeartFChatting: self._current_cycle_detail.end_time = time.time() def _handle_energy_completion(self, task: asyncio.Task): - if exception := task.exception(): - logger.error(f"{self.log_prefix} HeartFChatting: 能量循环异常: {exception}") - logger.error(traceback.format_exc()) + """处理能量循环任务的完成""" + if task.cancelled(): + logger.info(f"{self.log_prefix} 能量循环任务被取消") + elif task.exception(): + logger.error(f"{self.log_prefix} 能量循环任务发生异常: {task.exception()}") + + def _should_log_energy(self) -> bool: + """判断是否应该记录能量值日志(基于时间间隔控制)""" + current_time = time.time() + if current_time - self.last_energy_log_time >= self.energy_log_interval: + self.last_energy_log_time = current_time + return True + return False + + def _log_energy_change(self, action: str, reason: str = ""): + """记录能量值变化日志(受时间间隔控制)""" + if self._should_log_energy(): + if reason: + logger.info(f"{self.log_prefix} {action},{reason},当前能量值:{self.energy_value:.1f}") + else: + logger.info(f"{self.log_prefix} {action},当前能量值:{self.energy_value:.1f}") else: - logger.info(f"{self.log_prefix} HeartFChatting: 能量循环完成") + # 仍然以debug级别记录,便于调试 + if reason: + logger.debug(f"{self.log_prefix} {action},{reason},当前能量值:{self.energy_value:.1f}") + else: + logger.debug(f"{self.log_prefix} {action},当前能量值:{self.energy_value:.1f}") async def _energy_loop(self): while self.running: @@ -298,7 +324,7 @@ class HeartFChatting: if self.last_action == "no_reply": if not await self._execute_no_reply(recent_messages_dict): self.energy_value -= 0.3 / global_config.chat.focus_value - logger.info(f"{self.log_prefix} 能量值减少,当前能量值:{self.energy_value:.1f}") + self._log_energy_change("能量值减少") await asyncio.sleep(0.5) return True @@ -306,7 +332,7 @@ class HeartFChatting: if await self._observe(): self.energy_value += 1 / global_config.chat.focus_value - logger.info(f"{self.log_prefix} 能量值增加,当前能量值:{self.energy_value:.1f}") + self._log_energy_change("能量值增加") if self.energy_value <= 1: self.energy_value = 1 @@ -335,11 +361,12 @@ class HeartFChatting: if if_think: factor = max(global_config.chat.focus_value, 0.1) self.energy_value *= 1.1 * factor - logger.info(f"{self.log_prefix} 进行了思考,能量值按倍数增加,当前能量值:{self.energy_value:.1f}") + self._log_energy_change("进行了思考,能量值按倍数增加") else: self.energy_value += 0.1 * global_config.chat.focus_value - logger.debug(f"{self.log_prefix} 没有进行思考,能量值线性增加,当前能量值:{self.energy_value:.1f}") + self._log_energy_change("没有进行思考,能量值线性增加") + # 这个可以保持debug级别,因为它是总结性信息 logger.debug(f"{self.log_prefix} 当前能量值:{self.energy_value:.1f}") return True diff --git a/template/model_config_template.toml b/template/model_config_template.toml index 77993954a..f112957c7 100644 --- a/template/model_config_template.toml +++ b/template/model_config_template.toml @@ -15,7 +15,7 @@ retry_interval = 10 # 重试间隔时间(单位:秒) [[api_providers]] # SiliconFlow的API服务商配置 name = "SiliconFlow" base_url = "https://api.siliconflow.cn/v1" -api_key = "your-siliconflow-api-key" +api_key = "your-siliconflow-api-key-here" client_type = "openai" max_retry = 2 timeout = 30