5 分钟快速在本地创建你的 ChatGPT Plugin

169448949

共 4697字,需浏览 10分钟

 ·

2023-05-15 20:24

下面是一个很简单的示范,使用官方的一个小示例,5 分钟在本地运行起一个 ChatGPT 插件,并在线上 chat.openai.com 页面中马上使用它。但别人是无法使用的,因为这仅是在本地开发模式下。

准备,申请插件开发权限

进行如下学习研究,你需要有一个 GPT 帐号,并且已经开通了 Plugin 试用权限。Plugin 权限默认是非开通的,如果还没有申请,可以访问这个地址:

https://openai.com/waitlist/plugins

成功开通后,会收到来自 OpenAI 的一封邮件:

0684e4334b00968d90fa022cc058b8d4.webpimage-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”:

360bacf8315ce6bd7b0fa7faca16a2d4.webpimage-2

选择该插件模式,继续选择浏览与安装插件,在弹出面板的底部,选择“Develop your own plugin”,即在本地开发插件:

462905107bb1767c2e9685aab6f2be1c.webpimage-3

由于这些界面在获得 Plugin 权限之前根本看不到,所以我尽量把截图做得详细些。

在本地插件添加面板中,输入 localhost:5003,这是我们本地的 Python Web 程序的访问地址。线上程序本来一般是不能访问本地地址的,因为远程服务器无法对内网地址进行寻址,在这里 ChatGPT 应该是在前端页面中,使用 JS 脚本访问的本地接口服务。

65959ffba5a1da37bed5ebc2c9740cd7.webpimage-4

这一步是 ChatGPT 拉取本地插件的清单描述(menifest)及 OpenAPI 接口规范描述。menifest 文件用于告诉 ChatGPT,本插件可以干什么;而 OpenAPI 规范则告诉 ChatGPT,如何调用本插件提供的接口能力,关于这部分的详细内容,可以查看之前的推文(ChatGPT 发布对插件的支持,告诉 ChatGPT 你可以提供什么在线服务,由它作为“前端”向用户提供)介绍。

只要前面的步骤没有问题,这一步都会成功。

4d8f4df821440ce8d0bb65042e6cb409.webpimage-5

如何使用本地插件?

在添加了本地插件以后,下面看如何使用。首先在页面启用,打开一个新会话,模式选择 Plugins ALPHA,插件选择刚刚添加的 TODO:

ad7e0505ccc15b3f15becb5280680cce.webpimage-6a27486e6f1994a709f43ca0045f410fd.webpimage-7

在这里显示的图标,是在 manifest 文件中,通过配置 logo_url 字段控制的。

下面是如何使用的指令示例。

指令:我的待办事项清单上有什么?

这条指令是我猜的,因为插件是待办事项程序,所以这样问它。

4b5c1bb5fed6a87684b2fd7494be3e1b.webpimage-8

在返回结果中可以看到,它先是调用了本地插件接口,查询了待办事项,然后才返回了对话内容。如果同时留意本地 Python 程序的终端窗口,也会发现/todos/user 接口被调用了。

ChatGPT 会在回复中带上接口调用的结果,这是 ChatGPT 的规则,这一点在插件文档(https://platform.openai.com/docs/plugins/introduction)中有描述。

指令:请告诉我待办事项的用法

我不清楚这个插件具体怎么使用,都有哪些功能,所以我这样问它。

下面是它的回答:

您可以使用待办事项清单来管理您的日常任务和计划。以下是一些常见的用法:

  1. 添加待办事项:您可以告诉我您想要添加的待办事项内容,我会将其添加到您的待办事项清单中。例如:“添加待办事项:购买牛奶。”

  2. 查看待办事项清单:您可以询问我您的待办事项清单上有什么内容,我会列出您当前的所有待办事项。例如:“我的待办事项清单上有什么?”

  3. 删除待办事项:您可以告诉我您想要删除的待办事项的索引(序号),我会从您的待办事项清单中删除它。例如:“删除第 1 个待办事项。”

请随时告诉我您想要执行的操作,我会帮助您管理您的待办事项清单。

虽然插件清单(menifest)中的描述文字,及 OpenAPI 调用规范中的描述都是英文,但不妨碍这里返回中文。它们的意思是相同的,这是 OpenAI 强大的地方之一。

每一个不清楚如何使用的插件,都可以使用“请告诉我 xx 的用法”这样的指令询问它。

指令:

添加待办事项:给张老师回复消息

添加待办事项:查看今天的邮件列表

它在添加成功后,会回复我们消息:

e030d5fa2f77af013b9c7b71bf25bc47.webpimage-9

这里的“OK”文本,是 Python 程序中返回的。

指令:查看待办事项清单

或者“我的待办事项清单上有什么?”,ChatGPT 能够精确理解你的意图。

这里查看待办事项列表,已经有两条了:

0bc66309fbac2817b47246f4a60d8762.webpimage-10

指令:删除第 2 个待办事项

第 2 个或第 2 条都可以,它知道应该删除哪一条:

fb3ce651949757e88b62b3290a774ddb.webpimage-11

现在再次查看待办事项列表,发现仅剩一条了。

这篇内容非常简单,但应该足以让你在本地体验 ChatGPT 插件开发了。看一百遍,不如亲自动手动一遍;如果暂时没有权限,看一看运行效果,大概也能猜明白插件开发是怎么回事了。

现在这个插件是不需要用户验证的,如何开发一个只有付费用户才能使用的插件呢?

我们可以在插件中提供一个搜索接口,让 ChatGPT 搜索我们本地的文档库,这相当于是一个本地搜索服务,那么在这种模式下,ChatGPT 了解我们文档库中的内容吗?换言之,当我们问它某一个与文档库的知识相关的问题时,它知道结合我们的文档库进行回答吗?


7e4576d67d13fe8902f2c8479a40f6a9.webp


End -


    小步快跑,正向反馈;面向未来,不求完美

关注我,与时间做朋友,一起成长

10b31ed3f7bfae7775f487522b738f12.webp


声明:本文纯人工编写

点赞、关注和转发,就是最好的支持

添加微信9830131,回复“读者”进编程修仙群



【推荐阅读】 ChatGPT:如何写好 Prompt ? 为什么技术初创团队和大厂都选择开源?
【资源下载】
  • 回复 10000,下载《微信小游戏开发》全套书配套源码及番外篇PDF
  • 回复 10001,下载 零边际成本微信小程序产品开发范式”源码及PPT
  • 回复 10003,下载《GPT-4技术报告》PDF

b86d838814bb659a881fa736f11c8f4a.webp

d364124c57eaaf2f41a352b42308a09f.webp

adadf20a35c657c551f0a0cbc559213e.webp

浏览 128
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报