Task #1742: 修复奖励配置查询返回回收条件问题

问题:用户查询'宝箱的奖励怎么配置啊?'时,系统返回'奖励回收&宝箱回收'section而非'奖励配置'section。
根因:查询包含'宝箱','奖励回收&宝箱回收'heading含'宝箱'获得heading_hits加分,导致分数更高。
修复:在knowledge_base.py中添加配置意图加权——当查询包含'怎么配置/如何配置/配置方法'等配置意图词时,
      heading含'配置'的section获得4.0x加权,确保配置相关答案优先返回。
This commit is contained in:
youpaishidifu
2026-09-18 20:48:22 +08:00
parent 06bdbb5263
commit 91b5665e27
+7
View File
@@ -664,6 +664,13 @@ class KnowledgeBase:
if (any(w in query_stripped for w in ('怎么用', '如何使用', '使用方法', '使用步骤', '使用教程', '怎么使用')) if (any(w in query_stripped for w in ('怎么用', '如何使用', '使用方法', '使用步骤', '使用教程', '怎么使用'))
and '使用方法' in heading_clean): and '使用方法' in heading_clean):
combined_scores[i] *= 4.0 combined_scores[i] *= 4.0
# ⭐ 配置意图加权:查询含"怎么配置/如何配置/配置方法"等,heading含"配置"的section加权
# 修复"宝箱的奖励怎么配置啊?"被"奖励回收&宝箱回收"section压过"奖励配置"section的问题
# 根因:查询含"宝箱","奖励回收&宝箱回收"heading含"宝箱"获得heading_hits加分,
# 而"奖励配置"heading不含"宝箱"。配置意图应优先返回配置相关答案。
if (any(w in query_stripped for w in ('怎么配置', '如何配置', '配置方法', '配置步骤', '配置教程', '怎么设置', '如何设置'))
and '配置' in heading_clean):
combined_scores[i] *= 4.0
# ⭐ 兑换码插件特殊加权:查询含"兑换码插件"且文档标题含"sdf1"→ 巨幅加权 # ⭐ 兑换码插件特殊加权:查询含"兑换码插件"且文档标题含"sdf1"→ 巨幅加权
# 修复"兑换码插件怎么用"被"CDK管理"section压过的问题 # 修复"兑换码插件怎么用"被"CDK管理"section压过的问题
if ('兑换码插件' in query_stripped and 'sdf1' in doc.get('title', '').lower()): if ('兑换码插件' in query_stripped and 'sdf1' in doc.get('title', '').lower()):