书籍详情
《基于大模型的RAG应用开发与优化——构建企业级LLM应用》[73M]百度网盘|亲测有效|pdf下载
  • 基于大模型的RAG应用开发与优化——构建企业级LLM应用

  • 作者:严灿平 著
  • 热度:5019
  • 上架时间:2025-01-04 08:18:29
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

【内容简介】
本书是一本全面介绍基于大语言模型的RAG应用开发的专业图书。本书共分为3篇:预备篇、基础篇和高级篇。预备篇旨在帮助你建立起对大模型与RAG的基本认识,并引导你搭建起RAG应用开发的基础环境;基础篇聚焦于经典RAG应用开发的核心要素与阶段,介绍关键模块的开发过程,剖析相关的技术原理,为后面的深入学习打下坚实的基础;高级篇聚焦于RAG应用开发的高阶模块与技巧,特别是在企业级RAG应用开发中的优化策略与技术实现,并探索了一些新型的RAG工作流与范式,旨在帮助你了解最新的RAG应用技术发展,掌握RAG应用的全方位开发能力。
【目录】
预 备 篇
第1章 了解大模型与RAG3
1.1 初识大模型3
1.1.1 大模型时代:生成式AI应用的爆发3
1.1.2 大模型应用的持续进化4
1.1.3 大模型是的吗7
1.2 了解RAG11
1.2.1 为什么需要RAG11
1.2.2 一个简单的RAG场景12
1.3 RAG应用的技术架构14
1.3.1 RAG应用的经典架构与流程14
1.3.2 RAG应用面临的挑战17
1.3.3 RAG应用架构的演进18
1.4 关于RAG的两个话题20
1.4.1 RAG与微调的选择21
1.4.2 RAG与具有理解超长上下文能力的大模型24
第2章 RAG应用开发环境搭建27
2.1 开发RAG应用的两种方式27
2.1.1 使用低代码开发平台27
2.1.2 使用大模型应用开发框架29
2.2 RAG应用开发环境准备33
2.2.1 硬件环境建议33
2.2.2 基础大模型34
2.2.3 嵌入模型41
2.2.4 Python虚拟运行环境44
2.2.5 Python IDE与开发插件45
2.2.6 向量库47
2.2.7 LlamaIndex框架51
2.3 关于本书开发环境的约定51
【预备篇小结】52
基 础 篇
第3章 初识RAG应用开发55
3.1 开发一个最简单的RAG应用55
3.1.1 使用原生代码开发56
3.1.2 使用LlamaIndex框架开发64
3.1.3 使用LangChain框架开发68
3.2 如何跟踪与调试RAG应用70
3.2.1 借助LlamaDebugHandler70
3.2.2 借助第三方的跟踪与调试平台73
3.3 准备:基于LlamaIndex框架的RAG应用开发核心组件77
第4章 模型与Prompt78
4.1 大模型78
4.1.1 大模型在RAG应用中的作用79
4.1.2 大模型组件的统一接口80
4.1.3 大模型组件的单独使用82
4.1.4 大模型组件的集成使用83
4.1.5 了解与设置大模型的参数84
4.1.6 自定义大模型组件85
4.1.7 使用LangChain框架中的大模型组件87
4.2 Prompt87
4.2.1 使用Prompt模板87
4.2.2 更改默认的Prompt模板88
4.2.3 更改Prompt模板的变量91
4.3 嵌入模型92
4.3.1 嵌入模型在RAG应用中的作用92
4.3.2 嵌入模型组件的接口93
4.3.3 嵌入模型组件的单独使用95
4.3.4 嵌入模型组件的集成使用97
4.3.5 了解与设置嵌入模型的参数97
4.3.6 自定义嵌入模型组件98
第5章 数据加载与分割100
5.1 理解两个概念:Document与Node100
5.1.1 什么是Document与Node100
5.1.2 深入理解Document与Node102
5.1.3 深入理解Node对象的元数据103
5.1.4 生成Document对象106
5.1.5 生成Node对象107
5.1.6 元数据的生成与抽取111
5.1.7 初步了解IndexNode类型115
5.2 数据加载116
5.2.1 从本地目录中加载117
5.2.2 从网络中加载数据123
5.3 数据分割129
5.3.1 如何使用数据分割器129
5.3.2 常见的数据分割器131
5.4 数据摄取管道145
5.4.1 什么是数据摄取管道145
5.4.2 用于数据摄取管道的转换器147
5.4.3 自定义转换器149
5.4.4 使用数据摄取管道150
5.5 完整认识数据加载阶段155
第6章 数据嵌入与索引156
6.1 理解嵌入与向量156
6.1.1 直接用模型生成向量157
6.1.2 借助转换器生成向量157
6.2 向量存储158
6.2.1 简单向量存储159
6.2.2 第三方向量存储161
6.3 向量存储索引164
6.3.1 用向量存储构造向量存储索引对象165
6.3.2 用Node列表构造向量存储索引对象166
6.3.3 用文档直接构造向量存储索引对象169
6.3.4 深入理解向量存储索引对象172
6.4 更多索引类型175
6.4.1 文档摘要索引175
6.4.2 对象索引177
6.4.3 知识图谱索引180
6.4.4 树索引186
6.4.5 关键词表索引187
第7章 检索、响应生成与RAG引擎190
7.1 检索器191
7.1.1 快速构造检索器191
7.1.2 理解检索模式与检索参数192
7.1.3 初步认识递归检索197
7.2 响应生成器199
7.2.1 构造响应生成器200
7.2.2 响应生成模式201
7.2.3 响应生成器的参数210
7.2.4 实现自定义的响应生成器212
7.3 RAG引擎:查询引擎214
7.3.1 构造内置类型的查询引擎的两种方法214
7.3.2 深入理解查询引擎的内部结构和运行原理217
7.3.3 自定义查询引擎218
7.4 RAG引擎:对话引擎221
7.4.1 对话引擎的两种构造方法221
7.4.2 深入理解对话引擎的内部运行和运行原理224
7.4.3 理解不同的对话模式227
7.5 结构化输出239
7.5.1 使用output_cls参数240
7.5.2 使用输出解析器241
【基础篇小结】243
高 级 篇
第8章 RAG引擎高级开发247
8.1 检索前查询转换247
8.1.1 简单查询转换248
8.1.2 HyDE查询转换249
8.1.3 多步查询转换251
8.1.4 子问题查询转换254
8.2 检索后处理器259
8.2.1 使用节点后处理器259
8.2.2 实现自定义的节点后处理器260
8.2.3 常见的预定义的节点后处理器261
8.2.4 Rerank节点后处理器266
8.3 语义路由272
8.3.1 了解语义路由272
8.3.2 带有路由功能的查询引擎274
8.3.3 带有路由功能的检索器276
8.3.4 使用独立的选择器277
8.3.5 可多选的路由查询引擎278
8.4 SQL查询引擎280
8.4.1 使用NLSQLTableQueryEngine组件281
8.4.2 基于实时表检索的查询引擎283
8.4.3 使用SQL检索器285
8.5 多模态文档处理286
8.5.1 多模态文档处理架构286
8.5.2 使用LlamaParse解析文档288
8.5.3 多模态文档中的表格处理294
8.5.4 多模态大模型的基础应用297
8.5.5 多模态文档中的图片处理303
8.6 查询管道:编排基于Graph的RAG工作流308
8.6.1 理解查询管道309
8.6.2 查询管道支持的两种使用方式310
8.6.3 深入理解查询管道的内部原理313
8.6.4 实现并插入自定义的查询组件315
第9章 开发Data Agent321
9.1 初步认识Data Agent322
9.2 构造与使用Agent的工具323
9.2.1 深入了解工具类型324
9.2.2 函数工具325
9.2.3 查询引擎工具326
9.2.4 检索工具327
9.2.5 查询计划工具328
9.2.6 按需加载工具330
9.3 基于函数调用功能直接开发Agent331
9.4 用框架组件开发Agent335
9.4.1 使用OpenAIAgent335
9.4.2 使用ReActAgent336
9.4.3 使用底层API开发Agent338
9.4.4 开发带有工具检索功能的Agent340
9.4.5 开发带有上下文检索功能的Agent341
9.5 更细粒度地控制Agent的运行343
9.5.1 分步可控地运行Agent344
9.5.2 在Agent运行中增加人类交互346
第10章 评估RAG应用349
10.1 为什么RAG应用需要评估349
10.2 RAG应用的评估依据与指标350
10.3 RAG应用的评估流程与方法351
10.4 评估检索质量352
10.4.1 生成检索评估数据集352
10.4.2 运行评估检索过程的程序354
10.5 评估响应质量356
10.5.1 生成响应评估数据集356
10.5.2 单次响应评估358
10.5.3 批量响应评估360
10.6 基于自定义标准的评估362
第11章 企业级RAG应用的常见优化策略364
11.1 选择合适的知识块大小364
11.1.1 为什么知识块大小很重要364
11.1.2 评估知识块大小365
11.2 分离检索阶段的知识块与生成阶段的知识块369
11.2.1 为什么需要分离369
11.2.2 常见的分离策略及实现369
11.3 优化对大文档集知识库的检索378
11.3.1 元数据过滤 + 向量检索378
11.3.2 摘要检索+ 内容检索383
11.3.3 多文档Agentic RAG390
11.4 使用高级检索方法397
11.4.1 融合检索398
11.4.2 递归检索406
第12章 构建端到端的企业级RAG应用429
12.1 对生产型RAG应用的主要考量429
12.2 端到端的企业级RAG应用架构430
12.2.1 数据存储层431
12.2.2 AI模型层432
12.2.3 RAG工作流与API模块432
12.2.4 前端应用模块433
12.2.5 后台管理模块434
12.3 端到端的全栈RAG应用案例436
12.3.1 简单的全栈RAG查询应用436
12.3.2 基于多文档Agent的端到端对话应用455
第13章 新型RAG范式原理与实现478
13.1 自纠错RAG:C-RAG478
13.1.1 C-RAG诞生的动机478
13.1.2 C-RAG的原理479
13.1.3 C-RAG的实现480
13.2 自省式RAG:Self-RAG485
13.2.1 Self-RAG诞生的动机485
13.2.2 Self-RAG的原理486
13.2.3 Self-RAG的实现493
13.2.4 Self-RAG的优化506
13.3 检索树RAG:RAPTOR507
13.3.1 RAPTOR诞生的动机507
13.3.2 RAPTOR的原理508
13.3.3 RAPTOR的实现510
【高级篇小结】514
【作者简介】
严灿平,毕业于南京理工大学计算机系,南京大学工商管理硕士。先后就职于联创(后与亚信科技合并)担任软件工程师与设计师,甲骨文中国(Oracle)担任中国区企业架构部首席架构师,上海慧问信息科技有限公司担任合伙人兼技术总监。现为独立IT咨询顾问,公众号“AI大模型应用实践”主理人。拥有超过20年的企业软件从业经验,专注于企业软件架构设计、互联网时代传统行业的IT转型、人工智能与大数据技术在企业应用的创新等。曾担任多项大型企业级软件系统核心架构师与咨询师,参与包括中国移动、中国电信等通信行业客户的核心业务运营支撑系统建设、智慧城市与政务行业互联网转型的IT咨询与规划。精通多种计算机软件开发技术与IT架构方法论,对移动互联网、大数据、人工智能在企业领域应用有深入的研究与实施经验。

相关推荐