草庐IT

GPT 会上网了,ChatGPT 插件的原理揭秘

Apifox. 2024-02-07 原文

作者:快跑阿小卢

☀️ 前言

最近人工智能领域高潮迭起,人工智能聊天工具 ChatGPT 的大风刮到了世界各地,风靡全球,说到神奇的 ChatGPT 大家最想吐槽的是什么🤔?

  • 信息落后?
  • 胡说八道?
  • 不会算数?
  • 我用我自己的 id 去问 ChatGPT ,大家可以看到他说是能说,编也是真能编啊👍
  • 更可怕的是,当我询问他是从哪些网站来获取这些信息时,他毫不犹豫的给我发了几个网址,不出所料,全部不是 404 就是 毫无相关的文章🤦♂️
  • 这是因为 ChatGPT 所有信息都停留在 2021  9 月之前,这是数据训练的时间节点,因此很多知识内容也停留在这个时刻,当用户提到相关问题的时候他却少了相关的资料而无法回答甚至会胡编乱造。
  • 但是在几天前,OpenAI 发布了 ChatGPT 的插件系统。网上大家都说如果把「 OpenAI 比作 苹果 ,那「GPT-4 就是 iPhone  ChatGPT 则是 iOS ,而这次发布的「 Plugins 就是 App Store 」了。
  • 插件系统的出现,说的通俗一点就像是给配了一个DLC,让 ChatGPT 从一个单机版 AI 升级为联网版 AI,他能上网了,并且对实时信息的检索大大补全加强,让 ChatGPT 功能再度提升一整个数量级。

🌋 ChatGPT plugins

  • 自从 ChatGPT 上线以来,OpenAI 收到了很多用户和企业的诉求,希望开放插件系统,大家都想把自己的系统接入到这一波巨大的流量中。
  • 知识扩展:API First 再先一步,OpenAPI 定义被 openAI 定为 ChatGPT 插件标准
  • OpenAI 自身还托管了两个插件,一个网络浏览器和一个代码解释器。还开源了知识库检索插件的代码,任何开发人员都可以自行托管这些插件,并提供他们希望用来增强 ChatGPT 的信息。
  • 我们简单来看看官方使用这些插件的示例。

Browsing

An experimental model that knows when and how to browse the internet

  • 上面我也说了,ChatGPT 最让人诟病的一点是他的资料过于落后跟不上时代,当然官方也是知道这件事情的,所以他们自己的托管的「Browsing plugin」可以说是诚意满满了。
  • Browsing 插件可以提供额外的信息来源,使得 ChatGPT 可以回答更加详细和准确的问题。例如,当用户询问某个特定的商品信息时,Browsing插件可以在互联网上搜索并提供更多的产品信息和评价。这可以提高 ChatGPT 的回答质量,从而增强用户体验。
  • 再比如官方示例中,你问它「今年奥斯卡获奖电影的票房和最近上映的电影相比,谁高谁低?」
  • 它会利用「New Bing」的 API,在互联网上搜索问题的相关信息,然后给出具体答案,最主要的并不是这个答案,而是他能实时溯源!我们查资料不就是想要拿到这些官方咨询和信息吗,这个是原来的 ChatGPT 老旧数据库所做不到的。更多有趣玩法可以看:ChatGPT 插件应用场景有哪些?
  • 不过当然需要注意的一点是,OpenAI 从安全角度出发,做的一些限制,这个插件只支持 GET 请求,不支持 POST,也就是说,它只能用于获取数据,不能用于发送,例如表单提交,这些操作具有更大的安全性安全性问题,但是完全不影响我们日常查询资料的使用。

Code interpreter

An experimental ChatGPT model that can use Python, handle uploads and downloads

  • 「Code Interpreter」这款插件可以使 ChatGPT 解释和执行代码。通过这个插件,用户可以向 ChatGPT 发送计算机代码,并且 ChatGPT 会尝试理解并执行这些代码,从而返回计算结果。这个插件可以让用户在 ChatGPT 上编程并执行一些简单的计算任务,例如进行数学计算、字符串操作等。
  • 这是一款非常有用的插件,可以为用户提供更加强大的计算能力和更丰富的编程体验。通过这个插件,用户可以使用自然语言与 ChatGPT 交互,并且可以使用 ChatGPT 执行一些简单的计算任务,从而减轻用户自己编写代码的工作量。
  • 在用户进行对话交流时,代码会保存在持续会话中,交流不中断的情况下,可随时调用。

