图书前言

前言

穿越了生成式 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 的隐私政策。