搭建概念
RAG 基础
什么是 RAG · 为什么需要它 · 如何调优 · 何时不要用 RAG
RAG(Retrieval Augmented Generation,检索增强生成)是 Evose 知识库的工作原理。理解它能让你少走 80% 的弯路。
是什么
LLM 本身只懂训练数据里的世界。要让它回答你公司的问题,有两条路:
| 路径 | 说明 | 成本 |
|---|---|---|
| 微调(Fine-tuning) | 用公司数据继续训练 LLM | 高(数据准备 + GPU + 维护) |
| RAG | 推理时检索公司知识库,把相关片段塞进提示词 | 低(只需把文档喂给向量库) |
绝大多数企业场景用 RAG 就够了。
RAG 的三步流水线
关键概念
| 概念 | 一句话 |
|---|---|
| 分块(Chunking) | 把文档切成 ~500–2000 token 的小段,每段被独立向量化 |
| 向量化(Embedding) | 用 Embedding 模型把文本转成向量 |
| 相似度检索 | 用余弦/内积找语义最近的 TopK 块 |
| 重排(Reranking) | 用更精的 Reranker 对 TopK 进一步排序 |
| TopK | 检索返回的块数(默认 5,常用 5–10) |
| Prompt 模板 | 把检索结果插入提示词的格式 |
Evose 知识库的三种分块策略
| 策略 | 行为 | 适合 |
|---|---|---|
| 固定长度 | 每 N 个 token 一切,自带重叠 | 通用兜底,简单文档 |
| 语义分割 | 按段落 / 章节 / 句子等自然边界切 | 结构化文档(PDF / Markdown) |
| 智能分割 | 用 LLM 识别语义边界,保留完整性 | 高质量场景,成本略高 |
调优地图
回答不准?按这张地图排查:
| 现象 | 可能原因 | 解法 |
|---|---|---|
| 答非所问 | 检索没找对 | 增大 TopK · 换更好的 Embedding 模型 · 加 Reranker |
| 知识库里有但答不出 | 块切得太碎,关键信息散在多块 | 增大块大小 · 启用语义分块 |
| 编造(幻觉) | LLM 自由发挥 | 强化提示词:“未在知识库出现的内容,明确说不知道” |
| 慢 | 模型 + 检索都慢 | 选更快的 Embedding · 减小 TopK · 缓存常见问题 |
| 跨段问答(对比/汇总)失败 | RAG 是“取若干块”,不擅长跨文档综合 | 改用 Workflow 多步检索+综合 |
何时不该用 RAG
RAG 不是银弹。以下情况要换工具:
| 你的场景 | 更好的做法 |
|---|---|
| 需要实时数据(库存、价格、订单状态) | 用 工具 调实时 API,而非把数据冻结进知识库 |
| 需要精确数学/计算 | 用 LLM + Code 工具,而非靠检索文档 |
| 需要全文比较(找两篇合同的所有差异) | RAG 只取若干块,无法保证全覆盖。改用 Workflow 全文遍历 + 对比 |
| 文档极少(< 5 篇) | 直接把全文塞进提示词,跳过 RAG 复杂度 |
| 结构化数据查询(数据库表) | 用 数据源 + Workflow + SQL 工具,不要 RAG |
三个常见误区
接下来
- 动手搭知识库 → 创建知识库 · 第一个 Agent · 接知识库
- 想看检索全貌 → 可观测性 · Trace
- 想了解 Embedding / Reranking 模型 → 模型平台