• 0
  • 0
分享
  • OpenAPI 定义被 openAI 定为 ChatGPT 插件标准
  • Apifox 2023-04-07 11:47:15 字数 4327 阅读 1437 收藏 0

ChatGPT Plugin 介绍

最近,OpenAI 宣布了一个重大的更新: ChatGPT 支持 Plugin 能力。用户在与 ChatGPT 自然语言交互时,可以选择使用插件。通过插件扩展,可以实现让 ChatGPT 实现以下能力:


  • 检索实时信息,例如:体育比分、股票价格、最新消息等。

  • 检索知识库信息,例如:公司文档、个人笔记等。

  • 代表用户执行操作,例如:订机票、订餐等。


举具体例子,用户想要使用 ChatGPT 来查询某个城市的酒店信息,只需要安装并允许使用一个酒店搜索的插件,然后就可以通过简单的对话来获取酒店的名称、价格、评分、位置等信息;如果用户想要使用 ChatGPT 来学习某个编程语言,他们只需要安装并允许使用一个编程教程的插件,然后就可以通过互动式的问答来掌握编程的基础知识和技巧。更多详细的例子可以查看这篇文章:ChatGPT 插件应用场景有哪些?

Openai is offering a web browsing plugin and a code execution plugin, and open-sourcing the code for a retrieval plugin. Plugins are very experimental still but we think there's something great in this direction; it's been a heavily requested feature.

OpenAI正在提供一个网页浏览插件和一个代码执行插件,并开源检索插件的代码。 插件仍然非常实验性,但我们认为在这个方向上有很大的潜力;这是一个备受期待的功能。-Sam Altman,CEO of OpenAI

插件背后的技术原理

插件开发人员通过标准的 manifest 文件和 OpenAPI 规范格式 的 API 文档文件,指定一个或多个开放的 API Endpoint(指具体的某个 API)。这些文件定义了插件的功能,允许 ChatGPT 读取这些文件,并调用开发人员定义的 API。一句话描述就是:AI 模型充当了智能 API 的调用方。给定 API 规范和有关何时使用 API 的自然语言描述,模型会主动调用 API 来执行操作。

插件从构建到使用的流程

截止目前时间(2023 年 3 月 30 日),ChatGPT 插件仍然处于有限的 alpha 版本阶段,所以需要加入等待列表以排队获取访问权限。在 alpha 版本期间,openAI 也承诺会充分和用户与开发人员合作迭代插件系统,所以最后上线的插件功能可能也会有一些变化,这也是想要提前体验与成为插件开发者需要去注意的很重要的点。

创建清单(manifest)文件

  • 将该文件托管在 yourdomain.com/.well-known/ai-plugin.json

  • 该文件包含有关插件的元数据(名称、徽标等),身份验证信息(身份验证类型、OAuth URL 等),以及 OpenAPI 规范格式的 API 文档文件。

  • 该模型将看到 OpenAPI 规范描述的字段,可用于为这些字段提供自然语言描述。

  • 建议在开始时仅公开 1-2 个端点,并使用最少数量的参数来最小化文本的长度。插件描述、API 请求和 API 响应都被插入到与 ChatGPT 的对话中。过多的内容会影响模型的上下文长度限制。

在 ChatGPT UI 中注册插件

从顶部下拉列表中选择插件模型,然后选择“Plugins(插件)”、“Plugin Store(插件商店)”,最后选择“Install an unverified plugin(安装未经验证的插件)”或“Develop your own plugin(开发自己的插件)”。

如果需要身份验证,需要提供 OAuth 2 client_id 和 client_secret 或 API Key

用户激活你的插件

  • 用户必须在 ChatGPT UI 中手动激活你的插件(ChatGPT 不会默认使用你的插件)。

  • 在 alpha 测试期间,插件开发人员将能够与 15 个其他用户共享其插件(目前只有其他开发人员可以安装未经验证的插件)。随着时间推移,openAI 将推出一种提交你的插件进行审核以暴露给所有 ChatGPT 用户群体的方式。

  • 如果需要认证,则用户将通过 OAuth 重定向到你的插件;你还可以选择在此处创建新帐户。

  • 未来,openAI 可能会构建功能来帮助用户发现有用和流行的插件。

用户开始对话

  • OpenAI 将在发送给 ChatGPT 的消息中插入对你的插件的简洁描述,但最终用户是看不到的。这将包括插件描述、Endpoint(指具体的某个 API)和示例。

  • 当用户提出相关问题时,如果看起来相关,模型可能会选择从你的插件调用 API 调用;对于 POST 请求,openAI 要求开发人员构建用户确认流程。

  • 该模型会将 API 结果合并到其对用户的响应中。

  • 该模型的响应中可能包含从 API 调用返回的链接。这些将显示为丰富的预览(使用 OpenGraph 协议,openAI 在其中提取 site_name, title, description, image, url 字段)”

