OpenAI Plugins & Function Calling
接口(Interface)
两种常见接口:
- 人机交互接口,User Interface,简称 UI
- 应用程序编程接口,Application Programming Interface,简称 API
接口能「通」的关键,是两边都要遵守约定。
- 人要按照 UI 的设计来操作。UI 的设计要符合人的习惯
- 程序要按照 API 的设计来调用。API 的设计要符合程序惯例
我们经历过很多调接口的痛苦经历,比如:
- 文档坑
- 大小写坑
- 参数顺序坑
- 参数类型坑 ……
UI
接口
- 命令行,Command Line Interface,简称 CLI(DOS、Unix/Linux shell, Windows Power Shell)。
- 图形界面,Graphical User Interface,简称 GUI(Windows、MacOS、iOS、Android)。
- 语言界面,Conversational User Interface,简称 CUI,或 Natural-Language User Interface,简称 LUI。
- 脑机接口,Brain–Computer Interface,简称 BCI。
UI 进化的趋势是:越来越适应人的习惯,越来越自然
API
接口
- 从本地到远程,从同步到异步,媒介发生很多变化,但本质一直没变:程序员的约定。
- 自然语言接口,Natural-Language Interface,简称 NLI。
自然语言连接一切(Natural Language Interface)
NLI 是 《以 ChatGPT 为代表的「大模型」会是多大的技术革命?》 一文中提出的概念。
用户操作习惯的迁移,会逼所有软件,都得提供「自然语言界面(Natural Language Interface,简称 NLI)」。这是一个新词,指的是以自然语言为输入的接口。
不仅用户界面要 NLI,API 也要 NLI 化。这是因为用户发出的宏观指令,往往不会是一个独立软件能解决的,它需要很多软件、设备的配合。
一种实现思路是,入口 AI(比如 Siri、小爱同学,机器人管家)非常强大,能充分了解所有软件和设备的能力,且能准确地把用户任务拆解和分发下去。这对入口 AI 的要求非常高。
另一种实现思路是,入口 AI 收到自然语言指令,把指令通过 NLI 广播出去(也可以基于某些规则做有选择的广播,保护用户隐私),由各个软件自主决策接不接这个指令,接了要怎么做,该和谁配合。
当 NLI 成为事实标准,那么互联网上软件、服务的互通性会大幅提升,不再受各种协议、接口的限制。 最自然的接口,就是自然语言接口。
以前因为计算机处理不对自然语言,所以有了那么多编程语言,那么多接口,那么多协议,那么多界面风格。而且,它们每一次进化,都是为了「更自然」。现在,终极的自然,到来了。
ChatGPT 让我们体验到 LUI 的美好。而 Plugins 和 Function Calling,让我们能直接进入 NLI 的过程。
Plugins
学习 plugin 之前,先要了解 ChatGPT 及所有大模型都有两大缺陷:
- 没有最新信息。大模型的训练周期很长,且更新一次耗资巨大,所以它的知识都是过去的。GPT-3.5 和 GPT-4 的知识截至 2021 年 9 月。
- 没有「真逻辑」。它表现出的逻辑、推理,是训练文本的统计规律,而不是真正的逻辑。
比如把 100 以内所有加法算式都训练给大模型,它就能回答 100 以内的加法算式。但如果问它更大数字的加法算式,它就不一定答对了。 因为它并不懂「加法」,只是记住了 100 以内的加法算式的统计规律。它是用字面意义来做数学。
比如 Plugin 能一定程度解决这两个问题:
- 用天气插件查询天气
- 用 Wolfram Alpha 插件做数学题
如果你对 Wolfarm Alpha 做数学的能力感到惊讶,想了解它和 ChatGPT 原理的不同,推荐阅读这篇文章:《Wolfram|Alpha as the Way to Bring Computational Knowledge Superpowers to ChatGPT》。
Plugin 的原理
可能是史上最容易开发的 plugin。只需要定义两个文件:
yourdomain.com/.well-known/ai-plugin.json
,描述插件的基本信息openai.yaml
,描述插件的 API(Swagger 生成的文档)
而 OpenAI 那边,更简单,没有任何人和你对接。是 AI 和你对接!AI 阅读上面两个文件,就知道该怎么调用你了。
description
的内容非常重要,决定了 ChatGPT 会不会调用你的插件,调用得是否正确。
Plugins
的市场表现
时间线:
- 3 月 24 日发布, 提供 11 个插件,可以申请加入 waitlist 获得使用权。
- 5 月 15 日开始向 Plus 用户全量开放插件和 Browsing, 插件数 70 多个。
- 7 月 5 日因安全原因,关闭 Browsing(用户可通过此功能访问付费页面)。
- 7 月 11 日开始全量开放 Code Interpreter。插件数已超 400。
媒体将其类比为 App Store,获得鼓吹。
6 月 7 日(全面放开后三星期)一篇应 OpenAI 要求而被删除的帖子中透露,在一个闭门会中说: