fix: 无时间戳消息强制丢弃,防止扣10分后仍通过筛选 (Task #1665)

- freshness_score==-999.0时score=-100替代score-=10
- 原因:短消息(+5)+疑问词(+10)可得15分,仅扣10分仍5分>0
- 导致OCR丢失时间戳的旧消息被误处理并触发KB搜索
- 日志改为'强制丢弃'以明确标识
This commit is contained in:
youpaishidifu
2026-09-01 23:43:39 +08:00
parent 93a7d0be6c
commit 1e3eb56d71
+6 -4
View File
@@ -10565,10 +10565,12 @@ class MessageMonitor:
score = max(score + 5.0, 5.0)
logger.info(f"[{platform}] 时间戳新鲜度≥5直接放行(+5): {old_score:.1f}→{score:.1f}: {item[:50]}")
elif freshness_score == -999.0:
# ⭐ Task #1661: 无有效时间戳(OCR丢失或解析失败)
# 不补分、直接扣分为负,避免旧消息因"DB无记录"误获补分
score -= 10.0
logger.info(f"[{platform}] 无有效时间戳(OCR丢失?)扣10分: {score:.1f}: {item[:50]}")
# ⭐ Task #1661+#1665: 无有效时间戳(整批OCR丢失时间戳)
# 完全无法判断消息年龄,直接强制丢弃
# 注意:短消息(+5)+疑问词(+10)可得15分,仅扣10分仍为5分>0
# 会导致无时间戳的旧消息被误处理,所以改为强制设为极低分
score = -100.0
logger.info(f"[{platform}] 无有效时间戳(OCR丢失?)强制丢弃: {item[:50]}")
elif freshness_score < 0:
# 负分(超过1小时):扣10分
score += freshness_score # 加上负分 = 扣分