据官方统计,在目前该插件有几个比较好用的功能:

  • 解决定量定性的数学问题
  • 进行数据分析可视化
  • 快速转换文件格式
  • 当然,随着用户量的增多,这款插件更多的潜能会被激发出来,这意味着我们再也不用担心 ChatGPT 为了回答而回答,给出你一个错误甚至离谱的答案了。

❓ 它是如何运作的

  • 看了这么多官方示例和第三方插件示例,让我不禁好奇,它(插件系统)到底是怎么运作的呢?

🏃🏻 使用路径

从官方的示例我们不难看出,我们使用 ChatGPT 插件的路径大概是这样的:

  • 用户从「Plugin store」安装插件。
  • 发送自然语言给 ChatGPT。
  • ChatGPT 根据你的对话提问进行选择需要用到的插件。
  • 根据插件给出响应信息,如果有需要还会继续寻找插件使用。
  • 最终给出一个你想期望的结果。
  • 在这个整个过程中,用户通过自然语言向 ChatGPT 发送请求,ChatGPT 会先使用预训练的语言模型对请求进行理解和编码。接着,ChatGPT 会将请求传递给相应的插件进行处理。
  • 插件可以支持不同的自然语言处理功能,例如对话问答代码解释文本摘要等等。
  • 插件处理请求的过程中,涉及到自然语言处理机器学习知识图谱编程语言解析等多个方面的技术。
  • 最终,插件会返回相应的自然语言响应或计算结果给用户。

🤔 它是如何选择插件的

  • 要想了解一个这个插件系统如何运行,最好的方法就是看看这些插件都是怎么生成出来的。
  • 官方给我们演示了一个用 ChatGPT 生成 ChatGPT 插件的示例,但是这些不是我们关注的点,我只需要关心产物即可。
  • 正好官方把 Retrieval 插件的代码开源了,我们可以根据官方示例与这个仓库的代码查个所以然。

清单文件🧾

  • 我们可以看到示例首先会生成一个manifest清单文件,并将该文件托管在yourdomain.com/.well-known/ai-plugin.json
  • 其中包含了其中包括插件功能的机器可读描述以及如何调用它们,以及面向用户的文档。

其中这个json文件有两个字段我们需要特别注意:

  • description_for_model:给 ChatGPT 看的描述。
  • api:存放了你可提供给 ChatGPT 调用 API 的 OpenAPI 规范文件。

OpenAPI 规范文件📃

  • OpenAPI 规范文件是一种机器可读的格式,用于描述 RESTful API 的设计和功能。它使用 YAML 或 JSON 格式的文档,包括 API 的所有端点、操作和参数,并提供了对每个端点和操作的详细说明。
  • 目的是提供一个标准的方式来描述和交互 RESTful API,以促进不同技术平台之间的互操作性和集成。
  • 查阅chatgpt-retrieval-pluginopenapi.yaml我们可以看到,这其实就是一个标准的 OpenAPI 规范文件。
  • 那么说明每个插件只需要提供一份标准的接口描述准确的 OpenAPI 规范文件即可让 ChatGPT了解你的 API 的入参出参并加以调用。
  • 如何正确规范的写好一份 OpenAPI 描述文件,我们可以参考 OpenAPI 规范 (中文版)
  • 当然啦,现在的 OpenAPI 文件都可以自动生成了,你可以使用 Apifox 利用可视化的界面来编写你的 API 文档,并且加以自然语言的接口描述信息,选择导出 OpenAPI 格式就可以得到一份非常标准的 OpenAPI 格式描述文件,大大提升你的效率。

现在我们知道了 ❗️

搞懂了一个插件是如何开发的,这么看下来就很清晰了:

  • 用户使用自然语言向 ChatGPT 提问。
  • ChatGPT 根据用户的需求去查找符合描述的插件系统。
  • 根据插件系统的 API 描述文档来选择符合当前上下文的 API 进行调用。
  • 得到结果后会将它继续「喂」给上下文,由此判断需不需要进行使用下一个插件。
  • 最终会得到一个满足用户预期的自然语言回答,包括图表、代码等信息。
  • 这样一来,就完成了该系统神奇的所有部分。

🍃 着眼未来

  • 放眼未来我们可能不需要再去使用什么 APP,不再去学习怎么使用 APP,我们可能只需要学习如何和 AI 进行交流,这是一件多么可怕的事情。
  • 你会发现你用自然语言跟它对话它会用自然语言回复你,并且!帮你做完了这些事
  • 以后就不是 AI 辅助你做什么事情,辅助你生成图片辅助你生成 PPT,而是直接帮你完成了。
  • 当你想开发一个网站,只用说一句:「我想要一个xxx网站」它就会帮你做完,当你说帮忙部署一下,他会自己根据你平时的习惯购买服务器-->部署上线 。
  • 我不敢奢望这些事情能不能实现,但是随着新时代的潮流,我深刻的感觉到了希望,或许,我说或许,真的我们每个人都可以拥有一个自己的贾维斯
  • 共勉!

