LangChain入门指南:构建高可复用、可扩展的LLM应用程序
  • 推荐0
  • 收藏0
  • 浏览306

LangChain入门指南:构建高可复用、可扩展的LLM应用程序

李特丽 , 康轶文 (作者)  官杨 (责任编辑)

  • 书  号:9787121467271
  • 出版日期:2024-01-01
  • 页  数:
  • 开  本:
  • 出版状态:上市销售
  • 维护人:博文小编
这本书专门为那些对自然语言处理技术感兴趣的读者提供了系统的LLM应用开发指南。全书分为11章,从LLM基础知识开始,通过LangChain这个开源框架为读者解读整个LLM应用开发流程。第1~2章概述LLM技术的发展背景和LangChain框架的设计理念。从第3章开始,分章深入介绍LangChain的6大模块,包括模型I/O、数据增强、链、记忆等,通过大量代码示例让读者了解其原理和用法。第9章通过构建PDF问答程序,帮助读者将之前学习的知识应用于实践。第10章则介绍集成,可拓宽LangChain的用途。第11章为初学者简要解析LLM的基础理论,如Transformer模型等。
《LangChain入门指南:构建高可复用、可扩展的LLM应用程序》以LangChain这个让人熟悉的框架为主线,引导读者一步一步掌握LLM应用开发流程,适合对大语言模型感兴趣的开发者、AI应用程序开发者阅读。
全面介绍LangChain技术;逐步构建自己的LLM应用程序;内容注重高可复用性和可扩展性;实用案例和示例代码助你快速上手;与社区互动,共享经验与解决难题
李特丽,LangChain中文网联合创始人,优秀的软件工程师。曾翻译LangChain、OpenAi、Milvus等AI开发三件套的中文文档,帮助中国开发者快速上手AI开发。

康轶文,LangChain中文网创始人,2005年从个人站长做起,成为第一代SEO“大神”;2012年转型移动互联网营销,成为中国Apple Ads代理商,获得苹果千万美元授信;2022年转型月付制AI数字员工全托管服务,是一位经验丰富的数字员工和人工智能应用专家。
2023 年,LLM(大语言模型)井喷式爆发,尤其是GPT-4 问世,一石激起千层浪,影响了整个人工智能领域,每个开发者都被“裹挟”着进入了LLM 应用开发时代。在这样的大背景下,LangChain 这个以LLM 为核心的开发框架应运而生,进一步推动了这一领域的创新和发展。LangChain 不仅可以用于开发聊天机器人,还能构建智能问答系统等多种应用,这马上引起了广大技术爱好者和开发者的关注。不同于其他传统的工具或库,LangChain 提供了一个完整的生态系统,为开发者带来了一系列强大的功能和工具,从而简化了 LLM 开发的复杂性。值得一提的是,LangChain 的社区正在迅速壮大。随着越来越多的开发者和组织选择使用LangChain 进行项目开发,一个活跃的社区生态将逐渐形成。正是在这一波LLM 开发热潮的推动下,越来越多的人对如何有效利用这些先进的技术产生了浓厚的兴趣。因此,本书的出现恰逢其时。本书旨在为读者提供全面且深入的LLM 开发指南,特别是在LangChain 框架的应用和实践方面。全书共分11 章,内容涵盖从LLM 基础知识到高级应用技巧的方方面面。
第1 章:为读者介绍LLM 开发的整体背景,同时详细探讨LangChain 在LLM 领域的独特定位和关键作用。
第2 章:深入介绍LangChain 的基础知识,包括其背后的设计动机、核心概念,以及可能的应用场景。
第3 章至第8 章:这几章是本书的核心,详细解读了LangChain 的6 大模块。从模型I/O、数据增强,到链、记忆、Agent 的定义及应用,再到如何有效使用回调处理器,都为读者提供了丰富的实践技巧和指导。
第9 章:展示如何利用LangChain 构建真实的应用程序,例如PDF 问答程序,帮助读者将理论知识转化为实际应用。
第10 章:探索如何将LangChain 与其他外部工具和生态系统进行集成,为开发LangChain 入门指南构建高可复用、可扩展的LLM 应用程序者提供更广泛的应用场景和解决方案。
第11 章:简单解释LLM 的基础知识,包括Transformer 模型、语义搜索、NLP与机器学习基础。
同时,本书是为那些对LLM 应用开发充满热情的读者而写的,特别是那些初探LLM 应用开发领域的初级程序员,以及对LangChain 抱有浓厚兴趣的技术爱好者。为了确保你能够顺利地跟随本书的内容,建议你至少具备基础的Python 编程知识。但即使你对Python 不太熟悉,也完全没有关系。得益于GPT-4 的强大能力,你可以在学
习的过程中实时编程和练习。
LangChain 目前有两个语言版本——Python 和JavaScript,这无疑利好前端开发工程师,不会Python 也能快速上手LLM 应用开发。当然,在GPT-4 的加持下,即使不会Python 和JavaScrip,依然可以学会LangChain。本书中的所有示例代码都基于Python版本。
需要特别指出的是,本书中的所有示例代码都是基于OpenAI 平台的模型编写的,而不涉及模型的实际训练。因此,你无须拥有高性能的计算机就可以轻松运行这些代码。为了方便读者学习和实践,我们已经将所有的示例代码上传到了 GitHub 仓库,你可以随时下载并在自己的计算机上运行。为了更加高效地运行和调试代码,建议你使用VSCode 这样的代码编辑器,并确保你的计算机上已经安装了Python 运行环境。如果你更喜欢交互式的编程环境,Jupyter Notebook 也是一个很好的选择,它特别适合进行LangChain 学习。技术的进步往往不是一蹴而就的,技术的进步在于一点一滴的积累。这个过程更像一滴滴水珠汇聚成河流,最终汇入大海。这本书虽然只是LLM 开发领域的一个微小部分,但它代表了我们对这个领域的热情和对知识的追求。
LangChain 框架目前仍处在从V.0.300+向V.1.0 稳步前进的过程中。7000 多个issue反映出它的不完美,但同时也展现出了一个充满活力、持续进化的生态。这些都在见证这颗小树苗如何茁壮成长。
最后,希望这本书能为你在LLM 应用领域的学习带来一些帮助,让你在LLM 开发的道路上走得更稳、更远。

