跳转到主要内容
资料与数据处理

个人知识库问答 · RAG 三段式

把公司制度、个人笔记做成能问的知识库,用大白话就能问出正确那一条。

免责声明:本页展示内容均为 AI 模型生成,仅供参考,不构成任何效果承诺;实际产出效果与 Credits 消耗以平台用量统计为准。
本篇让 qwen3.7-plus 一次产出整套 RAG 三段式脚本,并用「出差的钱怎么要回来」等三个大白话问题跑通:口语问题先被改写成规范检索词,再本地召回、精排作答,三题全部命中正确条目。关键不是关键词匹配,而是先把口语翻译成规范检索词——这是 RAG(检索增强生成)落地时最实用的做法。 调用链:(1) 查询改写(qwen3.7-plus 把口语问题 → 规范检索词)→ (2) 本地召回(numpy 实现 TF-IDF + 余弦相似度,本地执行不耗 Credits)→ (3) 精排作答(qwen3.7-plus 从 Top5 候选里挑对的那条并作答)。

步骤:让模型直接产出整套 RAG 脚本

把下面的指令发给 qwen3.7-plus
请写一个「个人知识库问答(RAG 三段式)」的完整可运行 Python 脚本:
阶段1 查询改写(LLM):把用户口语问题改写成 3-5 个规范检索词,与原问题拼接后再检索;
阶段2 本地召回:只用 numpy 实现 中文字bigram + TF-IDF + L2归一化 + 余弦相似度,召回 Top5;
阶段3 精排作答(LLM):把 Top5 候选给模型,挑出真正能回答的那条并用一句话作答。
知识库内置 10 条中文 FAQ(报销/请假/年假/密码重置/设备申请/入职/社保/调休/发票/差旅);
用 urllib 调 Token Plan 接口(api_key 读环境变量,model=qwen3.7-plus),累计统计 tokens;
main 跑 3 个「措辞与原文完全不同」的口语查询,打印 提问→改写词→召回Top3→最终答案;
末尾 assert 自检三题是否命中正确条目,通过则打印 SELF-CHECK PASSED。
提问:出差回来怎么把钱要回来,需要贴票据吗?
改写检索词:差旅费报销流程 报销票据粘贴规范 差旅费报销规定 发票报销要求
召回 Top3:
 1. 编号1 | 相似度0.3536 | 费用报销:出差费用需在返回后5个工作日内提交报销单…
 2. 编号10 | 相似度0.0879 | 差旅标准:国内出差住宿标准一线城市500元每晚,二…
 3. 编号9 | 相似度0.0591 | 发票开具:公司开票信息需向财务部申请,增值税专用发…
最终答案:出差回来需在返回后5个工作日内提交报销单,并附上发票和行程单等票据进行报销。

提问:工作满一年了想休假出去玩几天,能休多少天?
改写检索词:带薪年休假天数 工作满一年年休假 年休假天数标准 职工带薪年休假条例
召回 Top3:
 1. 编号3 | 相似度0.2258 | 年假:入职满1年可享受5天带薪年假,满10年10天…
 2. 编号10 | 相似度0.0856 | 差旅标准:国内出差住宿标准一线城市500元每晚,二…
 3. 编号9 | 相似度0.0600 | 发票开具:公司开票信息需向财务部申请,增值税专用发…
最终答案:入职满1年可享受5天带薪年假。

提问:我是月中18号来报到的,五险一金是从这个月开始扣还是下个月?
改写检索词:五险一金缴纳时间 新员工社保起缴月份 月中入职社保公积金 五险一金扣款起始月
召回 Top3:
 1. 编号7 | 相似度0.3273 | 社保缴纳:社保自入职当月起缴纳,每月15日前入职当…
 2. 编号5 | 相似度0.1422 | 设备申请:新员工入职可申请笔记本电脑一台,需部门主…
 3. 编号8 | 相似度0.1019 | 加班调休:工作日加班可申请调休,按1比1比例兑换,…
最终答案:因为您是18号报到,属于15日后入职,所以五险一金将从下个月开始生效并扣除。

SELF-CHECK PASSED

说明

  • 消耗:本玩法涉及文本生成(qwen3.7-plus),分两段消耗——生成脚本一次产出 6.6 KB 可运行脚本;脚本运行时每个问题需 2 次调用(查询改写 + 精排作答),提问越多消耗越高。本地 TF-IDF 召回环节不耗 Credits。
  • 查询改写的作用:两轮实测对比,直接用口语「出差回来怎么把钱要回来」检索,本地召回相似度为 0.0000(完全召回失败,答案跑偏到差旅标准);加入查询改写后同一问题相似度升到 0.3536 并正确命中「费用报销」条目,三题全部命中正确条目、脚本自检输出 SELF-CHECK PASSED。