LlamaIndex大模型RAG开发实践 收藏

  • 书籍语言:简体中文
  • 下载次数:4738
  • 书籍类型:Epub+Txt+pdf+mobi
  • 创建日期:2025-08-21 12:10:08
  • 发布日期:2025-09-06
  • 连载状态:全集
  • 书籍作者:安德烈·乔尔基乌
  • 运行环境:pc/安卓/iPhone/iPad/Kindle/平板

内容简介

《Llamalndex大模型RAG开发实践》是一本深入探讨基于 Llamalndex 和 RAG 技术构建 LLM 应用和智能体的实践指南,旨在帮助读者掌握生成式 AI的核心技能。本书介绍了工LM 与 RAG 的概念,阐述了如何通过 Uamalndex 增强ILM 的检索推理与回答能力。此外,本书还涵盖了工作流效率提升、RAG 项目的定制开发与部署、性能追踪与评估技术、智能体构建和提示工程实践等多方面内容。

作者简介

安德烈·乔尔基乌(Andrei Gheorghiu)是一位经验丰富的IT专业人士和ITAcademy的资深培训师,拥有超过20年的培训、咨询和审计经验。安德烈拥有包括ITIL Master、CISA、ISO2700 Lead Auditor和CISSP等多项认证,这些证书彰显了安德烈在IT服务管理、信息安全、IT治理和审计等领域的深厚造诣。安德烈曾经为数千名学生提供了关于ERP和CRM系统的实施,以及安全评估和审计的培训。



译者简介

杨森,Epsilla(YC S23)联合创始人,AI Infra领域专家。南京航空航天大学本硕,曾在贝尔、英特尔、众安保险、达达、得物等多家企业担任核心技术岗位,主导过双云双活、弹性调度等重大项目。现聚焦AI在企业私有数据场景的应用实践,赋能企业释放数据价值,推动智能化转型与商业增长。


秦婧,Epsilla(YC S23)联合创始人,前TigerGraph高级工程师,人工智能与图数据基础设施专家。毕业于南加州大学计算机硕士,具备多年大型图数据库系统开发经验,参与多个企业级产品落地。现致力于打造面向私有数据的AI智能体平台,为AI应用提供坚实的数据与知识基础。


宋壬初,Epsilla(YC S23)联合创始人兼CEO,图数据库与RAG技术专家。毕业于复旦大学与康奈尔大学,曾任Meta高级工程师、TigerGraph云工程总监,具备丰富的图技术与企业级AI平台构建经验。现专注于打造基于私有数据的AI智能体平台,助力领域专家高效构建垂直AI应用。热衷技术创新,拥有多项轨迹计算专利与顶会论文,致力于以技术推动商业与社会进步。


编辑推荐

《Llamalndex大模型RAG开发实践》是一本深入探讨基于 Llamalndex 和 RAG 技术构建 LLM 应用和智能体的实践指南,旨在帮助读者掌握生成式 AI的核心技能。本书介绍了工LM 与 RAG 的概念,阐述了如何通过 Uamalndex 增强ILM 的检索推理与回答能力。此外,本书还涵盖了工作流效率提升、RAG 项目的定制开发与部署、性能追踪与评估技术、智能体构建和提示工程实践等多方面内容。

下载地址

序言

穿越了生成式 AI 和大语言模型快速发展所引起的最初热潮,我们得以观察这项技术的优势和局限性。大语言模型是一种多功能且强大的工具,代表自然语言生成(natural language generation,NLG)技术的前沿应用,并推动了多个领域的创新发展。尽管大语言模型潜力巨大,但它也有局限性,如无法访问实时数据、难以辨别真伪、处理长篇文档时难以保持上下文连贯性,以及在推理和事实记忆方面表现出不可预测的错误。检索增强生成技术(retrieval-augmented generation,RAG)试图解决这些问题,而 LlamaIndex 可能是进入这一开发新范式的最简单、最友好的方式。开源框架 LlamaIndex 由一个繁荣且不断壮大的社区推动,它为各种 RAG 场景提供了丰富的工具,这也是本书编写的原因。作者第一次接触 LlamaIndex 框架时,对其全面的官方文档印象深刻。但很快发现,对于初学者来说,众多的选项可能会令人感到不知所措。因此,本书的目标是提供一个适合初学者的指南,帮助读者了解并使用 LlamaIndex 框架的功能。随着对 LlamaIndex 内部机制的深入了解,读者会更加欣赏它的高效性。本书通过简化复杂概念并提供实际案例,旨在确保读者能自信地构建 RAG 应用,同时避免常见的陷阱。

