fix(monitor): 修复OCR重复识别导致的连续回复问题
- 添加文本归一化:全角→半角标点转换 - 防止OCR对同一消息的不同识别结果(如? vs ?)导致查重失效 - 基线轮处理后,后续轮询仍能正确识别相同消息 - 修复连续回复2条的问题
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user