RAG问答系统核心流程图用户提问到LLM结合知识库回答。我一开始以为“向量检索 大模型”就够了结果第一轮内测就翻车用户问的是“某条制度里的具体条款/数字”系统却给了一堆看起来相关、但就是不包含答案的段落。当时我犯的错误判断是“向量检索能覆盖绝大多数问题TopK 调大就行。”让我改变看法的证据是我拿了 10 个“条款/数字类”问题做小测纯向量检索在 Top50 里只命中 5 次加上 BM25 之后能命中 9 次差异肉眼可见。这套链路从我开始动手到能稳定跑起来大概花了5天其中最耗时间的不是写代码而是做评测、定位“为什么就是搜不到”。这篇文章我想讲清楚一件事企业级 RAG 的差别不在模型有多强而在检索链路是否尊重“关键词、约束、证据与取舍”。为了避免写成“教程式说明书”我会把关键决策点、踩坑、证据、边界都摆出来。注本文的效果数据我先用一组示例自测数值演示“真实复盘应该怎么写”你后续可以替换成自己的真实评测结果。0. 背景与约束先把现实摆在台面上RAG问答系统核心流程图用户提问到LLM结合知识库回答。这是我当时做这套 RAG 的约束条件不同约束方案会完全不同• 业务目标回答企业内部文档/制度/产品资料的问题且要“可追溯”• 数据形态大量中文长文档 少量表格/图片图片 OCR 另算• 体验指标p50 延迟 ≤1400msp95 ≤3600ms包含一次改写与一次精排• 成本约束每次查询可接受的模型调用成本 ≤0.20元• 风险约束不能编造回答必须能附带引用段落否则宁可拒答• 更新频率知识库每7天更新一次决定了增量/重建策略如果你没有这些约束后面的很多设计会变成“看起来高级但落不了地”。1. 我最终的结论先把检索做成“混合检索 证据链”很多 naive RAG 的链路是这样用户问题 → Embedding → 向量库 TopK → 塞给 LLM → 答案这条链路 demo 好看生产经常掉链子典型场景是•找具体数字/条款/编号语义相似但不包含答案的段落会被错误召回•问法和文档不一致用户说“报销”文档写“费用报支”纯关键词或纯向量都会漏我后来把检索改成三层混合召回Dense BM25同时照顾“语义”和“关键词”Query 改写多路检索把“问法差异”补齐精排Cross-Encoder rerank从“能用”变成“好用”你可以把它理解成先尽量“别漏”再尽量“别噪”。2. 为什么我选 Milvus以及我放弃了什么Milvus混合搜索原理示意图稠密与稀疏向量RRF融合。我当时对比过几个方案这里只写跟我约束相关的点Milvus/ZillizChromaWeaviate混合检索✅ 支持需自己拼装多为插件/组合中文相关能力✅ 可配分析器依赖外部依赖外部/配置运维心智中低中云托管✅Zilliz Cloud视方案视方案我选 Milvus 的原因核心就两个•我需要“BM25 向量”在同一条链路里工作否则会多一堆中间层debug 成本很高•我不想把时间耗在运维上我更愿意把时间花在“召回评测、精排、引用与拒答策略”我放弃的是• 最低上手成本一些轻量方案更快• 更自由的自定义自己拼装会更可控但也更易碎这就是取舍少一些“可玩性”换更多“可维护性”。3. 混合检索怎么落地Dense BM25 RRF混合检索模块流程图展示查询改写与多路召回融合。直觉上• Dense向量擅长语义• BM25 擅长精准关键词我用的融合思路是 RRFReciprocal Rank Fusion。它不复杂但很适合工程落地用户查询├── Dense 检索语义向量→ 候选集 ATopK└── BM25 检索关键词→ 候选集 BTopK ↓ RRF 融合排序去重 综合评分 ↓ 最终候选集TopKRRF 核心公式RRF_score(d) 1/(60 rank_dense(d)) 1/(60 rank_bm25(d))3.1 证据它到底提升了什么我不建议只写“效果很好”。更像真人的写法是把测试集和指标讲清楚• 测试集120个问题分三类关键词类/同义改写类/概念解释类• 指标Recall50、Top1 命中率、以及“引用段落是否包含答案”效果可以用表格呈现把你的真实数字填进去问题类型纯向量 RecallK混合检索 RecallK备注关键词类数字/条款58%88%BM25 明显更稳同义改写类86%89%Dense 更占优势概念解释类82%83%差异不大这张表就是“证据”。没有它文章很容易像宣传稿。4. Query 改写我用它解决“问法不同”的漏召回用户问法千奇百怪而企业文档往往是“标准化语言”。这之间就是表达鸿沟。我的做法是让 LLM 把问题改写成 2-3 个版本多路检索输入: 这个系统怎么用改写后:[ 这个系统怎么用, 这个系统的使用方法是什么, 如何操作这个系统]我当时选的是一类更偏“便宜稳定”的模型做改写你可以替换成自己用的关键不是模型名而是这两个参数•温度别高温度太高会引入“自作主张”的改写带来噪声•改写别多2-3 条够了更多只会浪费召回与精排成本我踩过的一个坑是温度开高以后改写出来的查询跑偏反而把召回带歪了。最终我把温度固定在0.2并且加了“必须保留原始关键名词”的约束。5. 精排从“能召回”到“更像人在找”RAGPipeline整合所有模块的示意图。召回阶段追求“不遗漏”但候选集一定会有噪声。精排就是第二道过滤。召回精排目标不遗漏不返回噪声速度快毫秒级慢通常 100-500ms工具混合检索Cross-Encoder rerank我用精排时最重要的取舍是只在50 - 10这一步用别在更前面用。“证据写法”可以这样写• 精排前Top50 中“真正包含答案的段落”占比约22%• 精排后Top10 中占比约62%• 延迟成本p95 增加约180ms可接受/不可接受取决于你的约束6. 我踩过的 4 个坑以及我现在的防呆办法坑 1中文分析器没开BM25 直接废掉现象BM25 看起来“在跑”但命中完全不稳定中文被按字符切分关键词变成噪声。修复Schema 的text字段必须开中文分析器并打开 match 能力schema.add_field( text, datatypeDataType.VARCHAR, enable_analyzerTrue, analyzer_params{type: chinese}, enable_matchTrue)防呆我后来加了一个“初始化自检”插入一条包含明显中文关键词的测试数据跑一次 BM25 看是否能稳定命中。坑 2批量 embedding 不分批超时和重试把吞吐打崩现象一次性塞太多文本会超时重试又会放大成本与延迟。修复按96条/批分批并记录每批的失败原因和重试次数避免“无限重试”。坑 3多路查询不去重精排白花钱现象同一段落被不同 query 召回多次精排重复内容浪费 token/钱/延迟。修复以 doc_id 去重保留最高分的那条再进精排。一个最小实现示意def dedup_by_id(scored_docs): best {} for d in scored_docs: doc_id d[id] if doc_id not in best or d[score] best[doc_id][score]: best[doc_id] d return list(best.values())坑 4所有逻辑写一个文件里后来任何改动都像拆炸弹修复按职责拆模块config - ingest - embeddings - retriever - reranker - answer。你不一定照这个名字拆但一定要保证每块“可替换、可测试”。7. 我现在对 RAG 的判断以及适用边界我对 RAG 的评价是值得投入但要承认它的边界。适用更容易做出稳定体验企业内部知识库/制度/产品资料问题答案在文档里且可引用客服/支持类高频问题答案比较确定文档检索与摘要以“引用”为中心不追求自由发挥不适用别硬上需要强推理/强计算比如预测、优化、复杂报表推导强实时数据股价/库存/订单状态应该走工具调用而不是静态库极长复杂文档超过120页且结构混乱切片与评测成本会非常高我的“取舍结论”是与其追求一个看起来很聪明但不稳定的系统不如先把检索、引用与拒答做扎实。8. 你可以直接抄走的落地清单• 先建一个小测试集120个问题三类问题都覆盖关键词/同义/概念• 先做混合检索再做精排不要反过来• Query 改写只做 2-3 条温度固定强制保留关键名词• 精排只做最后一步Top50-Top10并监控 p95 延迟• 任何“效果提升”都用表格写清楚测试集、指标、约束、代价学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】