Task #1742: 修复奖励配置查询返回回收条件问题
问题:用户查询'宝箱的奖励怎么配置啊?'时,系统返回'奖励回收&宝箱回收'section而非'奖励配置'section。
根因:查询包含'宝箱','奖励回收&宝箱回收'heading含'宝箱'获得heading_hits加分,导致分数更高。
修复:在knowledge_base.py中添加配置意图加权——当查询包含'怎么配置/如何配置/配置方法'等配置意图词时,
heading含'配置'的section获得4.0x加权,确保配置相关答案优先返回。
This commit is contained in:
@@ -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()):
|
||||||
|
|||||||
Reference in New Issue
Block a user