From 83517b71787db07662aaf54b07a64964a699f004 Mon Sep 17 00:00:00 2001 From: tt-P607 <68868379+tt-P607@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:39:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(chat):=20=E4=BF=AE=E5=A4=8D=E8=83=BD?= =?UTF-8?q?=E9=87=8F=E8=B0=83=E6=95=B4=E8=AE=A1=E7=AE=97=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E8=B4=9F=E6=95=B0=E5=B9=82=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当能量值非常接近高能量阈值(0.7)时,由于浮点数精度问题,`energy - 0.7` 的结果可能为一个极小的负数,这会导致 `ValueError` (negative number cannot be raised to a fractional power)。 通过使用 `max(0, ...)` 来确保幂运算的基数始终为非负数,从而解决了这个潜在的运行时错误,增强了系统的健壮性。 --- src/chat/energy_system/energy_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chat/energy_system/energy_manager.py b/src/chat/energy_system/energy_manager.py index 9983174d6..4fbd05c48 100644 --- a/src/chat/energy_system/energy_manager.py +++ b/src/chat/energy_system/energy_manager.py @@ -365,7 +365,7 @@ class EnergyManager: # 计算与阈值的相对位置 if energy >= high_threshold: # 高能量区域:指数增强 - adjusted = 0.7 + (energy - 0.7) ** 0.8 + adjusted = 0.7 + max(0, energy - 0.7) ** 0.8 elif energy >= reply_threshold: # 中等能量区域:线性保持 adjusted = energy