所以,请跟随我们一起踏上探索 LlamaIndex 生态系统的旅程:从理解 RAG 的基础概念到掌握高级技术,读者将学会如何从多样化的数据源导入数据、构建索引和查询数据、创建针对特定需求优化的索引,并构建能够展示生成式 AI 全部潜能的聊天机器人和交互式应用。本书提供了大量实用的代码示例、提示工程最佳实践以及故障排错技巧,这些都将协助读者应对构建基于大语言模型的应用程序并结合私有数据所面临的挑战。在阅读完本书后,读者将拥有使用 LlamaIndex 和 Python 创建强大、交互式、AI 驱动的应用程序所需的所有技能和专业知识。此外,读者还将掌握成本评估、隐私处理和应用部署的技能,助力读者成为生成式 AI 领域备受青睐的技术专家。

适用读者

本书适用于各技术层次的开发者,可助力其深入探索生成式 AI 技术的应用潜能,着重聚焦 RAG 检索增强生成技术体系。本书专为已具备 Python 编程基础且对生成式 AI 有所了解的读者提供系统性的入门指导。

本书核心受众

初级开发者:如果你刚开始接触 Python 编程,并想踏入生成式 AI 的世界,那么本书将是你的理想选择。本书将带你逐步掌握使用 LlamaIndex 框架构建稳定且富有创意的应用程序的方法,你将了解核心组件、基础工作流和最佳实践,为 RAG 应用开发奠定坚实基础。

经验丰富的开发者:针对那些已掌握生成式 AI 核心知识,并希望进一步提升技能的读者,本书深度剖析 LlamaIndex 框架中的模块化设计理念和高级应用主题。你将学会如何运用现有技能开发和部署更为复杂的 RAG 系统,实现功能拓展和 AI 应用场景的多维突破。

大语言模型领域的从业者:如果你是想通过数据驱动方案提高效能的专业人员,本书不仅教授理论框架,更赋予你构建完整解决方案的能力。针对技术创新者,本书提供解决复杂问题的方法论体系,助你实现效率和创造力的双重跃升。

本书内容

第 1 章详细介绍生成式 AI 和大语言模型,阐述它们在现代技术中的角色、优势及局限性。本章旨在使读者对 LlamaIndex 所依赖的大语言模型能力有基础认识。

第 2 章从 LlamaIndex 的基本概念出发,逐步介绍其整体框架、生态系统及其如何增强大语言模型的能力。本章还介绍了 LlamaIndex 动手实践项目—个性化智能辅导系统(personalized intelligent tutoring system,PITS),它将贯穿全书并帮助读者实践所学知识。

第 3 章详细阐述 LlamaIndex 中 RAG 应用的基本构成,如文档、节点、索引和查询引擎等关键组件,并通过典型的工作流程模式和实际案例,带领读者逐步构建 PITS 项目。

第 4 章深入探讨 RAG 工作流程中的数据处理部分,重点讲解如何将私有数据导入 LlamaIndex,特别强调 LlamaHub 连接器的使用。读者将学会如何将文档拆解为逻辑清晰、易于索引的数据块。本章还探讨数据处理流水线、数据隐私保护、元数据提取以及成本估算方法等内容。

第 5 章详细介绍 LlamaIndex 数据索引的相关话题。通过介绍索引的工作原理以及对比多种索引方法,帮助读者根据实际需求选择最合适的技术。此外,本章还介绍分层索引、持久索引存储、成本估算、向量嵌入、向量存储、相似性搜索和存储上下文等内容。

第 6 章详细介绍数据查询的第 1 部分—上下文检索,详细解释 LlamaIndex 中查询数据的机制和各种查询策略及架构,重点介绍检索器的使用。本章涵盖异步检索、元数据过滤器、工具、选择器、检索路由器和查询转换等高级概念,此外还讨论密集检索和稀疏检索等基本范式及其优缺点。

