ChatGpt官网入口

ChatGPT插件开发教程(一):创建一个Hello world插件

chatgpt2023-05-30 12:06:00270

1. 介绍

在这篇教程中,我们将学习如何创建一个简单的ChatGPT插件。我们将创建一个"Hello World"插件,这个插件只有一个功能:当用户输入"Hello World Plugin Say Hello"时,插件会回复"Hello, world!"。

2. 创建你的第一个ChatGPT插件

2.1 使用express构建API

Express是一个基于Node.js的web应用框架,它提供了一种简单而灵活的方式来创建web应用,包括API。我们选择使用Express,是因为它的简单性和灵活性,以及它强大的功能,如路由、中间件、模板引擎等。

例如,我们可以使用Node.js和Express来创建一个简单的API。首先,我们需要在一个新的文件(例如,server.js)中编写以下代码:ini

复制代码

const express = require('express');
const app = express();
const port = 3000;

app.use(express.static('public'));

app.get('/hello', (req, res) => {
 res.json({ message: 'Hello World!' });
}); // 构建一个/hello的get方法

app.listen(port, () => {
 console.log(`Server is running at:${port}`);
});

我们需要在根目录创建一个名为'public'的文件夹,用于存放后续需要用到的静态文件。

2.2 创建Plugin manifest

接下来,我们需要创建一个插件清单(Plugin manifest)。

插件清单(Plugin manifest)是一个描述我们插件基本信息的JSON文件。它包括了插件的名称、描述、API URL等信息。这些信息对于ChatGPT来说是非常重要的,因为它们告诉ChatGPT插件是什么,它能做什么,以及如何与它进行交互。因此,创建一个准确且完整的插件清单是非常重要的。

我们可以在项目的/public/.well-known目录下创建一个新的文件ai-plugin.json,并在这个文件中定义插件清单(Plugin manifest):json

复制代码

{
 "schema_version": "v1",
 "name_for_human": "Hello World Plugin",
 "name_for_model": "hello_world",
 "description_for_human": "A simple plugin that says hello to the world.",
 "description_for_model": "A simple plugin that says hello to the world.",
 "auth": {
   "type": "none"
 },
 "api": {
   "type": "openapi",
   "url": "",
   "is_user_authenticated": false
 },
 "logo_url": "",
 "contact_email": "support@example.com",
 "legal_info_url": ""
}

在这个文件中,我们定义了插件的名称、描述、API URL等信息。我们的API URL是http://localhost:3000/openapi.yaml,这是我们即将创建的OpenAPI插件描述文件的URL。

2.3 创建OpenAPI插件描述文件

OpenAPI插件描述文件是一个用于描述API的规范。通过使用OpenAPI插件描述文件,我们可以清晰地描述API的行为,包括我们的API有哪些endpoint,这些endpoint接受什么样的请求,以及这些端点会返回什么样的响应。这对于我们来说是非常有用的,因为它可以帮助我们更好地理解和设计我们的API。

我们可以在项目的/public目录下创建一个名为openapi.yaml的新文件,并在其中定义OpenAPI描述:yaml

复制代码

openapi: 3.0.0
info:
 title: Hello World
 version: 1.0.0
paths:
 /hello:
   get:
     operationId: hello
     summary: Returns a hello world message
     responses:
       '200':
         description: A JSON object containing a hello world message
         content:
           application/json:
             schema:
               $ref: '#/components/schemas/HelloResponse'
components:
 schemas:
   HelloResponse:
     type: object
     properties:
       message:
         type: string

在这个文件中,定义了一个GET方法的/helloendpoint。当这个endpoint被访问时,它会返回一个状态码为200的响应,响应的message是"Hello, world!"。

2.4 在本地运行你的插件

现在,插件已经准备好了,我们可以在本地运行它,看看它是否能够正确工作。

首先,需要启动Express应用。可以使用以下命令来启动应用:vbscript

复制代码

node server.js

然后,我们可以在浏览器中访问http://localhost:3000/hello,看看插件是否能够正确返回{"message":"Hello World!"}

如果一切顺利,我们就可以开始在ChatGPT中安装和测试我们的插件了。

2.5 使用ngrok内网穿透

由于我们的Express应用运行在本地服务器上,这意味着它默认情况下只能在我们的计算机上访问。然而,为了让ChatGPT能够访问插件,我们需要使插件在互联网上可访问。这就是我们需要使用ngrok的原因。ngrok是一个能够将本地服务器映射到公网的工具,使我们的插件能够在互联网上被访问。

首先,我们需要下载并安装ngrok。我们可以在ngrok的官网上找到下载链接和安装说明。

然后,我们可以使用以下命令来启动ngrok:yaml

复制代码

ngrok http 3000

这个命令会启动ngrok,并将它映射到本地服务器的3000端口。ngrok会显示一个公网URL,我们可以使用这个URL来访问本地服务器。

最后,我们需要在插件清单(Plugin manifest)文件中更新API URL,将其更改为我们的ngrok URL。例如,如果ngrok URL是https://xxxxx.ngrok-free.app,那么API URL应该是https://xxxxx.ngrok-free.app/openapi.yaml。请在ai-plugin.json文件中进行相应的更改。

3. 在ChatGPT中安装和测试插件

现在,我们的插件已经准备好了,我们可以在ChatGPT中安装和测试它。

首先,我们需要登录到ChatGPT,然后点击右上角的"Plugins"按钮,然后点击"Develop your own plugin"按钮。

在弹出的对话框中,我们需要输入我们的链接https://xxxxx.ngrok-free.app,然后点击"Find manifest file"按钮。如果一切顺利,插件就会被安装到ChatGPT中。

然后,可以在ChatGPT中输入"Hello World Plugin Say Hello",看看插件是否能够正确回复"Hello, world!"。

4. 总结

在这篇教程中,我们学习了如何创建一个简单的ChatGPT插件。我们创建了一个"Hello World"插件,这个插件只有一个功能:当用户输入"Hello World Plugin Say Hello"时,插件会回复"Hello, world!"。

我们还学习了如何在Express应用中提供静态文件服务,如何使用ngrok映射本地服务器,以及如何在ChatGPT中安装和测试插件。

在下一篇教程中,我们将学习如何使用cloudflare提供的工具,快速开发和部署一个ChatGpt插件。

5. 源码

github.com/jerryjiao/E…

作者:努力的Jerry

本文链接:https://yunguke.com/chatgpt/151.html

相关文章

网友评论