fix(Task #1558): OCR语义去重豁免问句 - 防止相同问句被静默丢弃\n\n根因:\nbaseline轮次(22:53:35)处理'登录插件在哪儿下载?'后记录语义指纹,\n30秒TTL内(22:54:16)再次遇到完全相同的问句 → _dedup_semantic_fingerprint\n直接丢弃且无日志,用户问句永久丢失。\n\n修复:\n问句(含问号?/?或疑问词)豁免语义去重——用户可能重复提问相同问题。\n\n验证:\n- '登录插件在哪儿下载?' 不再被静默去重\n- 陈述句仍正常去重(如'关于我们'变体)

This commit is contained in:
youpaishidifu
2026-08-18 23:14:51 +08:00
parent 00335535cd
commit 1e0a0f6e0d
+6
View File
@@ -5430,6 +5430,12 @@ class MessageMonitor:
SIM_THRESHOLD = 0.75 # Jaccard相似度阈值:>=0.75视为语义重复(提高防误杀)
for text in texts:
is_dup = False
# ⭐ 问句豁免:含问号/疑问词的消息不视为语义重复(用户可能重复提问)
# 例:"登录插件在哪儿下载?" vs baseline轮次的同问句 → 应放行而非静默丢弃
if re.search(r'[??]', text) or any(qw in text for qw in ('吗', '呢', '多少', '怎么', '如何', '哪', '什么')):
result.append(text)
self._semantic_fingerprint_cache.append((text, now))
continue
for kept_text in result:
sim = self._semantic_similarity(text, kept_text)
if sim >= SIM_THRESHOLD: