ChatGPT Plugin发布,这东西到底是干嘛的?里面的逻辑是什么?

前言

chatGPT目前的明显问题是不能够获取新知识,也没有办法和外界交互,而plugin就是来解决这个问题的。

chatgpt-retrieval-plugin

插件的基本信息

这是最新开源的一个plugin,里面有几个核心点
第一个是插件的定义
在这里插入图片描述
我不逐句翻译了,大概意思就是可以扩展chatGPT,这样就可以试用外部的资料和调用外部的服务了。
然后又说明了一个插件需要的三个部分

  1. 需要一个API
  2. 需要一个API的定义
  3. 需要一个描述这个插件的json文件

插件和chatGPT之间的核心逻辑

在这里插入图片描述

这个图其实就是插件与chatGPT的一个核心交互模式。

解释下里面的的核心点:chatGPT是如何和工具进行交互的。
这里就涉及到刚才插件要求的三个要素,Api、Api文档、插件描述。
我们核心看插件描述和API文档

api-plugin.json

{"schema_version": "v1","name_for_model": "retrieval","name_for_human": "Retrieval Plugin","description_for_model": "Plugin for searching through the user's documents (such as files, emails, and more) to find answers to questions and retrieve relevant information. Use it whenever a user asks something that might be found in their personal information.","description_for_human": "Search through your documents.","auth": {"type": "user_http","authorization_type": "bearer"},"api": {"type": "openapi","url": "https://your-app-url.com/.well-known/openapi.yaml","has_user_authentication": false},"logo_url": "https://your-app-url.com/.well-known/logo.png","contact_email": "hello@contact.com", "legal_info_url": "hello@legal.com"
}

openapi.yaml

openapi: 3.0.2
info:title: Retrieval Plugin APIdescription: A retrieval API for querying and filtering documents based on natural language queries and metadataversion: 1.0.0servers:- url: https://your-app-url.com
paths:/query:post:summary: Querydescription: Accepts search query objects array each with query and optional filter. Break down complex questions into sub-questions. Refine results by criteria, e.g. time / source, don't do this often. Split queries if ResponseTooLargeError occurs.operationId: query_query_postrequestBody:content:application/json:schema:$ref: "#/components/schemas/QueryRequest"required: trueresponses:"200":description: Successful Responsecontent:application/json:schema:$ref: "#/components/schemas/QueryResponse""422":description: Validation Errorcontent:application/json:schema:$ref: "#/components/schemas/HTTPValidationError"security:- HTTPBearer: []
components:schemas:DocumentChunkMetadata:title: DocumentChunkMetadatatype: objectproperties:source:$ref: "#/components/schemas/Source"source_id:title: Source Idtype: stringurl:title: Urltype: stringcreated_at:title: Created Attype: stringauthor:title: Authortype: stringdocument_id:title: Document Idtype: stringDocumentChunkWithScore:title: DocumentChunkWithScorerequired:- text- metadata- scoretype: objectproperties:id:title: Idtype: stringtext:title: Texttype: stringmetadata:$ref: "#/components/schemas/DocumentChunkMetadata"embedding:title: Embeddingtype: arrayitems:type: numberscore:title: Scoretype: numberDocumentMetadataFilter:title: DocumentMetadataFiltertype: objectproperties:document_id:title: Document Idtype: stringsource:$ref: "#/components/schemas/Source"source_id:title: Source Idtype: stringauthor:title: Authortype: stringstart_date:title: Start Datetype: stringend_date:title: End Datetype: stringHTTPValidationError:title: HTTPValidationErrortype: objectproperties:detail:title: Detailtype: arrayitems:$ref: "#/components/schemas/ValidationError"Query:title: Queryrequired:- querytype: objectproperties:query:title: Querytype: stringfilter:$ref: "#/components/schemas/DocumentMetadataFilter"top_k:title: Top Ktype: integerdefault: 3QueryRequest:title: QueryRequestrequired:- queriestype: objectproperties:queries:title: Queriestype: arrayitems:$ref: "#/components/schemas/Query"QueryResponse:title: QueryResponserequired:- resultstype: objectproperties:results:title: Resultstype: arrayitems:$ref: "#/components/schemas/QueryResult"QueryResult:title: QueryResultrequired:- query- resultstype: objectproperties:query:title: Querytype: stringresults:title: Resultstype: arrayitems:$ref: "#/components/schemas/DocumentChunkWithScore"Source:title: Sourceenum:- email- file- chattype: stringdescription: An enumeration.ValidationError:title: ValidationErrorrequired:- loc- msg- typetype: objectproperties:loc:title: Locationtype: arrayitems:anyOf:- type: string- type: integermsg:title: Messagetype: stringtype:title: Error Typetype: stringsecuritySchemes:HTTPBearer:type: httpscheme: bearer

