修复:背包插件查询匹配到php登陆模式的问题
问题:用户问'背包插件怎么用'时,系统返回了php.md的'php有2种登陆模式'内容 原因:背包插件查询中包含'插件',被php.md和sdf1_login.md误匹配 修复: 1. knowledge_base.py:添加针对'背包插件'查询的特殊处理,优先匹配beibao文档 2. auto_reply.py:添加针对'背包'查询的特殊处理,确保匹配beibao文档 测试:验证'背包插件怎么用'等查询正确匹配到beibao文档
This commit is contained in:
@@ -243,6 +243,12 @@ class AutoReply:
|
||||
if '兑换码' in query and 'sdf1' in title.lower():
|
||||
logger.debug(f"兑换码插件意图放行: query={query[:40]!r} doc_title={title!r}")
|
||||
return True
|
||||
# ⭐ 背包插件特殊处理(2026-09-16):查询"背包插件怎么用"时,
|
||||
# 应优先匹配beibao.md(背包插件),而非php.md/sdf1_login.md(含"插件"但非背包)
|
||||
# 规则:查询含"背包"且文档标题含"beibao"→ 放行(beibao是背包插件)
|
||||
if '背包' in query and 'beibao' in title.lower():
|
||||
logger.debug(f"背包插件意图放行: query={query[:40]!r} doc_title={title!r}")
|
||||
return True
|
||||
if q_mean & action_kw:
|
||||
# ⭐ 排除 action_kw 词参与 body 覆盖统计,避免"使用"(verb)误命中
|
||||
non_action_q = q_mean - action_kw
|
||||
|
||||
@@ -803,6 +803,22 @@ class KnowledgeBase:
|
||||
if 'phpadmin' in doc_best:
|
||||
doc_best['phpadmin'] *= 0.2 # 大幅降权phpadmin文档(含CDK管理但非使用方法)
|
||||
logger.debug(f"[kb] phpadmin文档降权0.2x: {doc_best['phpadmin']:.2f}")
|
||||
# ⭐ 背包插件查询:查询包含"背包插件"时,优先返回beibao文档
|
||||
# 防止php/sdf1_login文档因含"插件"而压过真正含使用方法的beibao文档
|
||||
if '背包插件' in query_stripped:
|
||||
logger.debug(f"[kb] 背包插件查询特殊处理: query={query_stripped[:40]!r}")
|
||||
if 'beibao' in doc_best:
|
||||
doc_best['beibao'] *= 5.0 # 优先返回背包文档(背包插件)
|
||||
logger.debug(f"[kb] beibao文档加权5x: {doc_best['beibao']:.2f}")
|
||||
if 'php' in doc_best:
|
||||
doc_best['php'] *= 0.2 # 大幅降权php文档(含"插件"但非背包)
|
||||
logger.debug(f"[kb] php文档降权0.2x: {doc_best['php']:.2f}")
|
||||
if 'sdf1_login' in doc_best:
|
||||
doc_best['sdf1_login'] *= 0.2 # 大幅降权sdf1_login文档(含"插件"但非背包)
|
||||
logger.debug(f"[kb] sdf1_login文档降权0.2x: {doc_best['sdf1_login']:.2f}")
|
||||
if 'phpadmin' in doc_best:
|
||||
doc_best['phpadmin'] *= 0.2 # 大幅降权phpadmin文档(含"插件"但非背包)
|
||||
logger.debug(f"[kb] phpadmin文档降权0.2x: {doc_best['phpadmin']:.2f}")
|
||||
# ⭐ sdf1插件查询:查询包含"sdf1插件"时,优先返回sdf1文档
|
||||
# 防止sdf1_login文档因含"sdf1_login"而压过真正含使用方法的sdf1文档
|
||||
if 'sdf1插件' in query_stripped:
|
||||
|
||||
Reference in New Issue
Block a user