图书目录

目    录

第 1 章  搭建RAG开发环境 1

1.1  Python开发环境搭建 1

1.1.1  虚拟环境的创建管理 1

1.1.2  IDE的选择与工作流的搭建 5

1.1.3  依赖库安装与版本管理 8

1.2  RAG开发中常用的Python依赖库 10

1.2.1  数据处理必备库:Pandas与NumPy 10

1.2.2  自然语言处理工具:NLTK与spaCy 13

1.2.3  向量检索与模型处理:FAISS与Transformers库简介 16

1.3  RAG开发中常用的外部模块 20

1.3.1  数据采集与预处理:Requests与BeautifulSoup 20

1.3.2  并行与异步处理:Multiprocessing与Asyncio 24

1.4  RAG与智能体 28

1.4.1  智能体的基本定义与作用 28

1.4.2  智能体的类型:反应型、认知型与学习型 30

1.5  基于RAG的智能体开发基础 31

1.5.1  开发环境与工具 32

1.5.2  智能体开发中的关键算法:搜索、优化与规划 35

1.5.3  智能体的性能评估与调试方法 37

1.6  本章小结 40

1.7  思考题 41

第 2 章  传统生成与检索增强生成 42

2.1  生成式AI和RAG的基本概念 42

2.1.1  生成式AI的核心原理与工作机制 43

2.1.2  生成检索结合 45

2.1.3  检索增强与传统生成模型的区别 48

2.2  为何需要对传统大模型进行检索增强 51

2.2.1  预训练大模型的瓶颈 52

2.2.2  RAG在实时信息处理中的优势 53

2.3  检索增强核心:预训练大模型 53

2.3.1  Transformer架构的崛起:语言模型背后的核心引擎 54

2.3.2  从BERT到GPT-4:大模型发展的重要里程碑 56

2.4  本章小结 57

2.5  思考题 57

第 3 章  RAG模型的工作原理 59

3.1  检索模块与生成模块 59

3.1.1  检索模块的核心功能与数据流 59

3.1.2  生成模块在内容创建中的作用 63

3.1.3  检索与生成的协同工作机制 65

3.2  向量检索:将文本转换为向量 68

3.2.1  文本嵌入的基本原理与技术 69

3.2.2  高效向量检索:从相似度到索引优化 72

3.2.3  向量检索在RAG中的实际应用 76

3.3  RAG开发中常用的生成模型简介 80

3.3.1  GPT家族:从GPT-2到GPT-4的演进 80

3.3.2  BERT与T5:理解与生成的跨模型应用 82

3.4  本章小结 83

3.5  思考题 84

第 4 章  搭建一个简单的RAG系统 86

4.1  创建小型向量数据库 86

4.1.1  数据准备与预处理:搭建数据库的第一步 86

4.1.2  嵌入生成与存储:从文本到向量的转换 89

4.1.3  使用FAISS构建检索索引:实现高效查询 92

4.2  利用公开模型实现简单的问答系统 96

4.2.1  加载预训练模型:选择合适的生成模型 96

4.2.2  检索与生成模块的集成:构建问答流程 100

4.2.3  测试与优化:提升回答的准确性和一致性 103

4.3  本章小结 107

4.4  思考题 107

第 5 章  数据向量化与FAISS开发 109

5.1  什么是向量检索:原理与常用算法 109

5.1.1  向量检索的基本概念:从相似性到距离度量 109

5.1.2  常用的向量检索算法:线性搜索与近似最近邻 113

5.1.3  向量检索在RAG中的应用:增强上下文匹配 116

5.2  使用FAISS构建高效的向量检索系统 119

5.2.1  FAISS索引结构解析:平面索引、倒排索引与产品量化 119

5.2.2  构建和训练FAISS索引:提高检索速度和准确性 122

5.2.3  FAISS在大规模数据中的优化策略:多级索引与分片 125

5.3  数据的向量化:Embedding的生成 128

5.3.1  嵌入生成模型选择:如何匹配检索任务需求 129

5.3.2  文本嵌入的生成与存储:从编码到持久化 131

5.4  本章小结 134

5.5  思考题 135

第 6 章  文本检索增强与上下文构建 136

6.1  如何让生成模型“理解”检索到的内容 136

