LangChain带你轻松玩转ChatGPT等大模型开发

  大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。

  本文主要介绍了LangChain带你轻松玩转ChatGPT等大模型开发,希望能对学习大模型的同学们有所帮助。

文章目录

  • 1. 前言
  • 2. 书籍推荐
    • 2.1 内容简介
    • 2.2 本书作者
    • 2.3 本书目录
    • 2.4 适合读者
  • 3. 购买链接

1. 前言

  此前,据相关媒体报道,微软正在研发一款名为MAI-1的最新AI大模型,其参数规模或将达5000亿以上,远超此前微软推出的相关开源模型,其性能或能与谷歌的Gemini 1.5、Anthropic的Claude 3和OpenAI的GPT-4等知名大模型相匹敌。

  2024年,随着ChatGPT的广泛应用,大语言模型已经引起了广泛的关注。无论国内还是国外的科技巨头和研究机构都积极地参与其中。

  在国际上,我们看到了OpenAI推出的GPT-4、Meta的Llama 2、Stanford大学的Alpaca、Google的LaMDA和PaLM 2、Anthropic的Claude等。

  国内有百度的文心一言、阿里的通义千问、360的360智脑、科大讯飞的星火大模型、商汤的商量、华为的盘古大模型、复旦大学的MOSS和清华大学的ChatGLM 2,等等。

  它们既可以成为你的聊天伙伴,陪伴你度过烦闷的时光;也可以成为你的老师,帮助你解答问题,提高你的表达能力;它们还可以充当你的私人助手,协助你撰写文章,总结每日新闻热点等。

  大语言模型的崛起正在改变着我们生活的方方面面。

  在这一背景下,为了帮助开发者更方便、灵活地构建基于大语言模型的应用,一批大型模型应用开发框架应运而生,LangChain这个大语言模型时代下的“新星”也应运而生,它不仅让AI应用的开发变得易如反掌,更是从单一的开发框架演变为一个包含开发、调试、部署及应用商店的完整生态系统。

  在这样一个技术飞速进步的时代,了解并掌握LangChain无疑是每一个AI开发者的必修课。

  想要学习LangChain,你必须知道LangChain的7大核心功能

  以及LangChain的周边生态

2. 书籍推荐

  《LangChain技术解密:构建大模型应用的全景指南》 一书便可以带你领略大语言模型的应用开发世界!不仅能帮助你体系化学习LangChain的7大核心功能及其周边生态,而且还能快速掌握构建大模型应用的落地方法。

  这是一本大语言模型的入门之作!GitHub上与本书相关的文档已获得6800+ Star,此外,本书提供全书免费配套代码、读者群等,为读者做好全方位学习服务!

  《LangChain技术解密》 这本书不仅详尽地介绍了LangChain的使用方法,还深入探讨了其背后的技术原理,帮助读者在实际操作中更加得心应手。

2.1 内容简介

  为了让读者更加深入地理解LangChain的强大功能,我们在《LangChain技术解密》中设计了10个章节,每个章节都针对LangChain的不同方面进行了详细的讲解和实践指导。

  • 第1章 概述了大语言模型的发展背景,并全面解读了LangChain的基本概念、使用理由、应用场景等。这一章作为入门篇,帮助读者建立对LangChain整体框架的初步了解。

  • 第2章 详细介绍了开始LangChain开发前需要做的准备工作,如安装LangChain框架、获取OpenAI API密钥、搭建开发环境等,确保读者能够顺利启动自己的项目。

  • 第3章 深入讲解了模型的输入与输出(Model I/O)中的Model部分,包括LangChain Model的使用方法和最常用的OpenAI API及其参数设置,使读者在实际操作中能够更加精准地控制模型行为。

  • 第4章 继续探讨Model I/O中的输入输出部分,不仅介绍了LangChain的Prompt Template(提示词模板),还详述了如何优化Prompt(提示)使其更加有效,同时也对输出解析器的应用进行了阐释。

  • 第5至7章 重点介绍了检索增强生成(RAG)技术,从加载器、分割器、向量存储到检索器等关键组件的用法,到链与记忆的高阶操作技巧,全面展示了RAG技术在LangChain中的应用。

  • 第8章 深入解析了代理(Agent)技术的原理和应用,同时对LangGraph多智能体框架进行了详细介绍,帮助读者理解如何构建更复杂的AI代理互动。

  • 第9章 探讨了LangChain的其他组件及其周边生态,如回调组件、隐私与安全、评估和追踪调试平台LangSmith,以及部署框架LangServe和应用模板商店LangChain Template等,提供了全面的资源介绍和工具支持。

  • 第10章 通过两个完整的AI应用开发项目,指导读者从零开始构建并部署应用,同时介绍了LangChain的零代码AI应用构建平台Flowise,让读者可以将所学知识应用于打造专属的应用。

  通过这10章的内容,读者不仅能够学习到LangChain的操作方法和技术细节,还能通过实际案例深入理解其应用潜力,为自己在AI领域的探索和发展打下坚实的基础。

  无论你是AI领域的新手,还是希望通过大型语言模型技术为业务赋能的产品经理,或是计算机专业的学生和AI爱好者,《LangChain技术解密》都将是你不可多得的学习资源。期待我们一起在AI的新高地上探索未知、创造可能!

