描述
开 本: 128开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121477379
- 内容全面:包含Langchain的新版本、新动态及全新表达式语言。
- 系统深入:书中融入了LangGraph、Langsmith等核心组件,讲解细致入微。
- 结构流畅:章节设计自然衔接,有助于读者掌握Langchain的运行逻辑。
- 深度拓展:深入讲解了Langchain的隐私与安全、数据评估等高级主题。
- 实战性强:提供了丰富的代码实例和结果截图,读者可快速上手实践。
- 源码开放:在作者的GitHub中提供了各章节源码,读者可独立运行学习。
本书共10章,分别介绍了LangChain的开发环境搭建、模型、提示、数据连接、链、记忆、代理、回调及周边生态等内容,并用三个案例,即基于Streamlit实现聊天机器人、基于Chainlit实现PDF问答机器人、零代码AI应用构建平台Flowise,将前面大语言模型的内容学以致用。通过本书,读者既能提升自身的技术素养,又能拓展自己解决实际难题的能力。
本书适合刚入门或想加入AI行业的技术从业者、需要结合大语言模型相关技术为业务赋能的产品经理、计算机相关专业的学生,以及AI爱好者和自学者。
第1章 大语言模型及LangChain介绍 1
1.1 大语言模型介绍 1
1.1.1 大语言模型总览 1
1.1.2 大语言模型的发展历史 2
1.1.3 大语言模型的优势 5
1.1.4 大语言模型的发展趋势 5
1.1.5 总结 6
1.2 LangChain介绍 7
1.2.1 LangChain是什么 7
1.2.2 为什么使用LangChain 7
1.2.3 LangChain的应用场景 10
1.2.4 如何使用LangChain 11
第2章 LangChain开发前的准备 14
2.1 创建OpenAI API Key 14
2.2 使用云端Colab进行交互式编程 17
2.2.1 什么是Colab 17
2.2.2 如何使用Colab 17
2.3 使用本地Anaconda JupyterLab进行交互式编程 19
2.3.1 什么是Anaconda 19
2.3.2 安装与使用Anaconda 20
2.4 安装LangChain库 24
第3章 Model(模型) 27
3.1 Model简介 27
3.2 LLM类模型 28
3.2.1 简介 28
3.2.2 代码讲解 29
3.3 Chat类模型 31
3.3.1 简介 31
3.3.2 代码讲解 32
3.4 OpenAI与ChatOpenAI的区别 35
3.5 OpenAI API 36
3.5.1 什么是Token 36
3.5.2 文本补全API:Completion 38
3.5.3 对话补全API:Chat Completion 40
3.5.4 常用参数讲解 41
3.5.5 函数调用 45
3.6 自定义LangChain模型类 48
3.6.1 自定义大语言模型 48
3.6.2 自定义聊天模型 51
3.7 缓存 54
3.7.1 标准缓存 54
3.7.2 流式输出 59
3.7.3 语义化缓存 59
3.7.4 GPTCache 61
3.8 其他 68
3.8.1 异步调用大语言模型 68
3.8.2 模型配置序列化 69
3.8.3 使用Hugging Face 71
第4章 大语言模型及Prompt(提示) 74
4.1 Prompt工程 74
4.1.1 组成Prompt的要素 74
4.1.2 Prompt的书写技巧 75
4.1.3 Prompt的生命周期 81
4.2 提示词模板 82
4.2.1 PromptTemplate 83
4.2.2 PartialPromptTemplate 84
4.2.3 PipelinePromptTemplate 86
4.2.4 FewShotPromptTemplate 88
4.2.5 自定义提示词模板 89
4.2.6 提示词模板的序列化和反序列化 90
4.2.7 ChatPromptTemplate 92
4.2.8 MessagesPlaceholder 94
4.2.9 FewShotChatMessagePromptTemplate 95
4.3 示例选择器 96
4.3.1 LengthBasedExampleSelector 96
4.3.2 SemanticSimilarityExampleSelector 98
4.3.3 MaxMarginalRelevanceExampleSelector 100
4.3.4 NGramOverlapExampleSelector 101
4.3.5 自定义示例选择器 103
4.4 输出解析器 105
4.4.1 CommaSeparatedListOutputParser 105
4.4.2 DatetimeOutputParser 106
4.4.3 EnumOutputParser 107
4.4.4 XMLOutputParser 109
4.4.5 StructuredOutputParser 110
4.4.6 PydanticOutputParser 112
4.4.7 OutputFixingParser 115
4.4.8 RetryWithErrorOutputParser 116
4.4.9 自定义输出解析器 117
第5章 Data Connection(数据连接) 120
5.1 检索增强生成 120
5.1.1 什么是检索增强生成 120
5.1.2 检索增强生成的工作流程 120
5.1.3 什么是Embedding(嵌入) 122
5.1.4 重要的文本预处理 123
5.2 Document Loader(文档加载器) 124
5.2.1 CSV加载器 124
5.2.2 文件目录加载器 124
5.2.3 HTML加载器 125
5.2.4 JSON加载器 126
5.2.5 Markdown加载器 127
5.2.6 URL加载器 127
5.2.7 PDF加载器 129
5.2.8 自定义加载器 132
5.3 Document Transformer(文档转换器) 133
5.3.1 文本分割 134
5.3.2 文本元数据提取 141
5.3.3 文本翻译 143
5.3.4 生成文本问答 144
5.4 Embedding与Vector Store(嵌入与向量数据库) 146
5.4.1 Embedding 146
5.4.2 本地向量存储 148
5.4.3 云端向量存储 151
5.5 Retriever(检索器) 155
5.5.1 基础检索器 155
5.5.2 多重提问检索器 156
5.5.3 上下文压缩检索器 161
5.5.4 集成检索器 167
5.5.5 父文档检索器 168
5.5.6 多向量检索器 170
5.5.7 自查询检索器 176
5.5.8 检索内容重排 179
第6章 Chain(链) 182
6.1 Chain简介 182
6.2 LLM Chain(LLM链) 183
6.3 Sequential Chain(顺序链) 187
6.3.1 SimpleSequentialChain 187
6.3.2 SequentialChain 189
6.4 Router Chain(路由链) 190
6.5 Transform Chain(转换链) 193
6.6 Sumarize Chain(总结链) 195
6.7 API Chain与LLMRequestsChain 197
6.7.1 API Chain 197
6.7.2 LLMRequestsChain 198
6.8 SQL Chain(数据库链) 198
6.8.1 SQLDatabaseChain 199
6.8.2 SQL Agent 201
6.9 QA Chain(问答链) 202
6.9.1 ConversationChain 202
6.9.2 RetrievalQA 202
6.9.3 ConversationalRetrievalChain 203
6.10 LangChain Expression Language(LCEL) 204
6.10.1 管道操作符 204
6.10.2 在链中设置参数 205
6.10.3 配置 206
6.10.4 设置备用方案 207
6.10.5 获取输入并运行自定义函数 208
6.10.6 路由链 210
第7章 Memory(记忆) 213
7.1 Memory简介 213
7.2 将历史对话直接保存成Memory 214
7.2.1 ConversationBufferMemory 214
7.2.2 ConversationBufferWindowMemory 216
7.2.3 ConversationTokenBufferMemory 217
7.3 将历史对话总结后保存成Memory 219
7.3.1 ConversationSummaryMemory 219
7.3.2 ConversationSummaryBufferMemory 221
7.4 通过向量数据库将历史数据保存成Memory 223
7.5 多Memory组合 225
7.6 实体记忆及实体关系记忆 227
7.6.1 通过记录实体进行记忆 227
7.6.2 通过知识图谱进行记忆 229
7.7 在使用LCEL的链中添加内存组件 231
7.8 自定义Memory组件 232
第8章 Agent(代理) 234
8.1 简介 234
8.2 ReAct和Plan and Execute(计划与执行) 235
8.2.1 ReAct 235
8.2.2 Plan and Execute(计划与执行) 236
8.3 Agent初探 237
8.4 Agent类型 239
8.4.1 Chat ReAct 239
8.4.2 ReAct Document Store 241
8.4.3 Conversational 242
8.4.4 OpenAI Function 244
8.4.5 Self-Ask With Search 246
8.4.6 Structured Tool Chat 247
8.4.7 OpenAI Assistant 250
8.5 自定义Tool 252
8.5.1 使用Tool对象 252
8.5.2 继承BaseTool 254
8.5.3 使用Tool装饰器 255
8.5.4 Structured Tool 255
8.5.5 异常处理 257
8.6 人工校验及输入 259
8.6.1 默认人工校验 259
8.6.2 自定义用户审批 260
8.6.3 人工输入 261
8.7 Agent实际应用 263
8.7.1 结合向量存储使用Agent 263
8.7.2 Fake Agent(虚构代理) 264
8.7.3 自定义Agent 265
8.7.4 自定义LLM Agent 267
8.7.5 自定义MRKL Agent 272
8.7.6 自定义具有工具检索功能的Agent 276
8.7.7 Auto-GPT Agent 281
8.8 LangGraph 283
8.8.1 简介 283
8.8.2 示例 286
第9章 LangChain的其他功能 292
9.1 回调 292
9.1.1 简介 292
9.1.2 自定义回调处理 296
9.1.3 将日志记录到文件中 297
9.1.4 Token使用量跟踪 299
9.1.5 LLMonitor 300
9.2 隐私与安全 303
9.2.1 隐私 303
9.2.2 安全 307
9.3 Evaluation(评估) 309
9.3.1 简介 309
9.3.2 字符串评估器 311
9.3.3 比较评估器 316
9.3.4 轨迹评估器 320
9.4 LangSmith 323
9.4.1 简介 323
9.4.2 收集与追踪 324
9.4.3 评估 327
9.4.4 LangSmith Hub 334
9.5 LangServe 337
9.5.1 简介 337
9.5.2 构建 338
9.5.3 调用 341
9.5.4 LangChain Templates 342
9.6 LangChain v0.1 345
9.7 总结 346
第10章 案例开发与实战 347
10.1 基于Streamlit实现聊天机器人 347
10.1.1 简介 347
10.1.2 实现 348
10.1.3 部署 352
10.2 基于Chainlit实现PDF问答机器人 354
10.2.1 简介 354
10.2.2 实现 354
10.3 零代码AI应用构建平台:Flowise 359
10.3.1 简介 359
10.3.2 运行 359
10.3.3 使用 360
2024年,人工智能走向大众化的序幕已经拉开。无论是声势浩大的大语言模型,还是AI绘图领域的佼佼者,如Stable Diffusion与Midjourney,皆已成为潮流之巅的焦点。其中,大语言模型尤为瞩目,其作为一颗闪耀着智慧之光的“大脑”,已广泛融入人们生活的各个场景。在这一背景下,LangChain应运而生,这一建立在大语言模型之上的框架,让快速开发AI应用成为可能,其影响力也正逐步扩大。LangChain不仅为开发人员提供了大量的现成工具,同时受益于其广泛的用户群体,很多尖端、具有实验性质的工具也相继被纳入其中。这使得开发人员不仅能够运用那些已极为成熟的资源去构建应用,同时能够借助那些集成的工具,迅速洞悉并尝试大语言模型的最新技术。
目前,LangChain已成为进行大语言模型应用开发必须掌握的框架之一。随着时间的推移,LangChain已不再仅仅是一个大语言模型开发框架,而是演化为一个包含开发、调试、部署乃至应用商店的一站式完整生态圈。
与此同时,LangChain社区的快速壮大,正是其日益蓬勃发展的最佳见证。正值大语言模型开发以潮涌之势席卷而来之际,越来越多的开发人员对于怎样利用LangChain迅速构建AI应用产生了浓厚的兴趣。
在这样的背景下,本书应运而生。本书不只为求知者呈上LangChain的详尽开发指南,更是以其中的诸多知识为轴心,向外扩散,深度阐述其背后的原理之美,甚至于途中不吝对基础知识进行浅释,使读者在领会“其然”的同时,也能参透“其所以然”。
评论
还没有评论。