修复interest_value为None的情况,确保在计算兴趣值时不会出现错误。将interest_value的默认值设置为0.0,以提高代码的健壮性。

This commit is contained in:
minecraft1024a
2025-08-13 13:44:12 +08:00
committed by Windpicker-owo
parent 1e785a117d
commit e6499e2fa7
2 changed files with 23 additions and 5 deletions

View File

@@ -305,7 +305,18 @@ class HeartFChatting:
total_interest += float(interest_value)
if new_message_count >= modified_exit_count_threshold:
self.recent_interest_records.append(total_interest)
# 记录兴趣度到列表
total_interest = 0.0
for msg_dict in new_message:
interest_value = msg_dict.get("interest_value", 0.0)
# 确保 interest_value 不为 None
if interest_value is None:
interest_value = 0.0
if msg_dict.get("processed_plain_text", ""):
total_interest += interest_value
NoReplyAction._recent_interest_records.append(total_interest)
logger.info(
f"{self.log_prefix} 累计消息数量达到{new_message_count}条(>{modified_exit_count_threshold:.1f}),结束等待"
)
@@ -315,6 +326,16 @@ class HeartFChatting:
# 检查累计兴趣值
if new_message_count > 0:
accumulated_interest = 0.0
for msg_dict in new_message:
text = msg_dict.get("processed_plain_text", "")
interest_value = msg_dict.get("interest_value", 0.0)
# 确保 interest_value 不为 None
if interest_value is None:
interest_value = 0.0
if text:
accumulated_interest += interest_value
# 只在兴趣值变化时输出log
if not hasattr(self, "_last_accumulated_interest") or total_interest != self._last_accumulated_interest:
logger.info(f"{self.log_prefix} 休息中,新消息:{new_message_count}条,累计兴趣值: {total_interest:.2f}, 活跃度: {talk_frequency:.1f}")

View File

@@ -117,10 +117,7 @@ class MessageRecv(Message):
self.priority_mode = "interest"
self.priority_info = None
self.interest_value: float = None # type: ignore
self.key_words = []
self.key_words_lite = []
self.interest_value: float = 0.0
def update_chat_stream(self, chat_stream: "ChatStream"):
self.chat_stream = chat_stream