第 7 章深入探讨数据查询的第 2 部分—后处理和响应合成,继续讨论查询机制,重点介绍节点后处理和响应合成器在 RAG 工作流程中的作用。本章还介绍查询引擎的整体构造和输出解析,通过实际操作带领读者使用 LlamaIndex 在 PITS 项目中生成个性化内容。

第 8 章详细介绍如何使用 LlamaIndex 构建聊天机器人和智能体。通过学习聊天机器人、智能体和对话追踪的基础知识,并将这些知识应用于实践项目中,读者将掌握如何利用 LlamaIndex 实现流畅的对话交互、保留上下文和管理自定义检索与响应策略,这些对于打造高效的对话接口至关重要。

第 9 章给出如何定制化 LlamaIndex 项目和部署的详细指南,内容涵盖 RAG 流水线组件的调整方法、Streamlit 部署指引、高级追踪和调试技巧,以及 LlamaIndex 应用评估和微调技术。

第 10 章介绍提示工程技术及其最佳实践,详细讲解提示工程在提升 RAG 流水线效率方面所起到的关键作用,以及提示工程在 LlamaIndex 框架内部的运作机制。通过本章学习,读者将掌握定制和优化提示工程的诀窍,以充分挖掘 LlamaIndex 的潜力,确保更可靠和个性化的 AI 输出。

第 11 章作为全书的总结,概述 LlamaIndex 框架的主要特点,指出其他相关项目和进阶学习路径,并提供一系列精选附加学习资源供读者进一步探索。

技术需求

读者应具备基本的 Python 编程基础,同时建议拥有使用生成式 AI 模型的相关经验。本书中的所有示例都是专门为本地 Python 环境设计的,因此建议读者的计算机至少预留 20 GB 的存储空间以容纳所需的各种库。

由于本书中的大部分示例都依赖 OpenAI API,读者需要获取一个 OpenAI API 密钥。

阅读本书电子版时,建议动手输入代码或从本书的 GitHub 代码库(稍后将提供链接)获取代码,这有助于避免因复制/粘贴代码而可能出现的错误。

注意,运行本书中依赖 OpenAI API 的代码示例会产生费用。尽管我们已经尽可能优化以减少开支,但作者与出版商概不承担由此产生的费用。此外,使用如 OpenAI 提供的公共 API 时,也请留意相关安全问题。如果读者打算使用自己的私有数据进行实验,请务必提前查阅 OpenAI 的隐私政策。


目录

第一篇 生成式 AI 和 LlamaIndex 入门

第 1 章 大语言模型入门 2

1.1 生成式 AI 与大语言模型 3

1.1.1 什么是生成式 AI 3

1.1.2 什么是大语言模型 3

1.2 大语言模型在现代技术中的角色 5

1.3 大语言模型面临的挑战 7

1.4 使用 RAG 技术增强大语言模型 11

1.5 本章小结 13

第 2 章 LlamaIndex 生态概览 14

2.1 技术需求 14

2.2 优化语言模型—微调、RAG 和 LlamaIndex 的关系 15

2.2.1 RAG 是唯一的解决方案吗 16

2.2.2 LlamaIndex:构建可注入数据的大语言模型应用 17

2.3 渐进式揭示复杂性的优势 19

2.4 实践项目—个性化智能辅导系统 PITS 简介 21

2.5 配置开发环境 23

2.5.1 安装 Python 23

2.5.2 安装 Git 24

2.5.3 安装 LlamaIndex 25

2.5.4 注册 OpenAI 获取 API 密钥 25

2.5.5 Streamlit 快速构建和部署应用的理想工具 28

2.5.6 安装 Streamlit 29

2.5.7 完成环境配置 29

2.5.8 最终检查 30

2.6 熟悉 LlamaIndex 代码仓库的组织结构 31

2.7 本章小结 33

第二篇 LlamaIndex 从入门到实践

第 3 章 LlamaIndex 入门 36

3.1 技术需求 36

3.2 LlamaIndex 的核心构建块—文档、节点和索引 37

3.2.1 文档 37

3.2.2 节点 41

3.2.3 手动创建节点 42

3.2.4 从文档中提取节点 43

3.2.5 节点间的关系 45

3.2.6 为什么节点间的关系很重要 46