这两个部分有点长,我摘出重点
在插件描述中:

"name_for_model": "retrieval",
"description_for_model": "Plugin for searching through the user's documents (such as files, emails, and more) to find answers to questions and retrieve relevant information. Use it whenever a user asks something that might be found in their personal information.",

api定义中

 /query:post:summary: Querydescription: Accepts search query objects array each with query and optional filter. Break down complex questions into sub-questions. Refine results by criteria, e.g. time / source, don't do this often. Split queries if ResponseTooLargeError occurs.operationId: query_query_post

这两段逻辑就是ChatGPT可以判断是否要调用这个接口的依据,也就是说这两段会传如到prompt中去。
而具体怎么调用就是通过openapi.yaml 来获取的接口知识,这个对gpt来说实在是太简单。

总结

这个逻辑和LangChain的agent模块基本一致。目前只有一个核心区别,就是这个插件看起来是只作用于ChatGPT,也就是说我们需要登录到chatGPT的网站上通过对话才能使用这个插件。而LangChain不同,他是一个工具,可以开发一个独立与ChatGPT的网站或者工具。

如果我是LangChain,就直接着手开发对接plugin的Agent或者tool咯

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

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

相关文章

chatgpt赋能powershell

最近chatgpt非常火爆,获得超高曝光度的同时,也让大家对ai和ai工具有了新的认识。关于chatgpt,可以参考这篇文章。 今天主要推荐一个可以与powershell集成的ai工具,其后端也是openai的服务,可以有效提高工作效率。 Po…

ChatGPT算法护航,拿不到年薪25W全额退!

最近因ChatGPT爆火,使得很多人非常的焦虑,下面是我看到的一位好朋友心情!不知道大家是否也有同样的心情!~ 感觉很多人在看到ChatGPT时都有这样的担忧,这样的担忧是不是源自于神经网络如果参数量足够大&…

搭个ChatGPT算法模型,离Java程序员有多远?

除了大家都想体验一下这款智能的 ChatGPT AI,也有很多互联网公司开始搭建自己的 ChatGPT,但真的挺担心最后整出来的不是 ChatGPT 而是 ChatPPT。为此我也想研究下 ChatGPT 是怎么做出来的,都说是模型和数据训练,那我能训练吗&…

基于java记账管理系统(论文+PPT+源码)

本 科 毕 业 设 计(论文) 题 目:记账管理系统 专题题目:记账管理系统 本 科 毕 业 设 计(论文)任 务 书 题 目: 记账管理系统 专题题目(若无专题则不填)&#xff1a…

为了搞懂ERP,我连问 ChatGPT 30个问题,通透!

我对ERP有很多的疑问,这次向ChatGPT请教,连问30个问题,瞬间觉得通透了很多,以下是我的问题和ChatGPT的回复,分为概念篇、架构篇和生态篇三部分,希望能带给你新的启示。 一、概念篇 1、ERP是什么&#xff1f…

安卓app源码和设计报告——简易记账本

课 程 设 计(实训)说 明 书 题目实现简易记账本功能 专 业班 级学生姓名同组学生指导老师 课程设计(实训)评语 学生姓名 专业 班级 2 题目 实现简易记账本功能 评语: 成绩: 优良中及格不及格出勤20%…

ChatGPT来抢财务饭碗?别慌!对话企业聊聊财务数字化

10大职业将被ChatGPT取代,财务也位居其中?有媒体和机构整理,最有可能被取代的职业有:技术工种、媒体工作者、法律工作者、市场研究分析师、教师、财务、交易员、平面设计师、会计师、客服。你感受到职业危机了吗? 当下…

不止ChatGPT,这些GPT 官方助力的潜力股同样值得拥有

