LangChain实战:从原型到生产,动手打造 LLM 应用
定 价:89 元
- 作者:张海立
- 出版时间:2024/4/1
- ISBN:9787121475450
- 出 版 社:电子工业出版社
- 中图法分类:TP311.561
- 页码:268
- 纸张:
- 版次:01
- 开本:16开
本书是专为初学者和对LangChain应用及大语言模型(LLM)应用感兴趣的开发者而编写的。本书以LangChain团队于2024年1月发布的长期维护版本0.1为基础,重点介绍了多个核心应用场景,并且深入探讨了LCEL的应用方式。同时,本书围绕LangChain生态系统的概念,详细探讨LangChain、LangServe和LangSmith,帮助读者全面了解LangChain团队在生成式人工智能领域的布局。此外,本书还介绍了开源模型运行工具,为读者引入本地免费的实验环境,让读者能够亲自动手进行实际操作。 通过本书,读者可以真正体验到LangChain在从原型到生产的LLM应用开发和上线闭环体验方面的优势,全面了解LangChain的概念、原理和应用,并且获得实际开发LangChain应用的经验。本书示例丰富,内容通俗易懂,既可作入门教程,也可供相关技术人员参考。
张海立(网络昵称:沧海九粟) 驭势科技云平台研发总监,中国信息通信研究院“汽车云工作组”首批专家,目前专注的领域是无人驾驶运维平台的标准化和智能化研究。同时作为开源爱好者和布道师,长期关注和致力于云原生与前沿互联网技术的推广,现担任KubeSphere用户委员会上海站站长,也是CNCF OpenFunction项目管委会成员。曾就职于英特尔亚太研发有限公司,担任高级研发经理和架构师。 曹士圯(网络昵称:万千十一) 前全栈数据科学家,关注大数据分析、建模及架构等;现为独立AI工程师,聚焦于大语言模型智能体的发展及行业应用,同时关注各类大语言模型的端侧部署推理应用。数据玩家、工具狂魔,开源爱好者,乐于写作和分享。 郭祖龙 驭势科技云平台研发经理。关注云原生可观测性、IoT相关技术、流式计算等。i人丈夫,新晋奶爸,热爱运动,喜欢旅行。
第1章 LangChain生态系统概览 1
1.1 LangChain生态系统的布局 2
1.1.1 LangChain软件包的组织方式 4
1.1.2 LangChain核心功能模块概览 5
1.2 从Chat LangChain应用看生态实践 10
1.2.1 读取和加载私域数据 11
1.2.2 数据预处理及存储 13
1.2.3 基于用户问题的数据检索 14
1.2.4 基于检索内容的应答生成 14
1.2.5 提供附带中间结果的流式输出 16
1.2.6 推理链的服务化和应用化 17
1.2.7 追逐生产环境的调研链和指标 18
第2章 环境准备 21
2.1 在VS Code中开启并使用Jupyter Notebook 23
2.2 通过python-dotenv隐式加载环境变量 24
2.3 使用Ollama加载大语言模型 25
第3章 角色扮演写作实战 28
3.1 场景代码示例 29
3.2 场景代码解析 30
3.3 Model I/O三元组 31
3.3.1 Prompt模块 31
3.3.2 Model模块 35
3.3.3 Output Parser模块 36
3.4 LCEL语法解析:基础语法和接口 40
3.4.1 Runnable对象的标准接口 40
3.4.2 Runnable对象的输入和输出 41
3.4.3 Runnable对象的动态参数绑定 41
3.4.4 审查链路结构和提示词 43
3.5 Runnable Sequence的基座:Model I/O三元组对象 44
第4章 多媒体资源的摘要实战 46
4.1 场景代码示例 47
4.2 场景代码解析 50
4.3 Document的加载与处理 51
4.3.1 文档加载器 51
4.3.2 文档转换器 51
4.3.3 文本分割器 52
4.4 3种核心文档处理策略 56
4.4.1 Stuff策略:直接合并 56
4.4.2 MapReduce策略:分而治之 58
4.4.3 Refine策略:循序迭代 61
4.5 LCEL语法解析:RunnableLambda和RunnableMap 65
4.5.1 RunnableLambda 65
4.5.2 RunnableMap 68
第5章 面向文档的对话机器人实战 70
5.1 场景代码示例 71
5.2 场景代码解析 74
5.3 RAG简介 75
5.3.1 什么是RAG 75
5.3.2 RAG的工作原理 77
5.4 LangChain中的RAG实现 78
5.5 Retriever模块的实用算法概览 80
5.5.1 检索器融合 82
5.5.2 上下文压缩 83
5.5.3 自组织查询 85
5.5.4 时间戳权重 97
5.5.5 父文档回溯 99
5.5.6 多维度回溯 103
5.5.7 多角度查询 110
5.6 Indexing API简介 113
5.6.1 删除模式 114
5.6.2 使用场景和方式 115
5.7 Chain模块和Memory模块 119
5.7.1 通过Retrieval QA Chain实现文档问答 120
5.7.2 通过Conversational Retrieval QA Chain实现会话文档问答 121
5.7.3 通过Memory模块为对话过程保驾护航 122
5.8 长上下文记忆系统的构建 124
5.8.1 会话记忆系统 125
5.8.2 语义记忆系统 125
5.8.3 生成式Agent系统 126
5.8.4 长上下文记忆系统的构建要点 126
5.9 LCEL语法解析:RunnablePassthrough 128
5.10 Runnable Sequence的数据连接:Retriever对象 130
第6章 自然语言交流的搜索引擎实战 134
6.1 场景代码示例 136
6.2 场景代码解析 137
6.3 Agent简介 138
6.3.1 Agent和Chain的区别 139
6.3.2 Agent的思考链 140
6.4 Agent的工具箱 145
6.5 面向OpenAI的Agent实现 148
6.6 Callback回调系统简介 153
6.7 Callback和verbose的关系 158
6.8 LCEL语法解析:RunnableBranch和链路异常回退机制 159
6.8.1 RunnableBranch 159
6.8.2 链路异常回退机制 162
6.9 Runnable Sequence的扩展:外部工具的接入 164
6.10 LangGraph:以图的方式构建Agent 165
第7章 快速构建交互式LangChain应用原型 170
7.1 Streamlit及免费云服务“全家桶” 172
7.1.1 环境准备 172
7.1.2 极简开发 172
7.1.3 实时交互 174
7.1.4 云上部署 177
7.2 使用Chainlit快速构建交互式文档对话机器人 179
7.2.1 环境准备 179
7.2.2 简单示例 180
7.2.3 交互式文档对话机器人 184
第8章 使用生态工具加速LangChain应用开发 195
8.1 LangSmith:全面监控LangChain应用 197
8.1.1 追踪LangChain应用 199
8.1.2 数据集与评估 202
8.1.3 LangChain Hub 204
8.2 LangServe:将LangChain应用部署至Web API 207
8.2.1 快速开始 208
8.2.2 原理详解 211
8.3 Templates & CLI:从模板和脚手架快速启动 214
8.3.1 LangChain Templates 214
8.3.2 LangChain CLI命令行工具 215
8.3.3 优化升级 218
第9章 我们的“大世界” 219
9.1 大语言模型应用开发框架的“你我他” 220
9.1.1 三大框架的简介 221
9.1.2 三大框架的特性 222
9.1.3 三大框架的对比 223
9.2 从LangChain Hub看提示词的丰富应用场景 224
9.2.1 场景写作 225
9.2.2 信息总结 228
9.2.3 信息提取 230
9.2.4 代码分析和评审 232
9.2.5 提示优化 234
9.2.6 RAG 235
9.2.7 自然语言SQL查询 236
9.2.8 评价打分 237
9.2.9 合成数据生成 238
9.2.10 思考链 240
9.3 浅谈通用人工智能的认知架构的发展 242