2.2 本书作者

  • 王浩帆,从事影视及游戏相关流程开发十余年,长期关注并探索大语言模型及其他人工智能技术在影视及游戏行业的应用落地。作为开源技术爱好者和LangChain Contributer,不仅积极为LangChain等开源项目贡献力量,也致力于开发个人的开源项目。

2.3 本书目录

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	112章 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库	243章 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	714章 大语言模型及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 自定义输出解析器	1175章 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 检索内容重排	1796章 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 路由链	2107章 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组件	2328章 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 示例	2869章 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 总结	34610章 案例开发与实战	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

2.4 适合读者

  本书适合刚入门或想加入AI行业的技术从业者、需要结合大型语言模型相关技术为业务赋能的产品经理、计算机相关专业的学生,以及AI爱好者和自学者。

3. 购买链接

  • LangChain技术解密:构建大模型应用的全景指南,限时五折优惠。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838867.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程

🐯 Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程 📸 文章目录 🐯 Python中cv2 (OpenCV, opencv-python)库的安装、使用方法demo最新详细教程 📸摘要引言正文📘 OpenCV库概述🚀 …

【Git教程】(十九)合并小型项目 — 概述及使用要求,执行过程及其实现,替代解决方案 ~

Git教程 合并小型项目 1️⃣ 概述2️⃣ 使用要求3️⃣ 执行过程及其实现 在项目的初始阶段,往往需要针对重要的设计决策和技术实现原型实验。当原型评估结束后,需要将那些成功的原型合并起来称为整个项目的初始版本。 在这样的情景中,各个原…

php代码审计参考

代码审计思路: 从个人角度出发,如果环境允许的话,可以先选择做一个”程序员“再来做代码审计。因为从开发者的位置去思考问题,可以快速定位问题。学习面向对象编程以及面向过程编程,编写一些 项目提升对代码的理解能力…

Android Compose 六:常用组件 Button

Button 1 简单使用 Button(onClick { /*TODO*/ }) {Text(text "我是一只button里的text")}效果 颜色为什么是这个样子? 前面Text里我们讲过 主题色会影响组件的颜色 这里我使用的颜色如下 primary Color(0xFFFF0000),onPrimary Color(0xFF00FF00),p…

什么是合法IP地址?

IP地址,即互联网协议地址,是网络设备在互联网上进行通信的唯一标识符。IP地址有两种主要版本:IPv4和IPv6。为了保证网络通信的正常进行,IP地址需要是合法的。本文将详细阐述什么是合法IP地址,以及其重要性和验证方法。…

如何给实拍添加旋转模糊效果?视频模糊特效PR模板剪辑素材

PR特效模板,高级旋转模糊效果视频模板剪辑素材。 特征: After Effects 2019及以上兼容项目。 Premiere Pro 2021及以上兼容项目。 可用分辨率(4K–HD–方形–移动)。 不需要插件。 包括教程。 免费下载:https://prmu…

宝藏级丨图解项目管理全流程(上篇)

《项目管理知识体系指南》的定义:项目是为创造独特的产品、服务或成果而进行的临时性工作。项目管理就是将各种知识、技能、工具与技术应用于项目活动,以满足项目的要求。项目管理的全流程包括以下几个阶段: 项目启动阶段。这是开始一个新项…

GAN实例基于神经网络

