From c54ded4ecf87a9cbe19b840f51a1d2abb1a8e209 Mon Sep 17 00:00:00 2001 From: youpaishidifu Date: Wed, 16 Sep 2026 17:33:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9F=A5=E8=AF=86=E5=BA=93?= =?UTF-8?q?=E6=90=9C=E7=B4=A2=EF=BC=9A=E6=B7=BB=E5=8A=A0=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=84=8F=E5=9B=BE=E5=8A=A0=E6=9D=83=E5=92=8C?= =?UTF-8?q?=E5=85=91=E6=8D=A2=E7=A0=81=E6=8F=92=E4=BB=B6=E7=89=B9=E6=AE=8A?= =?UTF-8?q?=E5=8A=A0=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 问题:查询"兑换码插件怎么用的?"返回php登录模式选择,而非sdf1.md使用方法 - 根因:1) 缺少"怎么用"→"使用方法"同义词映射;2) 缺少使用方法意图加权;3) 缺少兑换码插件特殊加权 - 修复: 1. 在SYNONYMS中添加"怎么用"→"使用方法"映射 2. 在search函数中添加使用方法意图加权(heading含"使用方法"的section×4.0) 3. 在search函数中添加兑换码插件特殊加权(查询含"兑换码插件"且文档标题含sdf1→×5.0) - 测试:扩展查询"兑换码插件使用方法的?"匹配sdf1.md使用方法section,得分52.181排名第一 --- knowledge_base.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/knowledge_base.py b/knowledge_base.py index 9513b45..66ea1d3 100644 --- a/knowledge_base.py +++ b/knowledge_base.py @@ -42,6 +42,9 @@ class KnowledgeBase: # ⭐ 口语"兑换码"= CDK(用户常说"兑换码插件") # 修复"兑换码插件怎么用啊?"无法命中sdf1.md的使用方法section "兑换码": ["CDK", "cdk"], + # ⭐ 口语"怎么用"= 使用方法(用户常说"xx怎么用") + # 修复"兑换码插件怎么用啊?"无法命中sdf1.md的使用方法section + "怎么用": ["使用方法"], } @staticmethod @@ -653,6 +656,15 @@ class KnowledgeBase: if (any(w in query_stripped for w in ('安装', '怎么装', '如何安装', '安装方法', '安装步骤', '安装教程')) and '安装' in heading_clean): combined_scores[i] *= 4.0 + # ⭐ 使用方法意图加权:查询含"怎么用/如何使用/使用方法"等,heading含"使用方法"的section加权 + # 修复"兑换码插件怎么用"被"CDK管理"section压过的问题 + if (any(w in query_stripped for w in ('怎么用', '如何使用', '使用方法', '使用步骤', '使用教程', '怎么使用')) + and '使用方法' in heading_clean): + combined_scores[i] *= 4.0 + # ⭐ 兑换码插件特殊加权:查询含"兑换码插件"且文档标题含"sdf1"→ 巨幅加权 + # 修复"兑换码插件怎么用"被"CDK管理"section压过的问题 + if ('兑换码插件' in query_stripped and 'sdf1' in doc.get('title', '').lower()): + combined_scores[i] *= 5.0 # ⭐ 精确短语匹配:文档包含完整查询短语 → 巨幅奖励 # 防止"php端的管理员密码"匹配到不含"php"的云背包文档 # ⭐ 使用full_text_phrase(排除链接文字),防止链接文字如"sdf1_login登录插件"误匹配