我很惊讶于 OpenAI 创投基金主页面的简陋,或许他们更关注于做事吧。对于 OpenAI 的第一组投资来说,人工智能实验室已使用其 1 亿美元的基金投资了至少 12 家公司,很多公司的产品状态尚处于“Join Waitlist”状态,下面我带你了解一…

Java——Linux使用Docker部署若依前后端分离版【保姆级教程】

目录 一、项目规划与前置工作 1.1、docker所需镜像 1.2、使用工具 1.3、防火墙与安全组的配置 1.4、域名解析、备案、SSL证书的准备(可选) 二、Docker和镜像安装 2.1、Docker安装 2.1.1、检查环境 2.1.2、搭建gcc环境(gcc是编程语言译器&am…

面向数据安全共享的联邦学习研究综述

开放隐私计算 摘 要:跨部门、跨地域、跨系统间的数据共享是充分发挥分布式数据价值的有效途径,但是现阶段日益严峻的数据安全威胁和严格的法律法规对数据共享造成了诸多挑战。联邦学习可以联合多个用户在不传输本地数据的情况下协同训练机器学习模型&a…

好再来点餐APP源码和设计报告

大作业文档 项目名称:好再来点餐专业:班级:学号:姓名: 目 录 一、项目功能介绍3 二、项目运行环境3 1、开发环境3 2、运行环境3 3、是否需要联网3 三、项目配置文件及工程结构3 1、工程配置文件3 2、工程结构…

Java 编写的个人记账网站 完整源码 附带详细的设计报告

今天为大家分享一个java语言编写的个人记账网站,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步 开发环境 开发语言为Java,开…

Vue2+3入门到实战

作为IT技术相关行业不可或缺的岗位之一,前端开发工程师就业前途广阔,一直是很多同学心中转行的首选行业。但很多人还没开始,便被一系列问题难倒了,比如:前端该如何入门?路线图是怎样的?想要找到…

尝试用 ChatGPT 完整的实现一个 Serverless 后端工程

❝ 本文转自 Xiaowen.Z 的博客,原文:https://xiaowenz.com/blog/2023/04/coding-with-chatgpt-pilot/,版权归原作者所有。欢迎投稿,投稿请添加微信好友:cloud-native-yang 写在前面 因为从过年开始,断断续续…

只因为给我打了0.1分,重新撸了个记账小程序

2019年的时候和朋友出去旅行,因为需要A账单,所以前一天开发了一个记账小程序,时间匆忙,就随便完成基础记账和AA计算功能后就上线,旅行结束后也就没用过了,前几天无意登录,发现被打了1.0分。 叔能…

总体设计(软件项目)

1.引言 1.1编写目的 由前面的需求分析,得出了系统的基本需求,要实现整个系统,需要对用户的需求进行设计,概要设计主要是利用比较抽象的语言对整个系统进行概括,确定对系统的物理配置,确定整个系统的处理流…

ChatGPT是什么,一文读懂ChatGPT

ChatGPT是个啥? 近期很多朋友后台私信GPT如何访问,我在网上找到一个免梯子的GPT,使用起来还是挺顺畅的,有需要的可以尝试使用,传送门,界面也挺清新的 近期,OpenAI 发布了 ChatGPT,是一个可以对话的方式进行交互的模型,因为它的智能化,得到了很多用户的欢迎。ChatG…

ChatGPT实战:如何进行高难度沟通

最近发现了一个很实用的 ChatGPT 在职场中的应用场景——高难度沟通。对于一个没有什么经验的职场人来说,在第一次面对催促项目进度、礼貌地告诉甲方你们给的钱实在太少了、向老板反馈最近加班太多了等等沟通场景,会很手足无措。 有了 ChatGPT 之后&…

chatgpt搭建企业级量身定制

如果要搭建企业级量身定制的ChatGPT系统,可能需要经过以下几个步骤: 需求分析和设计:根据企业的实际需求,确定ChatGPT的功能和性能指标,并进行系统设计和架构规划。 数据收集和预处理:收集与应用场…

ChatGPT重磅升级!GPT-4懂幽默、会图文,无所不能,你更焦虑了嘛

AI时代已经来临,AI方便了人类,同时他们将替代人类。 以后很多人可能连做螺丝钉的位子都没有。 你选择主动加入还是被动淘汰? 留给你焦虑的时间不多了