30 分钟
实战专项

RAG 检索增强生成

让 AI 基于你的私有知识回答问题

  • 理解 RAG 的概念和解决的问题
  • 掌握文档切分与向量化的原理
  • 理解相似度检索机制
  • 实现一个简单的 RAG 问答系统

RAG:让 AI 基于你的知识回答

大模型不知道你公司的内部文档、产品手册、最新数据。RAG就是先「查资料」再回答,让AI成为你知识库的专家。

ℹ️为什么需要 RAG?

私有数据:AI 没读过你的内部文档;实时数据:AI 训练数据有截止日期;减少幻觉:基于真实文档回答,可溯源;成本低:比微调模型便宜得多。

RAG 的工作流程

阶段一:索引(离线准备)

=== 索引阶段 ===加载文档(PDF/Word/网页)切分成小块(200-500字)用 Embedding 模型转成向量存入向量数据库阶段二:查询(在线问答)=== 查询阶段 ===用户提问 → 转成向量检索最相似的文档块文档块 + 问题发给 AIAI 基于文档回答

文档切分

示例代码(可运行)
💡切分策略

切太大→检索不精准;切太小→丢失上下文。经验值:200-500 字符,重叠 10-20%。更好的做法是按语义切分(段落/标题)。

向量相似度检索(简化版)

示例代码(可运行)

完整 RAG 问答

示例代码(可运行)
🐍资深工程师经验谈

工业级 RAG 关键优化:切分质量比模型更重要;Embedding 模型选择很关键,中文用 bge-large-zh;混合检索(向量+关键词 BM25)优于纯向量;重排序(Reranker)二次排序提升精度;检索结果带元数据(来源、页码);定期更新索引。RAG 效果很大程度上取决于数据处理质量。

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

大模型逐 token 生成,若等全部生成再返回,用户要盯着空白等好几秒;用 SSE(Server-Sent Events)或分块流式传输,模型每产出一点就推给前端,体验上就是「边想边打」。工程要点:前端要处理中途断流与重试、收到完整结束标记再收尾、流式期间禁用重复发送;后端要在客户端断开时及时取消上游请求,否则会白白烧完整个生成的 token 费用。

挑战任务

RAG 问答系统

简单+50 XP

构建知识库问答

RAG 问答系统
2 个测试用例

课后作业

构建知识库问答

中等+20 XP

创建 SimpleRAG 包含至少 5 条 Python 知识点,测试 3 个问题。

构建知识库问答
1 个测试用例