fix: 口语填充词+下载/表格加权,修复三个匹配错误

1. auto_reply.py: non_core_kw新增'一句/问一句/再问'
   - 用户说'我再问一句'中的'一句'是填充词,不应作为核心词

2. knowledge_base.py: 下载意图加权从2.5→4.0
   - 强化heading含'下载'的section优先级
   - 修复sdf1_login.md的'2.1 下载'被protect.md的'温馨提示'压过

3. knowledge_base.py: 表格内容奖励从3.0→5.0
   - 强化含'操作'等关键词的表格section优先级
   - 修复'操作方式'表格被'领地列表'描述压过
This commit is contained in:
youpaishidifu
2026-08-17 13:42:50 +08:00
parent 174b606721
commit bd35975d2e
2 changed files with 5 additions and 2 deletions
+3
View File
@@ -277,6 +277,9 @@ class AutoReply:
# "信息"/"内容"/"详情"等太泛,无法区分文档主题
# 例:"服务器最近有哪些公告信息"的核心词应是{'公告'},而非{'公告','信息'}
'信息', '内容', '详情', '情况', '介绍',
# 2026-08-17 新增:口语填充词"一句"不应作为核心词
# 用户常说"我再问一句","一句"是填充词,不影响查询意图
'一句', '问一句', '再问',
}
core_kw = q_mean - non_core_kw
doc_text = heading_clean + " " + title.lower() + " " + body_clean[:800]
+2 -2
View File
@@ -591,7 +591,7 @@ class KnowledgeBase:
# 否则皮肤文档会被放大到最高分,guide合并后压过真正的下载地址section
if (any(w in query_stripped for w in ('下载', '下到', '哪下', '怎么下'))
and '下载' in heading_clean and '皮肤' not in heading_clean):
combined_scores[i] *= 2.5
combined_scores[i] *= 4.0
# ⭐ 精确短语匹配:文档包含完整查询短语 → 巨幅奖励
# 防止"php端的管理员密码"匹配到不含"php"的云背包文档
# ⭐ 使用full_text_phrase(排除链接文字),防止链接文字如"sdf1_login登录插件"误匹配
@@ -643,7 +643,7 @@ class KnowledgeBase:
# 或body中含查询核心名词
body_relevant = any(n in body_stripped for n in query_tokens_set if len(n) >= 2)
if heading_relevant or body_relevant:
combined_scores[i] *= 3.0 # 相关表格 → 巨幅奖励
combined_scores[i] *= 5.0 # 相关表格 → 巨幅奖励
# 短查询惩罚:分词数 ≤2 的短查询(如图标残片/短词)得分大幅降权
# 防止 OCR 碎片中的高 IDF 词(如"下载")获得超过真实用户消息的分数