6.1.1  检索与生成的无缝衔接:内容重构与语义理解 136

6.1.2  语义相似度与匹配:提升生成的准确性 139

6.1.3  从检索到生成的优化路径:模型理解的增强 141

6.2  上下文的构建与传递 144

6.2.1  构建有效的上下文:信息筛选与组织策略 145

6.2.2  多步上下文传递:保持生成内容的连贯性 147

6.2.3  上下文优化技巧:减少冗余与增加相关性 150

6.3  多轮对话与复杂生成任务的实现 154

6.3.1  多轮交互的构建:让生成模型模拟人类对话 154

6.3.2  长对话与上下文管理:模型记忆的实现方法 157

6.3.3  复杂生成任务分解:如何逐步实现多步骤生成 160

6.4  本章小结 164

6.5  思考题 165

第 7 章  构建检索向量数据库 167

7.1  数据的准备与清洗 167

7.1.1  数据质量提升:数据清洗与规范化流程 167

7.1.2  数据标注与分类:构建高效检索的基础 171

7.2  如何创建和管理向量数据库 175

7.2.1  向量数据库的构建步骤:从嵌入到存储 175

7.2.2  高效管理:向量索引与检索优化 178

7.3  本章小结 182

7.4  思考题 182

第 8 章  针对延迟与缓存的模型性能调优 184

8.1  调整生成与检索模块的协同参数 184

8.1.1  生成与检索的平衡:优化参数的核心原则 184

8.1.2  动态参数调节:提升响应质量与精度 187

8.2  缩短RAG系统的响应时间 190

8.2.1  延迟分析与瓶颈定位:加速响应的第一步 191

8.2.2  缓存与并行处理策略:实现高效RAG系统 194

8.3  本章小结 197

8.4  思考题 197

第 9 章  企业文档问答系统的开发 199

9.1  需求分析与系统设计 199

9.1.1  确定问答系统的需求:识别用户的主要查询类型与目标 200

9.1.2  系统结构与模块划分:明确检索与生成模块的协作方式 201

9.2  搭建向量数据库与检索模块 201

9.2.1  数据预处理与向量化:生成高效的嵌入向量 202

9.2.2  构建与优化索引:提升检索模块的查询速度 204

9.3  生成模块的集成与模型调优 206

9.3.1  加载与配置生成模型:选择适合问答系统的生成模型 207

9.3.2  模型优化与提示词调优:提高生成内容的准确性与相关性 209

9.4  系统测试、部署与优化 211

9.4.1  测试流程与性能监控:确保系统的稳定性与响应速度 211

9.4.2  企业环境的部署与上线:实现系统在实际业务中的应用 214

9.5  本章小结 222

9.6  思考题 222

第 10 章  医疗文献检索与分析系统的开发 224

10.1  需求分析与数据准备 224

10.1.1  确定医学文献检索需求:识别用户查询重点 225

10.1.2  数据收集与清洗:构建高质量的医学知识库 226

10.2  构建高效的检索模块 232

10.2.1  设计向量检索系统:提升检索效率 232

10.2.2  优化索引结构:加速医学文献的精确匹配 235

10.3  生成模块开发、集成和调优 239

10.3.1  生成模型与检索的集成:精准回答用户提问 239

10.3.2  生成内容的优化与提示词调优:提升回答的质量与专业性 241

10.4  本章小结 249

10.5  思考题 250

第 11 章  法律法规查询助手的开发 251

11.1  需求分析与数据收集 251

11.1.1  用户需求解析:明确法律法规查询的主要需求 252

11.1.2  法律法规数据源与收集方法:搭建全面的法规数据库 253

11.1.3  数据清洗与标准化:提升查询效率和准确性 253

11.2  法律法规检索模块的实现 257

11.2.1  向量化法律条款:构建检索友好的嵌入 257

11.2.2  FAISS索引在法规查询中的应用:提升检索性能 259

11.2.3  优化检索流程:提高法律条款的匹配精度 261

11.3  生成模块开发与输出优化 264

11.3.1  生成模型与检索模块的集成:构建准确的法规回答 265

11.3.2  输出格式与内容优化:提供清晰的法律解释 267

11.3.3  提示词调优与模型配置:确保法律回答的专业性 268

11.4  本章小结 273

11.5  思考题 273