需要了解关于插件的更多详情,可以在 OpenAI 中文文档 中进行查看。当然你也可以去官方文档中查看。

插件与 OpenAPI

在上面的文章内容中,我们介绍了插件的核心能力与基本的技术实现原理。其中提到很重要的一点:如果想要做到让 AI 模型通过插件作为你 API 的智能调用方,则你必须将你的 API 以 OpenAPI 规范格式的文档放在清单文件中。因为只有当你的 API 文档符合这个规范,才能被 AI 模型理解并真正执行成功调用你的 API。

为什么 OpenAPI 规范会被 OpenAI 采纳作为自己插件能力调用 API 的标准格式呢?这就要理解 OpenAPI 规范到底是什么,以及它是怎么形成的。了解了这些内容之后,就可以知道 openAI 公司为何把 OpenAPI 规范作为自己旗下最火产品 ChatGPT 的插件能力标准了。

OpenAPI 规范是什么

OpenAPI 规范(OpenAPI Specification)是一种开放的、标准化的、机器可读的 API 描述格式,它可以帮助开发者快速地创建、测试、发布和维护 API。OpenAPI 也可以用来生成 API 的文档、客户端代码、服务器代码等。

OpenAPI 的规范由 OpenAPI Initiative(OAI)组织制定和维护,目前最新的版本是 3.1.0。OpenAPI 规范使用 JSON 或 YAML 语言来定义 API 的元数据、路径、参数、响应、安全等信息。OpenAPI 规范是一种通用的和语言无关的接口,它可以让人类和计算机都能够发现和理解 API 的能力,而不需要访问源代码、额外的文档或网络流量检查。

深入了解:OpenAPI 规范 (中文版)

OpenAPI 规范的来源

OpenAPI 规范是由 Tony Tam 在 2009 年创立的,当时他是 Wordnik 公司的一名工程师,他想要描述 Wordnik 的在线词典 JSON API,于是创建了一个规范,叫做 Swagger。Swagger 在接下来的几年里经过了多次迭代和改进。在 2015 年,SmartBear Software 公司收购了 Swagger 规范,并在同年将其捐赠给了 Linux Foundation 下的一个新组织,叫做 OpenAPI Initiative(OAI),该组织由多家公司共同组成,旨在推动和维护 OpenAPI 规范的发展。

从 2016 年开始,Swagger 规范正式更名为 OpenAPI 规范,并迁移到了一个新的 GitHub 仓库。从那时起,OpenAPI 规范就不断地更新和完善。

通过 API First 工作方式来提升你的插件开发效率

我们现在可以理解,一个符合规范的 API 文档是有多么的重要。有了这份文档,人类、机器就能够更好的理解你的 API。在 API 开发过程中,一般来说,常见的产生符合 OpenAPI 规范文档的方式有两种:

1、优先进行 API 与业务代码的开发,开发完成并通过单元测试后,由技术人员根据实际开发的代码编写出 OpenAPI 规范文档。这种工作方式我们称之为:Code First;

2、优先进行 API 的定义并基于 OpenAPI 规范编写文档,根据这份规范的 API 文档来进行实际的代码开发工作。这种工作方式我们称之为:API First。

Code First 与 API First,两者都可以写出符合 OpenAPI 规范的文档,但是它们有着不同的应用场景与优缺点。

对于 API First 来说:

  • 强调 API 的重要性,把 API 作为业务的核心资产;

  • 更能保证 API 的质量与一致性;

  • 整体开发效率更高,可以基于 OpenAPI 规范的定义来模拟 API ,无需等待 API 代码部署,来更好的进行前后端协同、测试工作。

对于 Code First 来说:

  • 更灵活、直观;

  • 无需额外的设计工作,更适合简单、临时的 API ,或者一些已经存在的代码库。


总之,API First 是一个可以提升效率的工作流程,它的底层思想跟 OKR 工作方式也挺类似,优先定义工作目标、实现规范,从而让所有人的工作协同更好效率更高。

