【Langchain】GPT的高效插件

news2024/11/13 10:54:02

功能1:让模型具有memory

可以看到,langchain作为访问gpt的一个插件,可以让gpt模型通过memory变量将之前的对话记录下来,从而使模型具有记忆(在不改变模型参数的情况下)。
在这里插入图片描述
查看memory变量包含了什么:
在这里插入图片描述
可以通过参数k(或者max_tokens等参数)设置记忆的长度(记住之前的几个对话):
在这里插入图片描述

为什么用langchain

大型模型是没有“状态”这个概念的(相比lstm这类模型)。
在这里插入图片描述
langchain这个插件就能解决这个问题。

功能2: 前后文联系

即下一个对话(输出)需要用到上一个对话中的某些信息(作为输入)。

普通链

假设读取了一个csv文件:
在这里插入图片描述

llmchain这个函数需要接受两个变量,模型和prompt:
在这里插入图片描述

Sequetial Chain

在这里插入图片描述
这种类型的chain,前后的对话是有输入-输出之间的关系。

来看一下如何使用:

在这里插入图片描述
输出如下:
在这里插入图片描述
simple chain的示意图如下:
在这里插入图片描述

当多个对话杂糅时,可以这样操作:

在这里插入图片描述
在这里插入图片描述
此时的示意图如下:
在这里插入图片描述
在这里插入图片描述

Router Chain

用于不同领域的处理,针对不同的领域,给出不同的prompt(需要自己提前定义有哪几种prompt)。
在这里插入图片描述
具体举例说明,比如有多个学科的老师,需要回答某一领域的问题时,先定义不同学科的prompt:

在这里插入图片描述
再定义所有promt的信息:
在这里插入图片描述
然后开始调用 MultiPromptChain 等函数:
在这里插入图片描述
还要定义defalt chain:
在这里插入图片描述
在这里插入图片描述

功能3:根据文档回答问题

需要用到 embedding 和 向量储存(Vector Database)技术,在所上传的文档中进行检索、匹配等操作。

来康康怎么实现的,假设上传一个 csv 文件,需要 gpt 根据所上传的文件回答问题。

在这里插入图片描述

但是有时候文档很大时,gpt无法输入这么长的内容(LLM模型一次性输入的token是有限制的):在这里插入图片描述
这时候就要引入embeding和向量储存技术了。

embedding

即用 vector 表达某一段话的内容, 当两句话相似度比较高的时候, 他们对应embedding 的结果也非常相似:
在这里插入图片描述

Vector Database

把每一段内容进行embedding,然后按照index的方式储存他们的embedding。
在这里插入图片描述
在输入 query 进行查询的时候,将 query 也 embbedding 化,然后查询它和之前储存的所有句子的 embdding的相似度,选取相似度比较高的几个句子,从而进行回答:
在这里插入图片描述

代码实现

加载一个文档:
在这里插入图片描述
查看 embedding 的用法,可以看到其有1536纬度:
在这里插入图片描述
建立 vector database 并查找高相似度的句子:
在这里插入图片描述
返回了四个文档:
在这里插入图片描述
取回所需要(相似度高)的内容:
在这里插入图片描述

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

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

相关文章

在blender中使用python程序化建模

blender中,所有可以在Blender软件中的手动操作,基本都可以通过Python API 完成 那么就可以用这个完成程序化生成 下面我给出一个简单的方块建模程序: 在scripting中,可以添加file,然后向场景中心放置一个正方体 首…

前端面试题Vue答案

1.vue的原理? image.png 关键词: 虚拟DOM树访问器属性 解释一下:响应式原理? 当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的 property,并使用 Object.defineProperty把这些 property 全部转为 getter/setter…

开关电源PFC电路原理详解及matlab仿真

PFC全称“Power Factor Correction”,意为“功率因数校正”。PFC电路即能对功率因数进行校正,或者说能提高功率因数的电路。 在电学中,功率因数PF指有功功率P(单位w)与视在功率S(单位VA)的比值。…

【Linux】fdisk命令参数详解(图文超详细,内容来自官方文档)

目录 0.环境 1.背景 2.内容--官方文档对fdisk的介绍 1)名称 2)说明 3)具体参数/选项 4)举个栗子,我要查fdisk的版本 0.环境 windows linux虚拟机 1.背景 之前发表了一篇文章Linux 用fdisk进行磁盘分区&#xff…

Python语法基础03(输入与while)

用户输入 使用input()函数可以获取输入,同时应说清楚所期待的输入内容 #使用函数input时,要说清楚期望的输入 carinput("Please input your favourite car.\nAnd i will repeat:") print(f"your favourite car is {car}")## 也可…

