整理 | 褚杏娟、核子可乐 
“Python 终于没有存在的意义了!撒花”
当地时间 3 月 23 日,OpenAI 宣布正式上线了以安全为核心的 ChatGPT 插件系统。OpenAI 插件将 ChatGPT 连接到第三方应用程序,之后 ChatGPT 便能够与开发人员定义的 API 进行交互,从而增强 ChatGPT 的功能并允许其执行范围广泛的操作,主要包括:
  • 检索实时信息,例如体育比赛成绩、股票价格、最新消息等。
  • 检索知识库信息,例如公司文件、个人笔记等。
  • 代表用户执行操作,例如订机票、订餐等。
目前,插件系统还处于 alpha 测试期,首批参与插件创建的厂商包括 Expedia、FiscalNote、Instacart、KAYAK、Klarna、Milo、OpenTable、Shopify、Slack、Speak、Wolfram 和 Zapier。
其他使用插件的开发者可以申请进入候补名单(https://openai.com/waitlist/plugins)。OpenAI 表示,在了解更多情况后将逐步开放访问范围。
另外,OpenAI 还自己托管了两款插件,其一为网络浏览器,其二是代码解释器。OpenAI 开源了一款知识库检索插件的代码,任何开发者都可以借此托管用于增强 ChatGPT 的信息。
OpenAI 表示,现在的语言模型虽然在各类任务中都能有所表现,但结果还不尽人意。而模型提升自我的唯一途径就是其训练数据。但一个问题是,数据内容可能已经过时,而且模型往往“以偏概全”、“生搬硬套”。此外,语言模型唯一能够开箱即用的输出模式就是文本,虽然文本中包含实用说明,但要将其化为操作还需要经历额外的过程。
OpenAI 将插件比喻成语言模型的“眼睛和耳朵”,能帮助模型访问因为较新、较私人或较具体而不宜包含在训练数据内的信息。为了响应用户的明确要求,插件还能帮助语言模型切实执行安全、受控的操作,从而提高整个系统的实用性。
有网友表示,“OpenAl 设计的插件系统是我这辈子见过的最疯狂的系统。如果你要给它写插件,你并不是去写这个插件的程序,而是写一个关于插件的描述,只需用自然语言描述,然后 GPT 来帮你生成这个插件。”
还 有网友 直接将 OpenAI 与苹果对比,并称,OpenAI 为计算的下一个时代奠定了基础:
  • Apple 之后是 OpenAI
  • iPhone 之后是  GPT-4
  • iOS 之后是 ChatGPT
  • App Store 之后是  Plugins
ChatGPT 插件使用示例
插件的表现如何
我们先看下 OpenAI 自己托管的两个插件表现如何。
浏览插件
一套知道该何时及如何浏览互联网的实验性模型。
以往,ChatGPT 会礼貌地指出,其训练数据中不具备充足的信息,因此无法回答某些特定问题。但现在可以给出答案和相关链接了。
在 OpenAI 展示的示例中,ChatGPT 会检索关于最新一届奥斯卡颁奖典礼的信息,再用其最擅长的“写诗”能力加以改编。
以下是 ChatGPT 的回答,它给出了一系列的搜索结果,用户直接点击就可查看相关的信息来源。
除了为最终用户提供显著的实用性助益之外,OpenAI 认为,这种对语言和聊天模型全面可解释性的研究,也将在可扩展性和对齐能力方面带来令人兴奋的前景。
代码解释器
一套可使用 Python 处理上传和下载的实验性 ChatGPT 模型。
OpenAI 为模型开发了一个可在沙盒、防火墙执行环境中工作的 Python 解释器,外加一些临时磁盘空间。解释器插件运行的代码会在一个持久会话中进行评估,且该会话在聊天期间始终有效(具有上限超时),后续调用可以相互构建。此外,还支持将文件上传至当前对话工作区,并下载工作结果。
比如,当问到:一块砖的重量是这块砖自身 30% 的重量与 5 个 GPU 的重量之和,已知每吨重量包含了 100 块砖和 200 个 GPU,那么一块砖的重量是多少?
ChatGPT 给出的答案是:一块砖的重量是 7.8125 千克。
执行逻辑计算的代码解释器插件
从早期用户研究来看,OpenAI 确定了代码解释器的几种重要用途:
  • 解决定量和定性类数学问题
  • 进行数据分析和可视化
  • 将文件转换为不同格式
OpenAI 表示,希望这套模型能够运用自己的编程技能,为计算机中的基础功能提供更自然的使用界面。刚刚上手的初级程序员可以在它的帮助下大大提高工作效率,同时也希望能让更多受众接触并掌握编程技能。
对于该插件有网友评论称:“Python 终于没有存在的意义了!撒花”
第三方插件
一套知道该何时及如何使用插件的实验性模型。
ChatGPT 中的第三方插件
第三方插件由 manifest 文件做描述,其中包含对插件功能的机器可读描述和调用方法,同时提供面向用户的说明文档。
待办事项管理插件的 manifest 文件示例
插件的创建步骤如下:
  1. 用户使用希望语言模型调用的端点来构建 API(可以是新的 API、现有 API 或专为大语言模型设计的现有 API 打包器)。
  2. 为自己的 API 创建 OpenAPI 记录规范,同时创建一个指向 OpenAPI 规范并包含插件特定元数据的 manifest 文件。
在 chat.openai.com 上开始对话时,用户可以指定想要启用的第三方插件。关于已启用插件的文档,将作为对话上下文的一部分被提交给语言模型,让模型能够根据需求调用适当的插件 API 以实现用户意图。目前的插件主要考虑对后端 API 的调用,OpenAI 也在探索如何让 API 调用客户端 API。
开源检索插件
开源检索插件让 ChatGPT 能够访问个人或组织信息源(经过许可)。它允许用户通过提问或用自然语言表达需求,从数据源处获取关联性最强的文档片段,包括文件、笔记、电子邮件或公共文档。
作为开源加自托管方案,开发人员可以部署自己的插件版本并在 ChatGPT 上注册。检索插件利用 OpenAI 嵌入,允许开发人员选择矢量数据库(Milvus、Pinecone、Qdrant、Redis、Weaviate 或 Zilliz)来索引和搜索文档。信息源可使用 webhooks 与数据库保持同步。
要体验这项功能,可以访问检索插件代码仓库:
https://github.com/openai/chatgpt-retrieval-plugin
真安全还是说说而已?
安全成为此次发布被多次提及的关键词。
对于浏览插件,由于 ChatGPT 使用 Bing 搜索 API 从 Web 检索内容,因此 OpenAI 也继承了微软在这项工作中的基本原则:1)保证信息来源可靠且真实;2)通过“安全模式”防止检索有问题的内容。这款插件在独立服务中运行,能够保证 ChatGPT 的浏览活动与基础设施内的其余部分相互分离。
为了尊重内容创作者并遵守网络规范,OpenAI 浏览器插件使用的用户代理令牌为 ChatGPT-User,并通过配置强调重新所访问网站的 robots.txt 文件。这偶尔会引发“click failed”问题,表明该插件正遵守目标网站的指示、避免执行抓取操作。此用户代理仅用于代表 ChatGPT 用户执行直接操作,不会以任何自动方式主动抓取网络内容。OpenAI 还发布了 IP 出口范围,并采取限速措施以避免向目标网站发出过多流量。
OpenAI 的浏览插件会显示访问过的网站,并在 ChatGPT 的回复中引用其来源。由此实现的透明度层可帮助用户验证模型响应的准确性,并回馈内容创作者。
对于代码解释器,OpenAI 表示之所以要将模型接入代码解释器,主要是想对执行过程做适当的沙盒处理,以确保 AI 生成的代码不会在现实场景中产生意外的副作用。OpenAI 称在安全环境中执行代码,并通过严格的网络控制来防止外部互联网访问到执行代码。此外,还对每个会话设置了资源限制。
而检索插件允许 ChatGPT 搜索内容矢量数据库,并将最终结果添加至 ChatGPT 会话当中。这意味着它不会产生任何外部影响,主要风险只涉及数据授权和隐私。开发人员应确保只将有权使用的内容添加至检索插件,进而在用户的 ChatGPT 会话中共享。
不过,网友对于 OpenAPI 的“安全宣传”似乎不太买单。
网友 “mk_stjames” 表示,“我对此有一些奇怪的感觉。从‘傻瓜,当然它没有以任何方式连接到互联网!’到现在都没有一年的时间,变成‘好的...... 所以我们连接到互联网......’”
首先是您的 API 调用,然后是您的 chatgpt-jailbreak-turns-into-a-bank-DDOS-attack,然后是“今天它以某种方式执行了 Python 脚本的数十万线程,该脚本在上午 8 点 31 分在纽约证交所导致自 1987 年以来最大的单日跌幅……”
您可以继续讨论个人责任,所有... 用户仍然是用户,对吧。但这开始感觉像是给一群黑猩猩上了膛的手枪。
OpenAI 一直在谈论“安全”,但“安全”的全部意思是“好吧,我们不允许任何人允许它拿胖子或残疾人开玩笑,所以我们很好,对吧?!”
当然,也有网友表示:为什么要对安全发牢骚呢?随它去吧!“如果你访问他们的 API,这基本上就是他们在做的事情,因为是否使用他们的审核端点取决于你。”不过这位网友也表示:“他们的‘人工智能安全’只是嘴上说说。在前几天,他们有一个 bug,你可以看到其他用户的聊天历史!”
参考链接:
https://openai.com/blog/chatgpt-plugins
https://news.ycombinator.com/item?id=35277677
你也「在看」吗? 👇
继续阅读
阅读原文