3.2.7 索引 47

3.2.8 检索和响应合成 49

3.2.9 查询引擎的工作原理 50

3.2.10 快速回顾关键概念 51

3.3 构建第 1 个交互式增强型大语言模型应用 52

3.3.1 借助 LlamaIndex 日志特性理解逻辑并调试应用 53

3.3.2 使用 LlamaIndex 定制大语言模型 54

3.3.3 三步完成大语言模型定制 55

3.3.4 Temperature 温度系数 56

3.3.5 如何使用 Settings 用于定制 58

3.4 动手实践—构建个性化智能辅导系统 PITS 59

3.5 本章小结 64

第 4 章 RAG 工作流中的数据整合 65

4.1 技术需求 65

4.2 通过 LlamaHub 导入数据 66

4.3 LlamaHub 概述 67

4.4 使用 LlamaHub 数据读取器导入内容 68

4.4.1 从网页导入数据 69

4.4.2 从数据库导入数据 70

4.4.3 从多种文件格式的数据源批量导入数据 72

4.5 将文档解析为节点 76

4.5.1 简单的文本切分器 76

4.5.2 高级的节点解析器 79

4.5.3 节点关系解析器 82

4.5.4 节点解析器和文本切分器的区别 83

4.5.5 理解 chunk_size 与 chunk_overlap 84

4.5.6 使用 include_prev_next_rel 包含关系 85

4.5.7 节点生成的三种实践方式 86

4.6 善用元数据优化上下文理解 88

4.6.1 摘要提取器 90

4.6.2 问答提取器 91

4.6.3 标题提取器 92

4.6.4 实体提取器 92

4.6.5 关键词提取器 94

4.6.6 Pydantic 程序提取器 95

4.6.7 Marvin 元数据提取器 95

4.6.8 自定义提取器 96

4.6.9 元数据越多越好吗 97

4.7 元数据提取的成本评估 98

4.7.1 遵循最佳实践以最小化成本 98

4.7.2 在真正运行前评估最大成本 99

4.8 通过元数据提取器保护隐私 101

4.9 通过数据导入流水线提高效率 104

4.10 处理包含文本和表格数据的文档 109

4.11 动手实践—将学习资料导入 PITS 项目 110

4.12 本章小结 112

第 5 章 LlamaIndex 索引详解 113

5.1 技术需求 113

5.2 索引数据概览 114

5.3 理解 VectorStoreIndex 116

5.3.1 VectorStoreIndex 使用示例 116

5.3.2 理解向量嵌入 118

5.3.3 理解相似度搜索 120

5.3.4 LlamaIndex 如何创建向量嵌入 124

5.3.5 如何选择合适的嵌入模型 125

5.4 索引持久化和重用 127

5.4.1 理解存储上下文 128

5.4.2 向量存储和向量数据库的区别 131

5.5 LlamaIndex 的其他索引类型 132

5.5.1 摘要索引 132

5.5.2 文档摘要索引 134

5.5.3 关键词表索引 136

5.5.4 树索引 139

5.5.5 知识图谱索引 143

5.6 使用 ComposableGraph 构建组合索引 146

5.6.1 ComposableGraph 的基本使用 147

5.6.2 ComposableGraph 的概念解释 148

5.7 索引构建和查询的成本评估 149

5.8 动手实践—为 PITS 项目的学习资料构建索引 154

5.9 本章小结 156

第三篇 索引数据的检索和使用

第 6 章 数据查询—上下文索引 158

6.1 技术需求 158

6.2 查询机制概述 159

6.3 基本检索器的原理 160

6.3.1 向量存储索引检索器 161

6.3.2 摘要索引检索器 163

6.3.3 文档摘要索引检索器 166

6.3.4 树索引检索器 168

6.3.5 关键词表索引检索器 172

6.3.6 知识图谱索引检索器 174

6.3.7 检索器的共同特点 178

6.3.8 检索机制的高效使用—异步操作 178

6.4 构建更高级的检索机制 179

6.4.1 朴素的检索方法 180

6.4.2 实现元数据过滤器 180

6.4.3 使用选择器实现更高级的决策逻辑 184

6.4.4 工具的重要性 186

6.4.5 转换和重写查询 188

