为API网关构建ChatGPT自定义插件 - API7.ai

作者:API传播员 · 2026-01-12 · 阅读时间:6分钟

速率限制以及请求/响应转换等功能。

在本文中,我们将逐步介绍如何为API网关开发一个自定义的ChatGPT插件,并指导您完成插件的创建、部署以及测试的全过程。此外,您还将学习如何将插件集成到ChatGPT中并进行实际操作测试。让我们开始吧!


如何为API网关创建ChatGPT插件

根据OpenAI网站上的入门指南,构建一个新的自定义ChatGPT插件通常需要以下三个步骤:

  1. 开发一个符合OpenAPI规范的API,或使用现有的API。
  2. 使用OpenAPI YAML或JSON格式记录API。
  3. 生成一个JSON插件清单文件,包含插件的基本信息。

以下内容将详细介绍实现这些步骤所需的技术栈和具体操作。


先决条件

在开发此插件时,我们需要以下技术栈:

  1. 公共会议API:我们将使用两个API端点来检索演示中演讲者的会话和主题信息。您也可以在浏览器中找到其他API。
  2. Apache APISIX API网关:用于公开Admin API并管理API流量。
  3. Python脚本:用于在本地主机URL(http://localhost:5000/)上运行插件,同时托管插件清单、OpenAPI规范和插件徽标文件。
  4. Docker:用于简化APISIX和Python脚本的构建、部署与运行,只需一个docker-compose up命令即可完成。

接下来,我们将按照以下三个部分的步骤逐步完成插件的创建:

  1. 设置Apache APISIX。
  2. 开发ChatGPT插件。
  3. 将插件集成到ChatGPT中并进行测试。

第1部分:设置Apache APISIX

步骤1:定义APISIX配置

首先,我们需要定义APISIX的配置文件apisix.yml。该文件主要用于设置APISIX的部署模式。在本示例中,我们选择了一个简单的传统选项,即APISIX使用etcd存储从Admin API获取的配置详细信息。为了便于演示,我们还禁用了管理员密钥Admin_key_required

步骤2:在Docker Compose中注册APISIX和etcd

接下来,我们需要创建一个docker-compose.yml文件,将APISIX和etcd注册为服务。通过运行docker-compose up命令,APISIX的管理API将部署在端口9180,而网关服务将通过端口9080对外提供访问。


第2部分:ChatGPT插件开发

步骤1:创建插件清单

每个插件都需要一个ai-plugin.json清单文件,该文件包含插件的基本信息,例如名称、描述和徽标等。当您在ChatGPT的用户界面中安装插件时,系统会根据您的域名查找该清单文件(例如http://localhost:5000/.well-known/ai-plugin.json),以了解如何与插件交互。

以下是一个示例的ai-plugin.json文件内容:

{
  "schema_version": "v1",
  "name_for_human": "Example Plugin",
  "name_for_model": "example_plugin",
  "description_for_human": "This is an example plugin for demonstration purposes.",
  "description_for_model": "Provides example data for testing.",
  "auth": {
    "type": "none"
  },
  "api": {
    "url": "http://localhost:5000/openapi.yaml"
  }
}

步骤2:创建OpenAPI规范

接下来,我们需要创建一个[openapi](https://www.explinks.com/blog/wx-safe-and-user-friendly-openapi).[yaml](https://www.explinks.com/wiki/ymal/)文件,用于定义API的结构和功能。在本示例中,我们仅使用了与路由相关的路径,您可以根据需要扩展API架构

步骤3:为插件静态文件添加端点

在运行Python脚本后,以下文件将通过本地主机URL提供:

  • ai-plugin.jsonhttp://localhost:5000/.well-known/ai-plugin.json
  • openapi.yamlhttp://localhost:5000/openapi.yaml
  • 插件徽标文件:http://localhost:5000/logo.png

步骤4:将Python应用程序Docker化

最后,我们需要将Python应用程序Docker化,以便与APISIX一起运行。以下是一个示例的docker-compose.yml文件内容:

version: '3.8'
services:
  apisix:
    image: apache/apisix:latest
    ports:
      - "9080:9080"
      - "9180:9180"
  etcd:
    image: bitnami/etcd:latest
  chatgpt-config:
    build: .
    ports:
      - "5000:5000"

第3部分:将ChatGPT与自定义插件集成

步骤1:部署自定义插件

完成插件开发后,运行以下命令即可启动项目:

docker-compose up

此时,Docker将下载所需的镜像并启动APISIX、etcd和Python应用程序。

步骤2:将插件连接到ChatGPT接口

在ChatGPT中启用插件功能后,您可以通过以下步骤连接自定义插件:

  1. 转到ChatGPT的设置页面,启用插件功能。
  2. 在插件商店中选择“开发自己的插件”。
  3. 输入插件的本地主机URL(例如http://localhost:5000)。
  4. 点击“查找清单文件”,系统将验证您的插件配置。

步骤3:测试自定义插件

插件连接成功后,您可以通过ChatGPT发送命令来测试插件的功能。例如,您可以创建一个新的路由,ChatGPT将根据命令调用相应的APISIX端点。


API网关自定义插件的其他用例

除了简单的路由请求外,您还可以通过API网关实现以下功能:

  • 安全性:通过身份验证、授权和速率限制保护后端服务。
  • 缓存:缓存API响应以提高数据访问速度。
  • 版本控制:轻松切换API版本,无需停机。
  • 负载平衡:分配请求到多个服务实例,提升高可用性。
  • 请求转换:支持数据格式转换,例如从REST到GraphQL。
  • 监控与分析:收集API使用数据,优化性能。

下一步

通过本文的指导,您已经了解了如何为API网关开发一个自定义的ChatGPT插件,并将其集成到ChatGPT中。接下来,您可以尝试扩展插件功能,探索更多高级用例,例如增强安全性、优化性能或实现复杂的请求转换。

原文链接: https://api7.ai/blog/chatgpt-custom-plugin-for-api-gateway