🤖 自动格式化代码 [skip ci]
This commit is contained in:
@@ -192,16 +192,16 @@ class ExpressionLearner:
|
|||||||
"""
|
"""
|
||||||
if time_diff_days <= 0:
|
if time_diff_days <= 0:
|
||||||
return 0.0 # 刚激活的表达式不衰减
|
return 0.0 # 刚激活的表达式不衰减
|
||||||
|
|
||||||
if time_diff_days >= DECAY_DAYS:
|
if time_diff_days >= DECAY_DAYS:
|
||||||
return 0.01 # 长时间未活跃的表达式大幅衰减
|
return 0.01 # 长时间未活跃的表达式大幅衰减
|
||||||
|
|
||||||
# 使用二次函数插值:在0-30天之间从0衰减到0.01
|
# 使用二次函数插值:在0-30天之间从0衰减到0.01
|
||||||
# 使用简单的二次函数:y = a * x^2
|
# 使用简单的二次函数:y = a * x^2
|
||||||
# 当x=30时,y=0.01,所以 a = 0.01 / (30^2) = 0.01 / 900
|
# 当x=30时,y=0.01,所以 a = 0.01 / (30^2) = 0.01 / 900
|
||||||
a = 0.01 / (DECAY_DAYS ** 2)
|
a = 0.01 / (DECAY_DAYS**2)
|
||||||
decay = a * (time_diff_days ** 2)
|
decay = a * (time_diff_days**2)
|
||||||
|
|
||||||
return min(0.01, decay)
|
return min(0.01, decay)
|
||||||
|
|
||||||
def apply_decay_to_expressions(
|
def apply_decay_to_expressions(
|
||||||
|
|||||||
@@ -412,25 +412,27 @@ class SubHeartflow:
|
|||||||
|
|
||||||
def is_in_focus_cooldown(self) -> bool:
|
def is_in_focus_cooldown(self) -> bool:
|
||||||
"""检查是否在focus模式的冷却期内
|
"""检查是否在focus模式的冷却期内
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
bool: 如果在冷却期内返回True,否则返回False
|
bool: 如果在冷却期内返回True,否则返回False
|
||||||
"""
|
"""
|
||||||
if self.last_focus_exit_time == 0:
|
if self.last_focus_exit_time == 0:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# 基础冷却时间10分钟,受auto_focus_threshold调控
|
# 基础冷却时间10分钟,受auto_focus_threshold调控
|
||||||
base_cooldown = 10 * 60 # 10分钟转换为秒
|
base_cooldown = 10 * 60 # 10分钟转换为秒
|
||||||
cooldown_duration = base_cooldown / global_config.chat.auto_focus_threshold
|
cooldown_duration = base_cooldown / global_config.chat.auto_focus_threshold
|
||||||
|
|
||||||
current_time = time.time()
|
current_time = time.time()
|
||||||
elapsed_since_exit = current_time - self.last_focus_exit_time
|
elapsed_since_exit = current_time - self.last_focus_exit_time
|
||||||
|
|
||||||
is_cooling = elapsed_since_exit < cooldown_duration
|
is_cooling = elapsed_since_exit < cooldown_duration
|
||||||
|
|
||||||
if is_cooling:
|
if is_cooling:
|
||||||
remaining_time = cooldown_duration - elapsed_since_exit
|
remaining_time = cooldown_duration - elapsed_since_exit
|
||||||
remaining_minutes = remaining_time / 60
|
remaining_minutes = remaining_time / 60
|
||||||
logger.debug(f"[{self.log_prefix}] focus冷却中,剩余时间: {remaining_minutes:.1f}分钟 (阈值: {global_config.chat.auto_focus_threshold})")
|
logger.debug(
|
||||||
|
f"[{self.log_prefix}] focus冷却中,剩余时间: {remaining_minutes:.1f}分钟 (阈值: {global_config.chat.auto_focus_threshold})"
|
||||||
|
)
|
||||||
|
|
||||||
return is_cooling
|
return is_cooling
|
||||||
|
|||||||
Reference in New Issue
Block a user