多元分类预测 | Matlab灰狼算法(GWO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,GWO-HKELM分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab灰狼算法(GWO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,GWO-HKELM分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab…

NFTScan 与 Sender Wallet 达成合作伙伴,双方在多链 NFT 数据方面展开合作!

近日,NFT 数据基础设施 NFTScan 与 Web3 钱包 Sender Wallet 达成合作伙伴关系,成为其官方 NFT 数据供应商。NFTScan 将为 Sender Wallet 的 NFT 部分提供专业的多链 NFT 数据支持,确保用户可以跨多个区块链获得全面和实时的 NFT 数据。 Sen…

Latex 文献引用

来源: 引用 - 为什么叫 citet 和 citep?- TeX - LaTeX 堆栈交换 (stackexchange.com) 来源: latex \cite, \citet, \citep_latex citet_juliosun的博客-CSDN博客 来源:https://www.reddit.com/r/LaTeX/comments/5g9kn1/whats_th…

【网络安全带你练爬虫-100练】第1练:发送请求获取返回内容

目录 一、前置知识1 二、前置知识2 requests库的7个主要方法 语法: 注解: 三、扩展工具 四、网络安全小圈子 一、前置知识1 顾名思义网络爬虫第一步,爬取目标 URL的网页的信息 可以使用 urllib.request 和 requests发送请求&#xff0…

瞄准光储赛道的家电巨头,是没活“硬整”,还是有理有据?

2023年上半年即将结束,家电巨头再次带来跨界的重磅消息。 在A股公司合康新能月底发布的定增公告中,美的集团,成为合康新能定增的包揽者。后者将获得前者提供的高达14.73亿元的募集资金总额,用于电子设备业务能力提升项目、光伏产…

一部手机如何登录多个微信?教你一招轻松搞定

现在大部分人都不止2个微信,有的用于私人社交,有的用于工作,人手多个微信已经很普遍了。那么如何在一个手机上同时登录2个甚至更多微信呢? 01登录2个微信 找到手机上面的【设置】,找到【应用设置】-【应用双开】&am…

Redis通信协议

RESP协议 Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和PubSub): ① 客户端(client)向服务端(server)发送一条命令 ② 服务端解析并执行命令,返回响应结果…

拧螺丝需求:递归算法的极致应用

前言 在一个平平无奇的下午,接到一个需求,需要给公司的中台系统做一个json报文重组的功能。 因为公司的某些业务需要外部数据的支持,所以会采购一些其它公司的数据,而且为了保证业务的连续性,同一种数据会采购多方的数…

电子模块|航空插头简介

电子模块|航空插头简介 航空插头图片航空插头介绍为什么要用航插航空插头实例及参数 航空插头图片 航空插头介绍 航空插头定义: 它是针对复杂工业环境与户外环境等应用场景开发的一类连接器。正式一些的称呼是“工业连接器”,主要用于电气、电子设备的电…

react菜鸟教程学习笔记

目录 第一个react实例 react安装 对react机制最直观的理解 如果你第一次用npm 关于初始化package.json的问题 使用 create-react-app 快速构建 React 开发环境 项目目录结构 修改一下代码执行源头APP.js React元素渲染 将元素渲染到DOM中 更新元素渲染 关于vue的更新…

Dlib —— 对图片进行人脸检测(附C++源码)

效果 注意:Dlib检测人脸在Release版耗时与CPU有关,本人I7 10代约100ms左右。建议人脸检测可以考虑使用Yolov5进行,之后将检测到的人脸输入给Dlib做特征或其他。 代码 Vs2017下使用Dlib检测人脸,并通过OpenCv将结果绘制出来。(由于…

推荐几个数据可视化工具汇总

数据的魅力在于其故事性和洞察力。让数据说话,我们汇集了一系列令人兴奋的数据可视化工具,为您提供展示和探索数据的无限可能。 分享一:Tangle Tangle是一个基于Web的数据可视化工具,旨在帮助大家以交互式和可视化的方式探索和解…

使用chatgpt过funcaptcha验证码2个人学习记录

funcaptcha 验证码2 通过记录 ** funcaptcha 那个公司开发的简要介绍: Funcaptcha是由hCaptcha公司开发的一种人机验证系统。hCaptcha是一家位于美国的人机验证技术提供商,旨在帮助网站和应用程序防止自动化攻击和滥用。 Funcaptcha是hCaptcha提供的一种…

MYSQL 数据清理磁盘没变小问题解决方法

我们到数据目录查看有些表比较大,清理了一些无用数据后发现,文件大小不变。这是mysql的机制导致的。 解决方法:重建索引释放空间。 alter table $TABLE engineInnoDB;

接口测试的流程

目录 前言: 接口测试流程 接口测试用例设计 接口测试工具 前言: 接口测试是软件测试中的一个关键环节,用于验证系统的各个接口是否符合预期功能和性能要求。 接口通俗的理解就是不同部分之间的连接通道,可以是程序之内的&am…