Hi大家好,我是码银~
今天我要给大家带来一本特别的书籍推荐——《LangChain大模型AI应用开发实践》。如果你对人工智能、自然语言处理或者正在寻找一种高效构建AI应用的方法,那么这本书绝对不容错过。
这本书是由哔哩哔哩知名UP主【老陈打码】,也就是陈鹏老师精心撰写的。作为广州麒跃科技有限公司的创始人,陈鹏老师在AI技术开发与应用方面有着深厚的造诣。他的教程全网播放量高达千万,帮助了无数AI爱好者和专业人士深入理解和应用人工智能技术。
《LangChain大模型AI应用开发实践》不仅是一本理论指导书,更是一本实战手册。它系统地介绍了从LangChain基础到高级应用的全过程,包括Chain结构构建、大模型接入与优化、提示词工程等关键技术。通过这本书,你将能够学会如何整合顶尖的大模型,比如ChatGLM,以及如何使用ChromaDB进行高效的向量检索。
书中的案例分析和步骤解说详实而深入,无论你是AI开发者、数据科学家、机器学习工程师,还是对AI应用感兴趣的中级和高级技术人员,都能从中获得宝贵的知识和实用的技巧。你将学会如何提升应用响应速度、修复模型输出错误、自定义输出解析器等,这些都是提升你AI项目性能的重要技能。
让我们一起跟随陈鹏老师的脚步,解锁人工智能开发的新维度,探索LangChain框架的强大功能。如果你准备好了,就让我们一起翻开这本书,开启AI应用开发的新旅程吧!
内容简介
《LangChain大模型AI应用开发实践》是一本深度探索LangChain框架及其在构建高效AI应用中所扮演角色的权威教程。本书以实战为导向,系统介绍了从LangChain基础到高级应用的全过程,旨在帮助开发者迅速掌握这一强大的工具,解锁人工智能开发的新维度。
本书内容围绕LangChain快速入门、Chain结构构建、大模型接入与优化、提示词工程、高级输出解析技术、数据检索增强(RAG)、知识库处理、智能体(agent)开发及其能力拓展等多个层面展开。通过详实的案例分析与步骤解说,读者可以学会整合如ChatGLM等顶尖大模型,运用ChromaDB进行高效的向量检索,以及设计与实现具有记忆功能和上下文感知能力的AI智能体。此外,书中还介绍了如何利用LangChain提升应用响应速度、修复模型输出错误、自定义输出解析器等实用技巧,为开发者提供了丰富的策略与工具。
本书主要面向AI开发者、数据科学家、机器学习工程师,以及对自然语言处理和人工智能应用感兴趣的中级和高级技术人员。
作者简介
陈鹏,哔哩哔哩知名UP主【老陈打码】,精通Python编程和前端开发,全网AI技术教程千万播放量,广州麒跃科技有限公司创始人,致力于AI技术开发与应用。
目录
第 1 章 快速认识 LangChain 1
1.1 LangChain概 述 2
1.1.1 认识 LangChain 2
1.1.2 LangChain的用途 3
1.1.3 LangChain生态与开源项目概览 4
1.2 安装Python环境 5
1.2.1 下载 Anaconda 5
1.2.2 安装 Anaconda 7
1.3 使用Jupyter Notebook 学习LangChain 8
1.3.1 安装 JupyterNotebook 8
1.3.2 启动JupyterNotebook 9
1.3.3 创建新的 Notebook 10
1.3.4 使用JupyterNotebook 学习LangChain 10
1.3.5 Jupyter Notebook 快捷键 11
1.3.6 使用快捷键的好处 13
1.4 安装和配置 LangChain环境 13
1.5 第一个LangChain应用示例 15
第 2 章 接入大模型 21
2.1 在LangChain中使用免费的文心大模型 API 22
2.1.1 文心大模型简介 22
2.1.2 基础使用 22
2.1.3 链式调用 25
2.1.4 流式生成 25
2.1.5 批量生成 26
2.2 使用 DeepSeek API进行 LangChain 开发 26
2.2.1 DeepSeek -V2概述 27
2.2.2 获取 API 密 钥 27
2.2.3 配置环境 27
2.2.4 集成 DeepSeek API 28
2.3 在LangChain 中使用 ChatGLM-4 API 30
2.3.1 GLM-4模型简介 30
2.3.2 在LangChain中集成 ChatGLM-4 30
2.4 LangChain 调用本地开源大模型ChatGLM3 32
2.4.1 ChatGLM3-6B 模型简介 32
2.4.2 安装和准备工作 33
2.4.3 实现基本对话 34
2.4.4 LangChain 调用本地开源大模型 ChatGLM3 34
2.5 接入部署的开源大模型的类OpenAI 服务器 37
2.5.1 为什么要实现 OpenAI 类似的响应 38
2.5.2 常见本地部署提供兼容的 OpenAIAPI 应用 38
2.6 LM Studio 搭 建OpenAI API 服务器 41
2.6.1 安装 LM Studio 41
2.6.2 下载和加载模型 43
2.6.3 配置和运行本地服务器 48
2.6.4 链式调用 49
第3章 LangChain提示词工程 51
3.1 利用提示词工程构建 LangChain AI应 用 52
3.1.1 基础策略 52
3.1.2 高级技巧 52
3.1.3 实际案例分析 53
3.2 LangChain 提示词模块 54
3.2.1 PromptTemplate 的使用 54
3.2.2 ChatPromptTemplate 的使用 56
3.3 少样本提示示例 57
3.3.1 理解少样本提示 58
3.3.2 LangChain 中的少样本提示应用 58
3.3.3 编写少样本提示 58
第 4 章 高级提示词技术 65
4.1 巧用提示词的案例选择器 66
4.1.1 根据长度优化示例选择器 66
4.1.2 使用最大余弦相似度嵌入示例 69
4.1.3 使用 MMR 选择示例 71
4.1.4 构建和格式化提示 72
4.1.5 调用和解析结果 74
4.2 消息对话提示词实现少样本学习 74
4.3 向量存储实现消息对话的示例选择 77
4.3.1 引入必要的库 77
4.3.2 加载模型 77
4.3.3 创建示例集合 78
4.3.4 利 用Chroma 向量存储和语义相似度选择示例 78
4.3.5 选择语义相似的示例 79
4.3.6 应用示例格式化对话 80
4.4 管理历史消息 82
4.4.1 MessagesPlaceholder 组 件 82
4.4.2 如何使用MessagesPlaceholder 82
4.4.3 实际使用场景 83
4.5 预设部分提示词变量 84
4.6 动态预设提示词变量 87
4.7 管道提示词 90
第5章 LangChain 输出解析 94
5.1 CSV 格式解析器 95
5.1.1 理解 CommaSeparatedListOutputParser 95
5.1.2 配置输出解析器 95
5.1.3 创建 Prompt 模板 96
5.1.4 应用解析器 97
5.1.5 示例应用:列出冰淇淋口味 97
5.2 日期时间格式解析器 98
5.3 枚举解析器 100
5.3.1 引入枚举类型 100
5.3.2 枚举解析器的配置与使用 101
5.3.3 构建 LangChain 调用链 101
5.3.4 执行与输出 102
5.4 XML 格式解析器 102
5.5 自定义大模型输出解析器 104
5.5.1 使用RunnableLambda 或 RunnableGenerator 105
5.5.2 将关键词替换为表情符号 105
第 6 章 检索增强生成 107
6.1 详解 RAG 108
6.1.1 认识RAG 108
6.1.2 RAG 的技术原理 109
6.1.3 RAG 的应用 110
6.1.4 RAG 的挑战与未来发展 111
6.2 RAG 应用案例 113
6.2.1 创建向量数据库 113
6.2.2 使用检索器检索相关文档 114
6.2.3 结 合LangChain 进行问答 114
6.3 知识库文档的多种加载方式 115
6.3.1 加载单个文本文档 116
6.3.2 加载整个目录的文档 116
6.3.3 加载 HTML 格式的文档 117
6.4 处 理PDF 格式的知识库文档 118
6.5 分割长文本 120
6.5.1 加载文档 120
6.5.2 创建文本分割器 121
6.5.3 分割文档 122
6.6 分割不同语言的代码 123
6.6.1 必要模块引入和语言支持 123
6.6.2 分割器配置与使用 125
6.6.3 处理其他语言 126
6.7 Markdown 文本分割 126
6.7.1 MarkdownHeaderTextSplitter 概述与基本使用 127
6.7.2 分割选项 128
第7章 高级 RAG 应用 129
7.1 最大边际相关性检索 130
7.1.1 基本概念 130
7.1.2 文档库设置与向量存储构建 130
7.1.3 MMR 检索集成与回答生成 131
7.2 实现相似性分数阈值检索 132
7.2.1 相似性分数阈值检索的概念及基本设置 133
7.2.2 相似性分数阈值检索与MMR 检索的比较 133
7.3 自查询检索器的使用 134
7.3.1 工作原理和代码配置 134
7.3.2 文档和向量存储配置 135
7.3.3 自查询检索器配置与操作示例 136
第8章 AI应用流程控制 139
8.1 并行处理任务 140
8.2 管道中添加自定义函数 142
8.3 LangChain 动态路由逻辑 144
8.4 运行时配置链的内部结构 148
8.4.1 两种方法的使用 148
8.4.2 实际应用示例 149
8.5 使用@chain 装饰器 150
8.6 自定义流式生成器函数 152
8.7 异步的自定义流式生成器函数 154
第9章 智能体开发 156
9.1 什么是智能体 157
9.1.1 智能体的核心功能 157
9.1.2 智能体的应用 157
9.1.3 开发智能体的挑战 158
9.2 智能体开发的关键组件 158
9.3 案例分析:智能体自动处理 GitHub 问题 160
9.4 @tool 快速定义智能体工具 161
9.4.1 理 解 @tool 装饰器 161
9.4.2 示例:定义天气查询工具 162
9.4.3 使用场景和最佳实践 164
9.5 定义智能搜索工具 164
9.6 快速搭建第一个智能体 168
9.7 提示词引导智能体使用工具 170
9.8 格式化中间步骤构建智能体 174
9.8.1 中间步骤格式化和输出解析 174
9.8.2 构建智能体执行流程 178
9.8.3 执行智能体 179
9.9 为智能体添加历史聊天记录 181
第 1 0 章 智能体强化 184
10.1 获取并处理学术论文 185
10.2 AI调用 Shell 命令控制电脑 187
10.3 AI自动生成与执行代码 189
10.3.1 利 用LangChain 构建自动化代码生成流程 189
10.3.2 示例:自动解决数学问题 191
第 1 1 章 LangGraph 多智能体 192
11.1 LangGraph 的核心概念 193
11.2 搭建 LangGraph 应用 194
11.2.1 定义节点和边 194
11.2.2 创建和配置图 196
11.2.3 展示图结构 198
11.2.4 执行图 198
11.2.5 图的动态行为和状态管理 199
11.3 LangGraph 灵活自定义智能体 199
11.3.1 定义大语言模型 200
11.3.2 定义智能体提示词 200
11.3.3 定义工具 201
11.3.4 定义状态 203
11.3.5 定义是否使用工具条件 203
11.3.6 定义图 204
11.3.7 使用智能体 207
11.4 多智能体模拟圆桌派综艺节目 208
11.4.1 智能体配置 209
11.4.2 信息流与处理逻辑 209
11.4.3 构建数据流图 214
第12章 人工智能销售助手 218
12.1 概述与核心概念 218
12.2 SalesGPT 智能体的架构 219
12.2.1 销售代理的运行机制 219
12.2.2 销售阶段识别代理 220
12.2.3 系统整合与数据流 220
12.3 定义销售对话阶段分析链 221
12.3.1 理 解LangChain 链的基础 221
12.3.2 设计 StageAnalyzerChain 221
12.3.3 实现 StageAnalyzerChain 222
12.4 LangChain 实现历史对话生成销售话语的类 224
12.4.1 设计 SalesConversationChain类 224
12.4.2 实施 SalesConversationChain 225
12.5 构建和利用产品知识库 228
12.5.1 设计产品知识库 229
12.5.2 实施和部署产品知识库 230
12.5.3 利用产品知识库进行销售支持 232
12.5.4 维护和优化知识库 232
12.6 定义知识库工具的模板和解析器 233
12.6.1 自定义提示模板 233
12.6.2 定义销售智能体输出解析器 234
12.7 定义LangChain 销售智能体类 236
12.7.1 SalesGPT 类概述 236
12.7.2 动态工具使用 237
12.7.3 实现复杂对话管理 238
12.7.4 完整代码示例 238
12.8 配置和运行销售智能体 247
12.8.1 设置代理配置 248
12.8.2 初始化和运行智能体 248