图书目录

目   录

第  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