目录 1.前言 2.实验 1.前言 需要了解GAN的原理查看对抗生成网络(GAN),DCGAN原理。 采用手写数字识别数据集 2.实验 import argparse import os import numpy as np import mathimport torchvision.transforms as transforms from torchvi…

RedisTemplate使用最详解(三)--- opsForHash()

1、put(H var1, HK var2, HV var3) 新增hashMap值 var1 为Redis的keyvar2 为key对应的map值的keyvar3 为key对应的map值的值var2相同替换var3 redisTemplate.opsForHash().put("hashValue","map1","value1"); redisTemplate.opsForHash().put(&q…

Java官网下载JDK17版本详细教程(下载、安装、环境变量配置)

第一步,去百度搜索甲骨文官网 第二步 第三步 第四步 第五步 第六步 第七步 第八步 第九步 第十步 然后在系统变量里面找到path-编辑-新建添加这个,点击确定就好了 %JAVA_HOME%\bin 就完成了,接下来测试是否成功。 测试: 第一步&a…

VC++6.0 ListViewReport报表使用例子

操作步骤: 1,拖一个ListContorl控件 2,修改ID名称 3,设置Report样式 3,加入初始化代码 void CDuplicatefilesclearDlg::InitlizationListView() {CListCtrl *lstVew (CListCtrl*)GetDlgItem(IDC_LIST_Main);lstVew-&…

“联宝360“项目深度解析:创新模式与互助机制

大家好,我是吴军,来自一家知名的互联网科技公司,负责产品策略分析。 最近,我观察到社交网络上出现了一个名为“联宝360”的热门项目,它引发了众多团队长的热烈讨论和积极推广。这个项目虽然是在今年年初刚刚启动的&am…

羊大师分析,羊奶健康生活的营养源泉

羊大师分析,羊奶健康生活的营养源泉 羊奶,作为一种古老的饮品,近年来因其独特的营养价值和健康益处而备受关注。今天,羊大师就来探讨一下羊奶与健康之间的紧密联系。 羊奶富含蛋白质、脂肪、维生素和矿物质等多种营养成分。羊奶…

如何做一个厂区的导航地图?工厂导航定位怎么解决方案

厂区定位导航是一种基于位置服务(LBS)的导航系统,通过获取厂区内的位置信息,为用户提供准确的导航服务。该系统能够实时显示用户当前位置,提供目的地导航、路径规划、实时定位、语音提示等功能,帮助用户快速…

Process Monitor下载安装使用教程(图文教程)超详细

「作者简介」:2022年北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖系统安全、信息收集等…

maven的安装与配置(超详细)

在Java开发中,配置Maven环境有几个重要的原因: 依赖管理:Maven 是一个强大的依赖管理工具,它能够帮助开发人员轻松地管理项目所需的各种第三方库和组件。通过在项目的 Maven 配置文件(pom.xml)中定义依赖&…

人工智能改善客户体验的10种方式

什么是人工智能客户体验? 人工智能客户体验是指使用人工智能技术(如机器学习、聊天机器人和对话式用户体验)使每个接触点尽可能高效且无障碍的实践。本质上,客服代表得到了一个虚拟助手帮助他们完成重复性任务。这意味着对于有简…

期权(1):基本概念,权利金,定金,买方,卖方,零和游戏,对赌协议

期权是合约,权利金就是定金! 合约到期时 买方可以选择行权,也可以选择不行权。代价就是定金损失。因此亏损封顶,但盈利无限。卖方赚的就是买方的定金,盈利封顶,但亏损无限。 从这里,我们看出…

C语言例题42、打印金字塔

#include <stdio.h>void main() {int i, j;for (i 0; i < 5; i) {for (j 4; j > i; j--) {//输出空格printf(" ");}for (j 0; j < 2 * i 1; j) {//输出星号printf("* ");}printf("\n");} }运行结果&#xff1a; 本章C语言经…

HTML5实现简洁好看的个人主页,个人小站(多种风格附源码)

文章目录 1.烟灰主题个人主页1.1 个人主页界面1.2 个人信息界面1.3 兴趣爱好界面1.4 个人作品界面 2.紫霞主题个人主页2.1 个人主页界面2.2 个人信息界面2.3 兴趣爱好界面2.4 个人作品界面 3.墨夜主题个人主页3.1 个人主页界面3.2 个人信息界面3.3 兴趣爱好界面3.4 个人作品界面…