有关GPT 会上网了,ChatGPT 插件的原理揭秘的更多相关文章

  1. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  2. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  3. 亚特兰蒂斯的回声(中文版): chatGPT 的杰作 - 2

    英文版英文链接关注公众号在“亚特兰蒂斯的回声”中踏上一段难忘的冒险之旅,深入未知的海洋深处。足智多谋的考古学家AriaSeaborne偶然发现了一件古代神器,揭示了一张通往失落之城亚特兰蒂斯的隐藏地图。在她神秘的导师内森·兰登教授的指导和勇敢的冒险家亚历克斯·默瑟的帮助下,阿丽亚开始了一段危险的旅程,以揭开这座传说中城市的真相。他们的冒险之旅带领他们穿越险恶的大海、神秘的岛屿和充满陷阱和谜语的致命迷宫。随着Aria潜在的魔法能力的觉醒,她被睿智勇敢的QueenNeria的幻象所指引,她让她为即将到来的挑战做好准备。三人组揭开亚特兰蒂斯令人惊叹的隐藏文明,并了解到邪恶的巫师马拉卡勋爵试图利用其古

  4. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  5. ruby - vagrant 从 github 安装插件 - 2

    我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com

  6. IDEA使用LeetCode插件 - 2

    前言我们习惯用idea编写、调试代码,在LeetCode上刷题时,如果能够在IDEA编写代码,并且做好代码管理,是一件事半功倍的事情。对于后续复习题目,做笔记也会非常便利。本文目的在于介绍LeetCodeEditor的使用,以及配置工具类,最终目录结构如下:note:放置笔记src:放置代码leetcode.editor.cn:插件LeetCodeEditor自动生成utils:自定义的工具包,可用于自动化输入测试用例,定义题目需要的类(结构体)out:运行测试时自动生成LeetCodeEditorGitHub:https://github.com/shuzijun/leetcode-edit

  7. 智能客服 | 浅谈人工智能聊天机器人ChatGPT - 2

    2022年底,OpenAI的预训练模型ChatGPT给人工智能领域的爱好者和研究人员留下了深刻的印象和启发,他展现的惊人能力将人工智能的研究和应用热度推向高潮,网上也充斥着和ChatGPT的各种聊天,他可以作诗、写小说、写代码、讨论疫情问题等。下面就是一些他的神回复:人命关天的坑: 写歌,留给词作者的机会不多了。。。 回答人类怎么样面对人工智能: 什么是ChatGPT?借用网上的一段介绍,ChatGPT是由人工智能研究实验室OpenAI在2022年11月30日发布的全新聊天机器人模型,一款人工智能技术驱动的自然语言处理工具。它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动

  8. 【ChatGPT】ChatGPT 的 N 种用法 - 2

    目录ChatGPT简介技术原理应用未来发展ChatGPT的10 种用法ChatGPT简介ChatGPT是一种基于深度学习的大型语言模型,由OpenAI公司开发。技术原理GPT是GenerativePre-trainedTransformer的缩写,意为生成式预训练变压器。它的技术原理是使用了一个基于注意力机制的变压器(Trans

  9. regex - Ruby 是否有类似于 Perl 6 语法的插件? - 2

    多年来,Perl一直是我首选的编程语言工具之一。Perl6语法看起来像是一个很棒的语言特性。我想知道是否有人开始为Ruby做这样的事情。 最佳答案 如果您想在Ruby中使用实际的Perl6语法,最好的选择是Cardinal,Parrot上的ruby​​编译器。它目前尚未完成并且非常缓慢,但我非常希望它最终成为一个可行的ruby​​实现。它目前大部分处于非事件状态,等待Parrot中的一些基础架构更改以支持改进的解析速度和其他功能。 关于regex-Ruby是否有类似于Perl6语法的插件

  10. ruby-on-rails - 你为 Rails 推荐哪个状态机插件? - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我正在为Rails3/ActiveRecord项目寻找一个相对简单的状态机插件。我做了一些研究并提出了以下插件:转换:https://github.com/qoobaa/transitions从旧的ActiveRecord状态机库中提取

随机推荐