5 分钟快速在本地创建你的 ChatGPT Plugin
共 4697字,需浏览 10分钟
·
2023-05-15 20:24
下面是一个很简单的示范,使用官方的一个小示例,5 分钟在本地运行起一个 ChatGPT 插件,并在线上 chat.openai.com 页面中马上使用它。但别人是无法使用的,因为这仅是在本地开发模式下。
准备,申请插件开发权限
进行如下学习研究,你需要有一个 GPT 帐号,并且已经开通了 Plugin 试用权限。Plugin 权限默认是非开通的,如果还没有申请,可以访问这个地址:
https://openai.com/waitlist/plugins
成功开通后,会收到来自 OpenAI 的一封邮件:
image-1在有了插件开发权限以后,下面看如何在 5 分钟内在本地创建和调试 ChatGPT Plugin。
5 分钟开发本地插件
第一步,直接克隆这个仓库到本地:
https://github.com/openai/plugins-quickstart
这是一个运行在内存里的待办事项程序,是 Python 编写的。
第二步,安装依赖包与本地启动程序
一共需要在本地执行两条指令:
Pip3 install -r requirements.txt # 安装依赖
Python3 main.py # 启动程序
启动后,程序已经在 localhost:5003 处启动了,但现在还不能直接在浏览器里访问这个地址,因为程序里没有对根地址(/
)进行处理。访问 localhost:5003/todos/user 是可以的,这个接口地址存在。
第三步,在线上添加本地插件
在获得插件的体验与开发权限之后,打开 chat.openai.com,会看到在主页模式下拉列表中,多了一项“Plugins ALAPHA”:
image-2选择该插件模式,继续选择浏览与安装插件,在弹出面板的底部,选择“Develop your own plugin”,即在本地开发插件:
image-3由于这些界面在获得 Plugin 权限之前根本看不到,所以我尽量把截图做得详细些。
在本地插件添加面板中,输入 localhost:5003,这是我们本地的 Python Web 程序的访问地址。线上程序本来一般是不能访问本地地址的,因为远程服务器无法对内网地址进行寻址,在这里 ChatGPT 应该是在前端页面中,使用 JS 脚本访问的本地接口服务。
image-4这一步是 ChatGPT 拉取本地插件的清单描述(menifest)及 OpenAPI 接口规范描述。menifest 文件用于告诉 ChatGPT,本插件可以干什么;而 OpenAPI 规范则告诉 ChatGPT,如何调用本插件提供的接口能力,关于这部分的详细内容,可以查看之前的推文(ChatGPT 发布对插件的支持,告诉 ChatGPT 你可以提供什么在线服务,由它作为“前端”向用户提供)介绍。
只要前面的步骤没有问题,这一步都会成功。
image-5如何使用本地插件?
在添加了本地插件以后,下面看如何使用。首先在页面启用,打开一个新会话,模式选择 Plugins ALPHA,插件选择刚刚添加的 TODO:
image-6image-7在这里显示的图标,是在 manifest 文件中,通过配置 logo_url 字段控制的。
下面是如何使用的指令示例。
指令:我的待办事项清单上有什么?
这条指令是我猜的,因为插件是待办事项程序,所以这样问它。
image-8在返回结果中可以看到,它先是调用了本地插件接口,查询了待办事项,然后才返回了对话内容。如果同时留意本地 Python 程序的终端窗口,也会发现/todos/user 接口被调用了。
ChatGPT 会在回复中带上接口调用的结果,这是 ChatGPT 的规则,这一点在插件文档(https://platform.openai.com/docs/plugins/introduction)中有描述。
指令:请告诉我待办事项的用法
我不清楚这个插件具体怎么使用,都有哪些功能,所以我这样问它。
下面是它的回答:
您可以使用待办事项清单来管理您的日常任务和计划。以下是一些常见的用法:
添加待办事项:您可以告诉我您想要添加的待办事项内容,我会将其添加到您的待办事项清单中。例如:“添加待办事项:购买牛奶。”
查看待办事项清单:您可以询问我您的待办事项清单上有什么内容,我会列出您当前的所有待办事项。例如:“我的待办事项清单上有什么?”
删除待办事项:您可以告诉我您想要删除的待办事项的索引(序号),我会从您的待办事项清单中删除它。例如:“删除第 1 个待办事项。”
请随时告诉我您想要执行的操作,我会帮助您管理您的待办事项清单。
虽然插件清单(menifest)中的描述文字,及 OpenAPI 调用规范中的描述都是英文,但不妨碍这里返回中文。它们的意思是相同的,这是 OpenAI 强大的地方之一。
每一个不清楚如何使用的插件,都可以使用“请告诉我 xx 的用法”这样的指令询问它。
指令:
添加待办事项:给张老师回复消息
添加待办事项:查看今天的邮件列表
它在添加成功后,会回复我们消息:
image-9这里的“OK”文本,是 Python 程序中返回的。
指令:查看待办事项清单
或者“我的待办事项清单上有什么?”,ChatGPT 能够精确理解你的意图。
这里查看待办事项列表,已经有两条了:
image-10指令:删除第 2 个待办事项
第 2 个或第 2 条都可以,它知道应该删除哪一条:
image-11现在再次查看待办事项列表,发现仅剩一条了。
这篇内容非常简单,但应该足以让你在本地体验 ChatGPT 插件开发了。看一百遍,不如亲自动手动一遍;如果暂时没有权限,看一看运行效果,大概也能猜明白插件开发是怎么回事了。
现在这个插件是不需要用户验证的,如何开发一个只有付费用户才能使用的插件呢?
我们可以在插件中提供一个搜索接口,让 ChatGPT 搜索我们本地的文档库,这相当于是一个本地搜索服务,那么在这种模式下,ChatGPT 了解我们文档库中的内容吗?换言之,当我们问它某一个与文档库的知识相关的问题时,它知道结合我们的文档库进行回答吗?
- End -
小步快跑,正向反馈;面向未来,不求完美
关注我,与时间做朋友,一起成长
声明:本文纯人工编写
点赞、关注和转发,就是最好的支持
添加微信9830131,回复“读者”进编程修仙群
【资源下载】
- 回复 10000,下载《微信小游戏开发》全套书配套源码及番外篇PDF
- 回复 10001,下载 “ 零边际成本微信小程序产品开发范式”源码及PPT
- 回复 10003,下载《GPT-4技术报告》PDF