首页
看点啥
插画图片
首页 看点啥 如何在扣子中对知识库召回结果进行二次过滤(Post-Filtering)提升答案质量

如何在扣子中对知识库召回结果进行二次过滤(Post-Filtering)提升答案质量

2026-08-03 0

必须在大模型生成前用Rerank节点二次过滤知识库召回结果,选用bge-reranker-large模型重排序,保留原始分数后按0.65阈值动态过滤,并通过文本处理节点按业务规则硬性剔除冲突条款。

如何在扣子中对知识库召回结果进行二次过滤(Post-Filtering)提升答案质量

当知识库召回的Top-K结果里混入语义相近但业务无关的干扰项(比如“退差价”流程中召回了“换货政策”条款),必须在大模型生成前做二次过滤,否则错误依据会直接污染输出。

用Rerank节点对召回结果做语义重排序

第一步:在工作流中,把知识库检索节点的输出 → 接入「Rerank」节点。

第二步:在Rerank节点设置里,选择扣子内置的bge-reranker-large模型——该模型专为中文长文本交叉打分优化,比默认的light版本多37%的上下文理解精度。

第三步:勾选【保留原始分数】→ 输入用户原始问题作为Query,将知识库返回的所有chunk作为Document列表批量送入。这一步必须开启,否则rerank后无法回溯原始匹配度,后续无法做阈值截断。

基于匹配度阈值动态丢弃低质片段

方法一:在Rerank节点后接「代码节点」,用Python脚本过滤:

输入字段设为rerank_output(JSON数组),执行以下逻辑:

import json

data = json.loads(INPUT)

filtered = [item for item in data if item.get("score", 0) > 0.65]

OUTPUT = json.dumps(filtered, ensure_ascii=False)

【0.65是实测安全阈值】低于此值的片段在汽车售后类场景中误召率达82%,高于0.75又会漏掉关键长尾问题(如“ETC设备激活失败”)。

方法二:不用写代码,直接用「条件分支节点」:

设置判断条件为「rerank_score ≥ 0.65」→ 真分支走大模型生成,假分支接「空回复」并触发人工兜底提示。这一步跳过代码调试,适合上线前快速验证效果。

按业务规则硬性剔除冲突段落

如果召回内容里同时出现“支持7天无理由退货”和“定制商品不支持退货”,必须人工干预优先级。

在Rerank之后、大模型之前插入「文本处理节点」:

① 用正则提取所有段落中的核心条款关键词(如“定制商品”“7天无理由”“不支持退货”);

② 若检测到“定制商品”与“7天无理由”共存于同一召回批次,则【强制删除含‘7天无理由’的段落】——因为业务规则明确:定制类商品条款效力永远高于通用退货政策;

③ 剩余段落再拼接成context传给大模型。

喜欢(0)

上一篇

QoderWake创建Waker如何绑定知识库?

QoderWake创建Waker如何绑定知识库?

下一篇

Qoder本地模型可以离线使用吗?

Qoder本地模型可以离线使用吗?
猜你喜欢