如果你最近想要开发一个 ChatGPT 的插件,一般情况下来说,必然已经对这个插件在什么场景想要做到什么效果,有一个清晰、明确的结论。所以,如果你采用 API First 工作流程,在开发工作开始之前事先将这个能力抽象定义出来并且制作出一个 OpenAPI 规范文档,就有以下明显的好处了:

  • 如果你是一个团队来对这个插件进行开发,你们团队的所有成员都会因为这个优先制作好的 OpenAPI 规范文档达成共识,每个人都明确的知道自己需要开发的目标是什么,避免出现实际开发代码与目标偏离的悲剧;

  • 可以通过搭建一个该接口的模拟服务器,来模拟 ChatGPT 在调用之后的结果,进行调试,了解实际效果。而非等万事具备之后再来看开发效果是否符合预期;

  • Q&A 工作可以与代码开发工作同步开始,边进行代码开发边编写测试用例,加快你的插件发布与迭代节奏。


以上就是对于 ChatGPT 插件、OpenAPI、API First 的简单介绍,希望这篇文章能够帮助到你更加高效的开发出你的 ChatGPT 插件。


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 输入url到页面加载都发生了什么事情?这是一道软件测试面试题,且相关知识其实还有多种问法:Question 1请讲一下tcp三次握手OK等你把这个记好了,下次面试:Question 2 tcp和http有什么区别??Question 3 http和https区别?Question 4 http请求方法?Question 5常见的返回状态码有哪些?都是什么含义?。。。一开始我也只是应付面试,去了解这些问题,但是发现自己并不能很好的理解。而在平时测试中需要定位前后端bug以及做接口测试都需要你对这些知识的了解。所以我用这个问题梳理了一下这些知识,加深自己理解,希望也对你有帮助。输入url到页面加载...
            1 0 2465
            分享
          • 读者提问: 『阿常你好,在线视频转 Gif 工具有推荐的不 ?』 阿常回答: 这 4款在线视频转 GIF 工具,简单好用,快来试一试! 蜜蜂剪辑-在线视频转换成 GifImg2Go-在线将视频转换为动画 GifACONVERT-在线将 MP4 转换为 GifCONVERTIO-在线将视频转换为 Gif 1、蜜蜂剪辑-在线视频转换成 Gif 操作步骤:添加视频 → 选段截取 → 开始转换 → 保存下载(支持MP4、AVI、MOV、WEBM 等多种主流格式视频导入)  地址:https:/...
            0 0 1496
            分享
          • 数据分析是从数据中提取有价值信息的过程,过程中需要对数据进行各种处理和归类,只有掌握了正确的数据分类方法和数据处理模式,才能起到事半功倍的效果,以下是数据分析员必备的9种数据分析思维模式:1. 分类分类是一种基本的数据分析方式,数据根据其特点,可将数据对象划分为不同的部分和类型,再进一步分析,能够进一步挖掘事物的本质。2. 回归回归是一种运用广泛的统计分析方法,可以通过规定因变量和自变量来确定变量之间的因果关系,建立回归模型,并根据实测数据来求解模型的各参数,然后评价回归模型是否能够很好的拟合实测数据,如果能够很好的拟合,则可以根据自变量作进一步预测。3. 聚类聚类是根据数据的内在性质将数据分...
            12 12 1223
            分享
          •   前言  最近双11活动,发现阿里云有服务器活动,就买了一个,今天主要给大家介绍下,如何通过通过客户端进行连接linux服务器后,进行简单的操作。  配置服务器信息  打开浏览器登录到阿里云服务器页面上,找到个人服务器实例页面,这里如果购买完服务器的小伙伴就会出现自己的服务器列表。  重置服务器密码  点击服务器列表名称进入服务器基本信息页面中,点击重置密码,进入到服务器重置密码页面中,在新密码中输入对应的密码,登录名输入root。  修改服务器名称  继续在服务器基本信息页面中,点击实例名称后的重命名进行修改服务器名称内容,修改完成后点击确认按钮。  登录服务器  通过上面操作进行配置完服...
            0 0 715
            分享
          • 跟一位朋友聊侃职业发展,她以前也是IT圈的妹子,后来华丽转行。她知道我做过很长时间的测试,而且做的还不错。大概她是看到了我日常行事风格里也表现出了很强的测试思维—找问题,解决问题,追求完美,但似乎又不相信有什么事情是完美的。她跟我说:“测试我也做过一段时间的,现在觉得,就算有一天我拖着棍子去要饭,我也不会再回头去做测试!”因为她忍受不了这种以找bug为目标的工作。 我被她这句话伤害到了,尽管她一再表示,她绝对没有贬低测试这个行当的意思。   其实我当下的主要工作已经不是做测试了,但是项目偶尔缺人的时候,还是会被拉去帮忙。就在...
            2 5 2959
            分享
      • 51testing软件测试圈微信