修复单核心词查询正文覆盖死锁:max(2,...)对1词永远失败
根因:'端0(基岩版)'→q_mean={'基岩'}, body_hits=1, 阈值=max(2,min(1,...))=2
1<2 → 必然返回False → 回复被拒,入库残片后后续轮询不回复
修复:max(2,...)→max(1,...),单核心词时阈值=1即可通过
多核心词查询(q_count≥2):max(1,...)≥2不变,防御强度不下降
This commit is contained in:
+4
-1
@@ -447,7 +447,10 @@ class AutoReply:
|
||||
q_count = len(q_mean)
|
||||
body_hits = len(q_mean & body_tokens)
|
||||
min_body_hits = min(q_count, (q_count * 3 + 4) // 5)
|
||||
min_body_hits = max(2, min_body_hits)
|
||||
# ⭐ 修复:单核心词查询(q_count=1)时阈值应为1,max(2,...)对单词是死锁
|
||||
# 例:"端0(基岩版)"→ q_mean={'基岩'},body_hits=1 → 原阈值=max(2,1)=2 → 1<2 → False(误拒)
|
||||
# "端0(Java)" → q_mean={'Java'} ,body_hits=1 → 原阈值=max(2,1)=2 → 1<2 → False(误拒)
|
||||
min_body_hits = max(1, min_body_hits)
|
||||
if body_hits < min_body_hits:
|
||||
logger.debug(
|
||||
f"正文覆盖不足跳过(防牛头不对马嘴): query={query[:40]!r} "
|
||||
|
||||
Reference in New Issue
Block a user