目录

第1 章 LangChain:开启大语言模型时代的钥匙
1.1 大语言模型概述
1.1.1 什么是大语言模型
1.1.2 大语言模型的发展
1.1.3 大语言模型的应用场景
1.1.4 大语言模型的基础知识
1.2 LangChain 与大语言模型
第2 章 LangChain 入门指南
2.1 初识LangChain
2.1.1 为什么需要LangChain
2.1.2 LLM 应用开发的最后1 公里
2.1.3 LangChain 的2 个关键词
2.1.4 LangChain 的3 个场景
2.1.5 LangChain 的6 大模块
2.2 LangChain 的开发流程
2.2.1 开发密钥指南
2.2.2 编写一个取名程序
2.2.3 创建你的第一个聊天机器人
2.3 LangChain 表达式
第3 章 模型I/O
3.1 什么是模型I/O
3.2 模型I/O 功能之模型包装器
3.2.1 模型包装器分类
3.2.2 LLM 模型包装器
3.2.3 聊天模型包装器
3.3 模型I/O 功能之提示词模板
3.3.1 什么是提示词模板
3.3.2 提示词模板的输入和输出
3.3.3 使用提示词模板构造提示词
3.3.4 少样本提示词模板
3.3.5 多功能提示词模板
3.4 模型I/O 功能之输出解析器
3.4.1 输出解析器的功能
3.4.2 输出解析器的使用
3.4.3 Pydantic JSON 输出解析器
3.4.4 结构化输出解析器
第4 章 数据增强模块
4.1 数据增强模块的相关概念
4.1.1 LEDVR 工作流
4.1.2 数据类型
4.2 加载器
4.3 嵌入模型包装器
4.3.1 嵌入模型包装器的使用
4.3.2 嵌入模型包装器的类型
4.4 文档转换器
4.5 向量存储库
4.5.1 向量存储库的使用
4.5.2 向量存储库的搜索方法
4.6 检索器
4.6.1 检索器的使用
4.6.2 检索器的类型
第5 章 链
5.1 为什么叫链
5.1.1 链的定义
5.1.2 链的使用
5.1.3 基础链类型
5.1.4 工具链类型
5.2 细说基础链
5.2.1 LLM 链
5.2.2 路由器链
5.2.3 顺序链
5.3 四大合并文档链
5.3.1 Stuff 链
5.3.2 Refine 链
5.3.3 MapReduce 链
5.3.4 重排链
5.4 揭秘链的复杂性
5.4.1 复杂链的“套娃”式设计
5.4.2 LEDVR 工作流的终点:“上链”
第6 章 记忆模块
6.1 记忆模块概述
6.1.1 记忆组件的定义
6.1.2 记忆组件、链组件和Agent 组件的关系
6.1.3 设置第一个记忆组件
6.1.4 内置记忆组件
6.1.5 自定义记忆组件
6.2 记忆增强检索能力的实践
6.2.1 获取外部数据
6.2.2 加入记忆组件
6.3 记忆增强Agent 能力的实践
6.4 内置记忆组件的对比
6.4.1 总结记忆组件
6.4.2 会话记忆组件和会话窗口记忆组件的对比
6.4.3 知识图谱记忆组件和实体记忆组件的比较
第7 章 Agent 模块
7.1 Agent 模块概述
7.1.1 Agent 组件的定义
7.1.2 Agent 组件的运行机制
7.1.3 Agent 组件入门示例
7.1.4 Agent 组件的类型
7.2 Agent 组件的应用
7.2.1 Agent 组件的多功能性
7.2.2 自定义Agent 组件
7.2.3 ReAct Agent 的实践
7.3 工具组件和工具包组件
7.3.1 工具组件的类型
7.3.2 工具包组件的类型
7.4 Agent 组件的功能增强
7.4.1 Agent 组件的记忆功能增强
7.4.2 Agent 组件的检索能力增强
第8 章 回调处理器
8.1 什么是回调处理器
8.1.1 回调处理器的工作流程
8.1.2 回调处理器的使用
8.1.3 自定义链组件中的回调
8.2 内置回调处理器
8.3 自定义回调处理器
第9 章 使用LangChain 构建应用程序
9.1 PDF 问答程序
9.1.1 程序流程
9.1.2 处理PDF 文档
9.1.3 创建问答链
9.2 对话式表单
9.2.1 OpenAI 函数的标记链
9.2.2 标记链的使用
9.2.3 创建提示词模板
9.2.4 数据更新和检查
9.3 使用LangChain 实现BabyAGI
9.3.1 BabyAGI 介绍
9.3.2 环境与工具
9.3.3 向量存储
9.3.4 构建任务链
9.3.5 创建BabyAGI
9.3.6 运行BabyAGI
第10 章 集成
10.1 集成的背景与LLM 集成
10.2 LLM 集成指南
10.2.1 Azure OpenAI 集成
10.2.2 Hugging Face Hub 集成
10.3 聊天模型集成指南
10.3.1 Anthropic 聊天模型集成
10.3.2 PaLM 2 聊天模型集成
10.3.3 OpenAI 聊天模型集成
10.4 向量库集成指南
10.4.1 Chroma 集成
10.4.2 Pinecone 集成
10.4.3 Milvus 集成
10.5 嵌入模型集成指南
10.5.1 HuggingFaceEmbeddings 嵌入集成
10.5.2 LlamaCppEmbeddings 嵌入集成
10.5.3 Cohere 嵌入集成
10.6 Agent toolkits 集成指南
10.6.1 CSV Agent 的集成
10.6.2 Pandas Dataframe Agent 的集成
10.6.3 PowerBI Dataset Agent 的集成
10.7 Retrievers 集成指南
10.7.1 WikipediaRetriever 集成
10.7.2 ArxivRetriever 集成
10.7.3 Azure Cognitive Search 集成
第11 章 LLM 应用开发必学知识
11.1 LLM 的核心知识
11.1.1 文本嵌入
11.1.2 点积相似性和余弦相似性
11.1.3 注意力机制
11.2 Transformer 模型
11.3 语义搜索
11.3.1 语义搜索的工作原理
11.3.2 RAG 的工作原理
11.4 NLP 与机器学习基础
11.4.1 LLM 应用开发中的传统机器学习方法
11.4.2 NLP 文本预处理
11.4.3 构建分类器
附录A LangChain 框架中的主要类
附录B OpenAI 平台和模型介绍
附录C Claude 2 模型介绍
附录D Cohere 模型介绍
附录E PaLM 2 模型介绍
附录F Pinecone 向量数据库介绍
附录G Milvus 向量数据库介绍

读者评论