书籍详情
LangChain核心技术与LLM项目实践

作者:凌峰
出版社:清华大学出版社
出版时间:2025-04-01
ISBN:9787302685630
定价:¥119.00
购买这本书可以去
内容简介
《LangChain核心技术与LLM项目实践》全面系统地介绍了LangChain的主要功能模块及具体应用,深入探讨了LangChain在企业应用实践中的深度开发、技术优化及其核心技术。《LangChain核心技术与LLM项目实践》共12章,从大语言模型的基础知识入手,涵盖任务链的设计、内存模块的管理、表达式语言的使用、Agent系统的实现、回调机制、模型I/O与数据检索等方面的内容,并通过代码示例和应用场景,逐步引导读者掌握模型优化、并发处理和多级任务链设计等高级技术,最后,从需求分析、架构设计到代码实现,详细展示了如何运用LangChain技术开发一个企业级智能问答系统,帮助开发者打造高效、可靠的企业级解决方案。《LangChain核心技术与LLM项目实践》从入门到高级,聚焦于前沿技术与落地实践,适合大模型及LangChain开发人员、高校学生以及对LangChain开发感兴趣的人员和研究人员阅读,也适合作为培训机构和高校相关专业的教学用书。
作者简介
凌峰,博士,就职于某985高校,长期从事机器学习、人工智能、计算机视觉与大模型领域的研发与教学,在模型优化、训练加速、数据驱动算法开发等方面有深刻见解,参与并主导多项相关科研项目。
目录
第 1 章 大语言模型与LangChain 1
1.1 大语言模型基本原理 1
1.1.1 语言模型的构建:从N-grams到深度学习 1
1.1.2 Transformer架构的崛起:自注意力机制解析 5
1.1.3 预训练与微调:如何提升模型性能 9
1.2 LangChain基本原理与开发流程 10
1.2.1 LangChain的核心组件:理解任务链与内存模块 10
1.2.2 LangChain开发流程概述 15
1.2.3 如何快速上手LangChain开发 17
1.3 本章小结 21
1.4 思考题 22
第 2 章 LangChain开发前的准备 23
2.1 创建OpenAI API密钥 23
2.1.1 注册与账户配置 23
2.1.2 生成和管理API密钥 26
2.1.3 设置访问权限与安全性 30
2.2 构建Anaconda PyCharm开发工具链 31
2.2.1 安装与配置Anaconda环境 32
2.2.2 PyCharm集成Anaconda环境 36
2.2.3 包管理与环境管理 39
2.3 初探LangChain依赖库 44
2.3.1 LangChain核心依赖库概览 44
2.3.2 openai库的安装与配置 47
2.3.3 其他辅助工具与扩展包 49
2.4 本章小结 53
2.5 思考题 53
第 3 章 模型、模型类与缓存 54
3.1 关于模型 54
3.1.1 模型的定义与应用 55
3.1.2 语言模型的工作原理 60
3.2 Chat类、LLM类模型简介 62
3.2.1 Chat类模型概述 63
3.2.2 LLM类模型概述 65
3.3 基于OpenAI API的初步开发 68
3.3.1 OpenAI API调用基础 68
3.3.2 完成基本文本生成任务 71
3.4 自定义LangChain Model类 72
3.4.1 LangChain Model类的构建基础 73
3.4.2 模型参数的自定义与调优 75
3.5 LangChain与缓存 78
3.5.1 缓存的作用与类型 78
3.5.2 内存缓存的使用 79
3.5.3 文件缓存与持久化管理 82
3.5.4 Redis缓存的集成与优化 84
3.6 本章小结 89
3.7 思考题 89
第 4 章 提示词工程 91
4.1 提示词的定义与提示词模板 91
4.1.1 理解提示词在模型中的核心角色 91
4.1.2 构建提示词模板:实现灵活多样的提示结构 94
4.2 动态提示词生成技术 96
4.2.1 基于用户输入的提示词自适应生成 97
4.2.2 动态提示词生成 100
4.3 插槽填充与链式提示 103
4.3.1 插槽填充技术:快速实现变量插入的提示词模板 104
4.3.2 链式提示词:通过分步骤生成复杂内容 107
4.4 多轮对话提示词 111
4.4.1 维护连续对话的提示词设计 111
4.4.2 构建连贯自然的多轮交互 114
4.5 嵌套提示词与少样本提示词 118
4.5.1 分层级处理复杂任务的多级提示词 118
4.5.2 Few-shot提示词:通过示例提升生成效果的准确性 121
4.6 本章小结 126
4.7 思考题 126
第 5 章 核心组件1:链 128
5.1 LLM链 128
5.1.1 LLM链的基本工作流程和参数设置 129
5.1.2 如何在LLM链中嵌入提示词模板和预处理逻辑 131
5.2 序列链 134
5.2.1 序列链的构建与分层调用 135
5.2.2 在序列链中连接多个LLM和工具模块 137
5.3 路由链 141
5.3.1 根据输入内容动态选择链路径 141
5.3.2 设置不同的模型和任务路径以适应复杂需求 145
5.4 文档链 148
5.4.1 Stuff链与Refine链的应用场景和适用文档类型 149
5.4.2 Map-Reduce链与Map-Rerank链的文档处理策略 152
5.5 本章小结 156
5.6 思考题 156
第 6 章 核心组件2:内存模块 158
6.1 聊天消息记忆 158
6.1.1 聊天消息存储机制:保障对话连续性 158
6.1.2 动态消息记忆策略的设计与实现 161
6.2 会话缓冲区与会话缓冲窗口 165
6.2.1 会话缓冲区的配置与应用场景 165
6.2.2 会话缓冲窗口的实现 168
6.3 会话摘要与支持向量存储 171
6.3.1 长会话摘要的生成与更新 172
6.3.2 使用向量存储实现会话内容的高效检索 174
6.4 使用Postgres与Redis存储聊天消息记录 177
6.4.1 基于Postgres的持久化消息存储方案 178
6.4.2 Redis缓存技术在消息快速存取中的应用 182
6.5 本章小结 186
6.6 思考题 186
第 7 章 LangChain与表达式语言 188
7.1 LCEL初探与流式支持 188
7.1.1 LangChian表达式语言初探 188
7.1.2 LCEL流式处理实现 190
7.2 LCEL并行执行优化 193
7.2.1 多任务并行执行策略 193
7.2.2 LCEL并行执行 198
7.3 回退机制的设计与实现 201
7.4 LCEL与LangSmith集成 205
7.4.1 LangSmith入门 205
7.4.2 LangSmith的初步应用 209
7.5 本章小结 214
7.6 思考题 214
第 8 章 核心组件3:Agents 216
8.1 何为LangChain Agent 216
8.1.1 Agent的核心概念与工作原理 216
8.1.2 LangChain中Agent的应用场景分析 218
8.1.3 自定义LLM代理 219
8.2 ReAct Agent 222
8.2.1 ReAct Agent解析 222
8.2.2 ReAct Agent的典型应用 224
8.3 Zero-shot ReAct与结构化输入ReAct 227
8.3.1 Zero-shot ReAct的原理与实现 227
8.3.2 结构化输入ReAct的使用 229
8.4 ReAct文档存储库 231
8.5 本章小结 232
8.6 思考题 233
第 9 章 核心组件4:回调机制 234
9.1 自定义回调处理程序 234
9.1.1 创建自定义回调处理程序 234
9.1.2 自定义链的回调函数 236
9.2 多个回调处理程序 238
9.3 跟踪LangChains 242
9.3.1 链式任务的跟踪和调试方法 242
9.3.2 任务流数据的实时监控与分析 243
9.3.3 将日志记录到文件 245
9.3.4 Token计数器 246
9.4 利用Argilla进行数据整理 248
9.4.1 初步使用Argilla 248
9.4.2 Argilla辅助数据整理 250
9.5 本章小结 251
9.6 思考题 251
第 10 章 模型I/O与检索 253
10.1 模型I/O解释器 253
10.1.1 输入预处理与输出格式化:确保模型I/O一致性 253
10.1.2 自定义输出解析器的实现与应用 256
10.2 文本嵌入模型与向量存储 262
10.2.1 文本嵌入模型 262
10.2.2 向量存储 267
10.3 本章小结 271
10.4 思考题 272
第 11 章 LangChain深度开发 273
11.1 性能优化与并发处理 273
11.1.1 模型加速、蒸馏、FP16精度 273
11.1.2 并发处理多用户请求 278
11.2 复杂查询与多级任务链设计 281
11.3 本章小结 284
11.4 思考题 284
第 12 章 企业级智能问答系统 286
12.1 项目概述与分析 286
12.1.1 项目概述 286
12.1.2 项目任务分析 287
12.2 模块化开发与测试 287
12.2.1 数据加载模块 288
12.2.2 嵌入生成与存储模块 290
12.2.3 提示词工程 293
12.2.4 任务链设计 296
12.2.5 Agent系统 299
12.2.6 回调机制与监控 304
12.2.7 单元测试与集成测试 307
12.3 系统集成、部署与优化 314
12.3.1 系统集成与部署 315
12.3.2 响应速度优化 321
12.4 本章小结 329
12.5 思考题 330
1.1 大语言模型基本原理 1
1.1.1 语言模型的构建:从N-grams到深度学习 1
1.1.2 Transformer架构的崛起:自注意力机制解析 5
1.1.3 预训练与微调:如何提升模型性能 9
1.2 LangChain基本原理与开发流程 10
1.2.1 LangChain的核心组件:理解任务链与内存模块 10
1.2.2 LangChain开发流程概述 15
1.2.3 如何快速上手LangChain开发 17
1.3 本章小结 21
1.4 思考题 22
第 2 章 LangChain开发前的准备 23
2.1 创建OpenAI API密钥 23
2.1.1 注册与账户配置 23
2.1.2 生成和管理API密钥 26
2.1.3 设置访问权限与安全性 30
2.2 构建Anaconda PyCharm开发工具链 31
2.2.1 安装与配置Anaconda环境 32
2.2.2 PyCharm集成Anaconda环境 36
2.2.3 包管理与环境管理 39
2.3 初探LangChain依赖库 44
2.3.1 LangChain核心依赖库概览 44
2.3.2 openai库的安装与配置 47
2.3.3 其他辅助工具与扩展包 49
2.4 本章小结 53
2.5 思考题 53
第 3 章 模型、模型类与缓存 54
3.1 关于模型 54
3.1.1 模型的定义与应用 55
3.1.2 语言模型的工作原理 60
3.2 Chat类、LLM类模型简介 62
3.2.1 Chat类模型概述 63
3.2.2 LLM类模型概述 65
3.3 基于OpenAI API的初步开发 68
3.3.1 OpenAI API调用基础 68
3.3.2 完成基本文本生成任务 71
3.4 自定义LangChain Model类 72
3.4.1 LangChain Model类的构建基础 73
3.4.2 模型参数的自定义与调优 75
3.5 LangChain与缓存 78
3.5.1 缓存的作用与类型 78
3.5.2 内存缓存的使用 79
3.5.3 文件缓存与持久化管理 82
3.5.4 Redis缓存的集成与优化 84
3.6 本章小结 89
3.7 思考题 89
第 4 章 提示词工程 91
4.1 提示词的定义与提示词模板 91
4.1.1 理解提示词在模型中的核心角色 91
4.1.2 构建提示词模板:实现灵活多样的提示结构 94
4.2 动态提示词生成技术 96
4.2.1 基于用户输入的提示词自适应生成 97
4.2.2 动态提示词生成 100
4.3 插槽填充与链式提示 103
4.3.1 插槽填充技术:快速实现变量插入的提示词模板 104
4.3.2 链式提示词:通过分步骤生成复杂内容 107
4.4 多轮对话提示词 111
4.4.1 维护连续对话的提示词设计 111
4.4.2 构建连贯自然的多轮交互 114
4.5 嵌套提示词与少样本提示词 118
4.5.1 分层级处理复杂任务的多级提示词 118
4.5.2 Few-shot提示词:通过示例提升生成效果的准确性 121
4.6 本章小结 126
4.7 思考题 126
第 5 章 核心组件1:链 128
5.1 LLM链 128
5.1.1 LLM链的基本工作流程和参数设置 129
5.1.2 如何在LLM链中嵌入提示词模板和预处理逻辑 131
5.2 序列链 134
5.2.1 序列链的构建与分层调用 135
5.2.2 在序列链中连接多个LLM和工具模块 137
5.3 路由链 141
5.3.1 根据输入内容动态选择链路径 141
5.3.2 设置不同的模型和任务路径以适应复杂需求 145
5.4 文档链 148
5.4.1 Stuff链与Refine链的应用场景和适用文档类型 149
5.4.2 Map-Reduce链与Map-Rerank链的文档处理策略 152
5.5 本章小结 156
5.6 思考题 156
第 6 章 核心组件2:内存模块 158
6.1 聊天消息记忆 158
6.1.1 聊天消息存储机制:保障对话连续性 158
6.1.2 动态消息记忆策略的设计与实现 161
6.2 会话缓冲区与会话缓冲窗口 165
6.2.1 会话缓冲区的配置与应用场景 165
6.2.2 会话缓冲窗口的实现 168
6.3 会话摘要与支持向量存储 171
6.3.1 长会话摘要的生成与更新 172
6.3.2 使用向量存储实现会话内容的高效检索 174
6.4 使用Postgres与Redis存储聊天消息记录 177
6.4.1 基于Postgres的持久化消息存储方案 178
6.4.2 Redis缓存技术在消息快速存取中的应用 182
6.5 本章小结 186
6.6 思考题 186
第 7 章 LangChain与表达式语言 188
7.1 LCEL初探与流式支持 188
7.1.1 LangChian表达式语言初探 188
7.1.2 LCEL流式处理实现 190
7.2 LCEL并行执行优化 193
7.2.1 多任务并行执行策略 193
7.2.2 LCEL并行执行 198
7.3 回退机制的设计与实现 201
7.4 LCEL与LangSmith集成 205
7.4.1 LangSmith入门 205
7.4.2 LangSmith的初步应用 209
7.5 本章小结 214
7.6 思考题 214
第 8 章 核心组件3:Agents 216
8.1 何为LangChain Agent 216
8.1.1 Agent的核心概念与工作原理 216
8.1.2 LangChain中Agent的应用场景分析 218
8.1.3 自定义LLM代理 219
8.2 ReAct Agent 222
8.2.1 ReAct Agent解析 222
8.2.2 ReAct Agent的典型应用 224
8.3 Zero-shot ReAct与结构化输入ReAct 227
8.3.1 Zero-shot ReAct的原理与实现 227
8.3.2 结构化输入ReAct的使用 229
8.4 ReAct文档存储库 231
8.5 本章小结 232
8.6 思考题 233
第 9 章 核心组件4:回调机制 234
9.1 自定义回调处理程序 234
9.1.1 创建自定义回调处理程序 234
9.1.2 自定义链的回调函数 236
9.2 多个回调处理程序 238
9.3 跟踪LangChains 242
9.3.1 链式任务的跟踪和调试方法 242
9.3.2 任务流数据的实时监控与分析 243
9.3.3 将日志记录到文件 245
9.3.4 Token计数器 246
9.4 利用Argilla进行数据整理 248
9.4.1 初步使用Argilla 248
9.4.2 Argilla辅助数据整理 250
9.5 本章小结 251
9.6 思考题 251
第 10 章 模型I/O与检索 253
10.1 模型I/O解释器 253
10.1.1 输入预处理与输出格式化:确保模型I/O一致性 253
10.1.2 自定义输出解析器的实现与应用 256
10.2 文本嵌入模型与向量存储 262
10.2.1 文本嵌入模型 262
10.2.2 向量存储 267
10.3 本章小结 271
10.4 思考题 272
第 11 章 LangChain深度开发 273
11.1 性能优化与并发处理 273
11.1.1 模型加速、蒸馏、FP16精度 273
11.1.2 并发处理多用户请求 278
11.2 复杂查询与多级任务链设计 281
11.3 本章小结 284
11.4 思考题 284
第 12 章 企业级智能问答系统 286
12.1 项目概述与分析 286
12.1.1 项目概述 286
12.1.2 项目任务分析 287
12.2 模块化开发与测试 287
12.2.1 数据加载模块 288
12.2.2 嵌入生成与存储模块 290
12.2.3 提示词工程 293
12.2.4 任务链设计 296
12.2.5 Agent系统 299
12.2.6 回调机制与监控 304
12.2.7 单元测试与集成测试 307
12.3 系统集成、部署与优化 314
12.3.1 系统集成与部署 315
12.3.2 响应速度优化 321
12.4 本章小结 329
12.5 思考题 330
猜您喜欢



