fix(monitor): 修复OCR重复识别导致的连续回复问题

- 添加文本归一化:全角→半角标点转换
- 防止OCR对同一消息的不同识别结果(如? vs ?)导致查重失效
- 基线轮处理后,后续轮询仍能正确识别相同消息
- 修复连续回复2条的问题
This commit is contained in:
youpaishidifu
2026-08-15 18:49:37 +08:00
parent 1398f37835
commit 24a7b51660
+5
View File
@@ -7414,6 +7414,9 @@ class MessageMonitor:
seen.add(cleaned_item)
self._last_new_msg_time[platform] = time.time()
continue
# ⭐ 文本归一化:全角→半角标点,防止OCR差异导致查重失效
# 例:第一次OCR"所以那登录插件应该去哪里下载呢?" vs 第二次"所以那登录插件应该去哪里下载呢?"
_normalized_item = cleaned_item.replace('?', '?').replace('。', '.').replace(',', ',')
# ⭐ 5分钟内OCR重复识别去重:同一消息被OCR识别两次(乱码+正确文本),相似度>=90%则跳过
now = time.time()
# 清理过期条目
@@ -7423,6 +7426,8 @@ class MessageMonitor:
]
# 检查是否与最近处理的消息相似
is_duplicate = False
# ⭐ 使用归一化文本进行比较,防止OCR标点差异
check_item = _normalized_item
for recent_text, recent_ts in self._recent_processed_messages:
if now - recent_ts > 300:
continue