RAG 学习笔记

1. 什么是 RAG

RAG = Retrieval-Augmented Generation(检索增强生成)

核心思路:先搜再答

为什么需要 RAG?

大模型(ChatGPT、Claude 等)存在以下局限:

  • 不知道训练截止日期之后的新信息
  • 无法访问私有数据(公司文档、项目资料等)
  • 细分领域的专业知识可能不准确

RAG 的工作流程

用户提问 → 检索相关文档 → 把文档 + 问题一起给大模型 → 大模型基于文档生成回答

分两步:

  1. Retrieval(检索):从知识库/数据库/搜索引擎中搜出和问题相关的资料
  2. Generation(生成):把搜到的资料喂给大模型,让它基于资料来回答

举例

问:“我们公司的退货政策是什么?”

  • 没有 RAG:大模型凭记忆瞎编一个退货政策
  • 有 RAG:先从公司文档库搜到退货政策原文,再让大模型基于原文回答,准确且有据可查

2. 什么是 Baseline

Baseline(基线/基准)= 用来做对比参考的”最低标准”系统。

在实际项目中的作用:

  1. 先搭一个简单的、能跑通的基础版本作为 baseline
  2. 再开发更复杂的方案
  3. 对比两者效果,证明新方案更优

类比

你要开发一个新的排序算法,先用”冒泡排序”跑一遍作为 baseline,然后看新算法比冒泡排序快多少。


3. 搜索 API 工具

RAG 系统中”检索”部分需要搜索能力,以下是两个常用的搜索 API:

Tavily

  • 专门为 AI/LLM 设计的搜索 API
  • 返回已整理好的文本,可直接喂给大模型
  • 有免费额度,LangChain 等框架常用它做示例
  • 特点:开箱即用,省事

Exa

  • 语义搜索引擎 API,用向量/语义匹配而非纯关键词
  • 能搜网页、论文、公司信息等
  • 返回数据较原始,可能需要自己清洗
  • 特点:搜索质量高,但需额外处理

对比

TavilyExa
定位为 AI 专门设计通用语义搜索
上手难度简单,开箱即用稍复杂,需清洗数据
返回数据已整理好的文本较原始
适合场景快速搭 RAG 原型高质量语义搜索

4. 讨论背景(来源)

来自社区讨论截图,用户 litchii 的场景:

  • 目标:做一个类搜索引擎的多智能体(Multi-Agent)工程流
  • 问题:用 Wikipedia 检索当 baseline,但搜索结果总是匹配到其他领域的同义词,效果差
  • 解决方案:接搜索引擎 API + 大模型,搭一个 RAG 系统作为 baseline
  • 社区建议:使用 TavilyExa 作为搜索 API

5. 关键概念速查

概念一句话解释
RAG给大模型配搜索助手,先查资料再回答
Baseline用来垫底做对比的参考系统
Tavily为 AI 设计的搜索 API,开箱即用
Exa语义搜索 API,质量高但需清洗数据
Multi-Agent多个 AI 智能体协作完成任务的架构
语义搜索按语义/含义匹配,而非纯关键词匹配

6. 与本知识库其他章节的关联

  • RAG 检索”示例题”而不是”知识文档”的变种:Medprompt方法论解析.md——动态 few-shot 本质就是 RAG 思路,只不过检索的是”最相似的历史例题”
  • RAG 在真实业务的落地:宠物CT影像AI辅助诊断方案.md——第一阶段就是”DICOM 切片向量化 + 历史病例相似检索 + 多模态大模型生成诊断”的典型 RAG 工作流
  • RAG 用到的多模态调用:LLM接口规范实战.md——OpenAI 兼容接口的 content 数组、图片 Base64 编码、Gemini parts 格式等
  • 自建 RAG 的三件套深度补全:Embedding-Reranker-向量数据库.md——Embedding 模型选型 + 7 大向量库横评 + Reranker 精排 + 完整 RAG Pipeline 示例