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

news2024/11/20 20:29:39

  大家好,我是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.coloradmin.cn/o/1682911.html

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

相关文章

CDN管理平台安装说明

CDN管理平台安装说明 系统需求 操作系统:Linux CPU不少于1核心 可用内存不少于1G 可用硬盘空间不小于10G 对于每日千万访问以上的CDN系统推荐配置如下: CPU不少于8核心 可用内存不少于8G 可用硬盘空间不小于200G 准备工作 在安装GoEdge之前&#xff0…

集中电表抄表系统

1.集中电表抄表系统的简述 集中电表抄表系统是一种现代化电力管理方法,它通过自动化的形式搜集、解决与分析电力耗费数据信息,大大提升了电力行业经营效率。这类系统的主要目标是替代传统的人工抄水表方法,降低不正确,提升数据的…

【linux】详解vim编辑器

基本指令 【linux】详解linux基本指令-CSDN博客 【linux】详解linux基本指令-CSDN博客 vim的基本概念 vim有很多模式,小编只介绍三种就能让大家玩转vim了, 分别是: 正常/普通/命令模式 插入模式 末行/底行模式 命令模式 控制屏幕光标的…

Java面试八股之进程和线程的区别

Java进程和线程的区别 定义与作用: 进程:在操作系统中,进程是程序执行的一个实例,是资源分配的最小单位。每个进程都拥有独立的内存空间,包括代码段、数据段、堆空间和栈空间,以及操作系统分配的其他资源…

IT革命浪潮:技术革新如何改变我们的生活与工作

一、技术革新与行业应用 当前的IT行业正处于前所未有的技术革新阶段。其中,量子计算和虚拟现实是两项引人注目的技术。 量子计算:量子计算以其超越传统计算的潜力,正在逐步从理论走向实践。在材料科学、药物研发和气候模型等复杂计算领域&a…

前端学习-day08

文章目录 01-相对定位02-绝对定位03-绝对定位居中04-固定定位05-堆叠顺序06-CSS精灵-基本使用07-案例-京东服务08-字体图标10.垂直对齐方式11-过度12-透明度13-光标类型14-轮播图 01-相对定位 <!DOCTYPE html> <html lang"en"> <head><meta ch…

计算机网络学习小结_数据链路层

数据链路和帧 帧&#xff1a;数据链路层传输基本单元。链路层将网络层传过来的数据构成帧发到链路上&#xff0c;并将发到链路层的帧取出数据交给网络层 数据报/分组/包&#xff1a;网络层传输基本单元 三个基本问题 即封装成帧、透明传输、差错检测 封装成帧 概念&#…

阿木实验室联合openEuler开源社区-Embedded SlG组(海思项目)参加第五届「开源之夏」,参赛学生火热招募中...

开源之夏是中国科学院软件研究所发起的“开源软件供应链点亮计划”系列暑期活动&#xff0c;旨在鼓励高校学生积极参与开源软件的开发维护&#xff0c;促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区&#xff0c;针对重要开源软件的开发与维护提供项目开发任务&#xf…

java+ vue.js+uniapp一款基于云计算技术的企业级生产管理系统,云MES源码 MES系统如何与ERP系统集成?

java vue.jsuniapp一款基于云计算技术的企业级生产管理系统&#xff0c;云MES源码&#xff0c;MES系统如何与ERP系统集成&#xff1f; MES系统&#xff08;制造执行系统&#xff09;与ERP系统&#xff08;企业资源规划系统&#xff09;的集成可以通过多种方式实现&#xff0c;这…

3D工业视觉

前言 本文主要介绍3D视觉技术、工业领域的应用、市场格局等&#xff0c;主要技术包括激光三角测量、结构光、ToF、立体视觉。 一、核心内容 3D视觉技术满足工业领域更高精度、更高速度、更柔性化的需求&#xff0c;扩大工业自动化的场景。 2D视觉技术基于物体平面轮廓&#…

LabVIEW超高温高压流变仪测试系统

LabVIEW超高温高压流变仪测试系统 超高温高压流变仪广泛应用于石油、天然气、化工等行业&#xff0c;用于测量材料在极端条件下的流变特性。随着计算机技术、测试技术和电子仪器技术的快速发展&#xff0c;传统的流变仪测试方式已无法满足现代工业的需求。因此&#xff0c;开发…

JavaFX学习教程一

一、准备工作 Jdk 从 1.8 起支持 JavaFx&#xff0c;到 Jdk 11 不再包含 JavaFx&#xff0c;而是改为 OpenJFX&#xff0c;需要另行安装。 以下是JavaFX的官方教程&#xff1a; java8(java1.8)的客户端技术说明指南(开发工具为NetBeans IDE )&#xff1a;客户端技术&#xf…

C++—结构体

结构体&#xff08;struct&#xff09;&#xff0c;是一种用户自定义复合数据类型&#xff0c;可以包含不同类型的不同成员。 结构体的声明定义和使用的基本语法&#xff1a; // 声明结构体struct 结构体类型 { 成员1类型 成员1名称; ...成员N类型 成员N名称; };除声明…

rockylinux 利用nexus 搭建私服yum仓库

简单说下为啥弄这个私服&#xff0c;因为自己要学习一些东西&#xff0c;比如新版的k8s等&#xff0c;其中会涉及到一些yum的安装&#xff0c;为了防止因网络问题导致yum安装失败&#xff0c;和重复下载&#xff0c;所以弄个私服&#xff0c;当然也有为了意外保障的想法&#x…

网络安全技术与应用:远程控制与数据库安全

实验准备 软件&#xff1a;VMware Workstation Pro 虚拟机&#xff1a;Red Hat Enterprise Linux 7 服务器&#xff0c;Red Hat Enterprise Linux 7 客户端 网络模式&#xff1a;NAT模式 1、配置服务器及客户端网络 服务器IP 客户端IP 测试相互通信 在客户机上设置镜像&#…

nssctf——web

[SWPUCTF 2021 新生赛]gift_F12 1.打开环境后&#xff0c;这里说要900多天会有flag&#xff0c;这是不可能的 2.f12查看源码&#xff0c;然后在html中查找flag &#xff08;在最上方的栏目中&#xff0c;或者按ctrlf&#xff09; [SWPUCTF 2021 新生赛]jicao 1.打开环境是一段…

【MySQL】MySQL的安装和基本概念

MySQL的安装和基本概念 一、环境安装1、环境及配置2、下载安装 二、基本概念1、主流数据库2、mysql和mysqld的区别和概念&#xff08;1&#xff09;概念1&#xff1a;了解CS结构&#xff08;2&#xff09;概念2&#xff1a;数据库指的是什么&#xff08;3&#xff09;概念3&…

模板中的右值引用(万能引用)、引用折叠与完美转发

模板中的右值引用&#xff08;万能引用&#xff09;、引用折叠与完美转发 文章目录 模板中的右值引用&#xff08;万能引用&#xff09;、引用折叠与完美转发一、万能引用与引用折叠1. 模板中的右值引用2. 自动类型推导(auto)与万能引用3. 引用折叠与万能引用4. lambda表达式捕…

巨某量引擎后台登录实战笔记 | Playwright自动化框架

前言 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 入正题看看滑块是怎么个事…

数字孪生项目开发流程

数字孪生&#xff08;Digital Twin&#xff09;项目的开发流程涉及多个步骤&#xff0c;从初始概念到最终部署和维护。以下是一个典型的数字孪生项目开发流程&#xff0c;通过这些步骤&#xff0c;开发团队可以有效地规划、设计、开发和维护数字孪生项目&#xff0c;确保其在实…