6.4.6 生成更具体的子查询 190

6.5 密集检索和稀疏检索 193

6.5.1 密集检索 193

6.5.2 稀疏检索 194

6.5.3 在 LlamaIndex 中实现稀疏检索 196

6.5.4 探索其他高级检索方法 199

6.6 本章小结 200

第 7 章 数据查询—后处理和响应合成 201

7.1 技术需求 201

7.2 后处理器—对节点进行重排、转换和过滤 202

7.2.1 探索后处理器如何对节点进行过滤、转换和重排 203

7.2.2 相似度后处理器 205

7.2.3 关键词节点后处理器 207

7.2.4 前后节点后处理器 209

7.2.5 长文本记录后处理器 210

7.2.6 隐私信息屏蔽后处理器 211

7.2.7 元数据替换后处理器 212

7.2.8 句子嵌入优化后处理器 214

7.2.9 基于时间的后处理器 215

7.2.10 重排后处理器 217

7.2.11 关于节点后处理器的小结 222

7.3 响应合成器 222

7.4 输出解析技术 226

7.4.1 使用输出解析器提取结构化输出 227

7.4.2 使用 Pydantic 程序提取结构化输出 231

7.5 查询引擎的构建和使用 232

7.5.1 探索构建查询引擎的各种方法 232

7.5.2 查询引擎接口的高级用法 234

7.6 动手实践—在 PITS 项目中构建测验 241

7.7 本章小结 244

第 8 章 构建聊天机器人和智能体 246

8.1 技术需求 246

8.2 理解聊天机器人和智能体 247

8.2.1 聊天引擎 ChatEngine 249

8.2.2 不同的聊天模式 251

8.3 在应用中实现自主智能体 261

8.3.1 智能体的工具和 ToolSpec 类 261

8.3.2 智能体的推理循环 264

8.3.3 OpenAI 智能体 266

8.3.4 ReAct 智能体 271

8.3.5 如何与智能体互动 273

8.3.6 借助实用工具提升智能体 273

8.3.7 使用 LLMCompiler 智能体处理更高级的场景 278

8.3.8 使用底层智能体协议 API 281

8.4 动手实践—在 PITS 项目中实施对话追踪 284

8.5 本章小结 289

第四篇 定制化、提示工程与总结

第 9 章 LlamaIndex 项目定制与部署 292

9.1 技术需求 292

9.2 定制 RAG 组件 293

9.2.1 LLaMA 和 LLaMA 2 推动开源领域变革 294

9.2.2 使用 LM Studio 运行本地大语言模型 295

9.2.3 使用 Neutrino 或 OpenRouter 等服务智能路由大语言模型 302

9.2.4 自定义嵌入模型 304

9.2.5 利用 Llama Packs 实现即插即用 305

9.2.6 使用 Llama CLI 307

9.3 高级追踪和评估技术 309

9.3.1 使用 Phoenix 追踪 RAG 工作流 310

9.3.2 评估 RAG 系统 313

9.4 利用 Streamlit 进行部署 320

9.5 动手实践—部署指南 322

9.6 本章小结 328

第 10 章 提示工程指南和最佳实践 330

10.1 技术需求 330

10.2 为什么提示词是秘密武器 331

10.3 理解 LlamaIndex 如何使用提示词 334

10.4 自定义默认提示词 337

10.5 提示工程的黄金法则 342

10.5.1 表达的准确性和清晰度 342

10.5.2 提示的指导性 342

10.5.3 上下文质量 343

10.5.4 上下文数量 343

10.5.5 上下文排列 344

10.5.6 输出格式要求 344

10.5.7 推理成本 345

10.5.8 系统延迟 345

10.5.9 选择适合任务的大语言模型 345

10.5.10 创造有效提示词的常用方法 349

10.6 本章小结 352

第 11 章 结论与附加资源 353

11.1 其他项目和深入学习 353

11.1.1 LlamaIndex 示例集合 354

11.1.2 Replit 任务和挑战 357

11.1.3 LlamaIndex 社区的力量 358

11.2 要点总结、展望和勉励 359

11.2.1 生成式 AI 背景下 RAG 的未来展望 360

11.2.2 一段值得深思的哲理分享 363

11.3 本章小结 364


短评

    产品特色