初始状态
rewrite的提示词是
你是黄金回收收费检索助手。
任务: 将问题改写为适合"收费计算公式知识库"检索的关键词查询。
要求: - 简洁(3~6个词) - 包含计算公式、回收价、服务费、打款等关键词 - 不包含流程相关内容
问题: {{#1776067848354.question#}}
而知识库包括三个文件,分别是黄金回收公式计算,黄金回收公式计算-会员,黄金回收公式计算-大克重;第一个是"概念:黄金回收概念有黄金价值、服务费、打款金额 计算公式: 黄金价值=金价克重 纯度 服务费=黄金价值4% 打款金额=黄金价值-服务费 ",
第二个是"概念:黄金回收概念有黄金价值、服务费、打款金额 适用场景:会员客户 计算公式: 黄金价值=金价 克重纯度 服务费=黄金价值 1% 打款金额=黄金价值-服务费",第三个是"概念:黄金回收概念有黄金价值、服务费、打款金额 适用场景:克重大于20克 计算公式: 黄金价值=金价克重纯度 服务费=黄金价值*4%*折扣比例 打款金额=黄金价值-服务费 折扣比例: 当克重大于等于20克,小于50克,折扣比例为0.8 当克重大于等于50克,小于100克,折扣比例为0.6 当克重大于等于100克,小于500可以,折扣比例为0.4 当克重大于等于500克,小于2000可以,折扣比例为0.2 当克重大于等于2000克,折扣比例为0.1",
经过测试发现10克黄金多少钱回收、、 100克黄金多少钱回收、、 我是会员,10克黄金多少钱回收、我是会员,3000克黄金多少钱回收都无法检索到内容
问句:我是会员,3000克黄金多少钱回收
改前的rewrite内容:会员黄金回收价 3000 克
rag检索结果:[]
调参
步骤一:
修改提示词:
你是黄金回收收费检索助手。
任务:
将用户问题改写为用于知识库检索的查询。
要求:
- 保留关键条件(会员、克重、金额等)
- 包含:回收价、计算公式、服务费、打款金额
- 简洁但信息完整(5~12个词)
- 不要丢失用户意图
问题:
{{#1776067848354.question#}}
改后的rewrite内容:会员 3000 克黄金回收价计算公式服务费打款金额
rag检索结果:检测到普通的计算公式和会员的计算公式。
结论:找到了内容,但是不全
步骤二:
改文档格式
适用:普通用户,任意克重(如10克、100克)
关键词:黄金回收、回收价、服务费、计算公式
适用:会员用户
关键词:会员回收、会员价、服务费1%
适用:大克重(20克以上,如100克、500克、3000克)
关键词:大克重回收、折扣比例、阶梯收费
结果与步骤一相同,未能查到大克重的文档
步骤三,新增标题
更惨,直接就搜不到答案了
这是因为标题这种会导致向量化的时候分chunk了
步骤三,删除标题,优化关键词
结果与步骤二相似
步骤三,优化提示词
你是黄金回收收费检索助手。
任务: 将用户问题改写为用于知识库检索的查询。
要求:
1. 保留核心实体(如:400克不能拆开成400和克)
2. 不添加原问题中不存在的信息
3. 使用简洁关键词(3~6个)
4. 不要生成完整句子
5. 不要添加无关词(如"购买")
问题: {{#1776067848354.question#}}
结果无法找到答案,经过召回测试,发现score分数变低了,但是能搜到大克重的文档,所以大score有利弊。
步骤四,降低score或者采用权重设置(语义7关键词3)
能识别会员和大克重的时候,答案给了最优惠的大克重,为了验证LLM是自己识别到最优解,修改克重为50克,也就是会员是最优解,结果无法查找到大克重的文档了。
但是发现非常奇怪,原来第一次问句是可以找到三个文档,后来调试又突然不行了,不知道啥情况,也可能中间反复测试修改rewrite导致的,也尝试修改召回参数,依旧无效,直接懵逼了。
结论
当前实践算是敲了RAG的大门,迈入大门的路子任重而道远。