☀️ 前言
- 最近人工智能领域高潮迭起,人工智能聊天工具
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
收到了很多用户和企业的诉求,希望开放插件系统,大家都想把自己的系统接入到这一波巨大的流量中。 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
老旧数据库所做不到的。 - 不过当然需要注意的一点是,
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-plugin的
openapi.yaml
我们可以看到,这其实就是一个标准的OpenAPI
规范文件。
- 那么说明每个插件只需要提供一份标准的、接口描述准确的
OpenAPI
规范文件即可让ChatGPT
了解你的API
的入参出参并加以调用。 - 如何正确规范的写好一份
OpenAPI
描述文件,我们可以参考OpenAPI 规范 (中文版)。 - 当然啦,现在的
OpenAPI
文件都可以自动生成了,你可以使用Apifox
利用可视化的界面来编写你的API
文档,并且加以自然语言的接口描述信息,选择导出OpenAPI
格式就可以得到一份非常标准的OpenAPI
格式描述文件,大大提升你的效率。
现在我们知道了❗️
- 搞懂了一个插件是如何开发的,这么看下来就很清晰了:
- 用户使用自然语言向
ChatGPT
提问。 ChatGPT
根据用户的需求去查找符合描述的插件系统。- 根据插件系统的
API
描述文档来选择符合当前上下文的API
进行调用。 - 得到结果后会将它继续
「喂」
给上下文,由此判断需不需要进行使用下一个插件。 - 最终会得到一个满足用户预期的自然语言回答,包括图表、代码等信息。
- 这样一来,就完成了该系统神奇的所有部分。
🍃 着眼未来
- 放眼未来我们可能不需要再去使用什么
APP
,不再去学习怎么使用APP
,我们可能只需要学习如何和AI
进行交流,这是一件多么可怕的事情。 - 你会发现你用自然语言跟它对话它会用自然语言回复你,并且!帮你做完了这些事。
- 以后就不是
AI
辅助你做什么事情,辅助你生成图片,辅助你生成PPT
,而是直接帮你完成了。 - 当你想开发一个网站,只用说一句:
「我想要一个xxx网站」
它就会帮你做完,当你说帮忙部署一下,他会自己根据你平时的习惯购买服务器-->部署上线 。 - 我不敢奢望这些事情能不能实现,但是随着新时代的潮流,我深刻的感觉到了希望,或许,我说或许,真的我们每个人都可以拥有一个自己的贾维斯。
- 共勉
👋 写在最后
- 如果您觉得这篇文章有帮助到您的的话不妨🍉🍉关注+点赞+收藏+评论+转发🍉🍉支持一下哟~~😛您的支持就是我更新的最大动力。