为API网关构建ChatGPT自定义插件 - API7.ai
速率限制以及请求/响应转换等功能。
在本文中,我们将逐步介绍如何为API网关开发一个自定义的ChatGPT插件,并指导您完成插件的创建、部署以及测试的全过程。此外,您还将学习如何将插件集成到ChatGPT中并进行实际操作测试。让我们开始吧!
如何为API网关创建ChatGPT插件
根据OpenAI网站上的入门指南,构建一个新的自定义ChatGPT插件通常需要以下三个步骤:
- 开发一个符合OpenAPI规范的API,或使用现有的API。
- 使用OpenAPI YAML或JSON格式记录API。
- 生成一个JSON插件清单文件,包含插件的基本信息。
以下内容将详细介绍实现这些步骤所需的技术栈和具体操作。
先决条件
在开发此插件时,我们需要以下技术栈:
- 公共会议API:我们将使用两个API端点来检索演示中演讲者的会话和主题信息。您也可以在浏览器中找到其他API。
- Apache APISIX API网关:用于公开Admin API并管理API流量。
- Python脚本:用于在本地主机URL(
http://localhost:5000/)上运行插件,同时托管插件清单、OpenAPI规范和插件徽标文件。 - Docker:用于简化APISIX和Python脚本的构建、部署与运行,只需一个
docker-compose up命令即可完成。
接下来,我们将按照以下三个部分的步骤逐步完成插件的创建:
- 设置Apache APISIX。
- 开发ChatGPT插件。
- 将插件集成到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.json:http://localhost:5000/.well-known/ai-plugin.jsonopenapi.yaml:http://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中启用插件功能后,您可以通过以下步骤连接自定义插件:
- 转到ChatGPT的设置页面,启用插件功能。
- 在插件商店中选择“开发自己的插件”。
- 输入插件的本地主机URL(例如
http://localhost:5000)。 - 点击“查找清单文件”,系统将验证您的插件配置。
步骤3:测试自定义插件
插件连接成功后,您可以通过ChatGPT发送命令来测试插件的功能。例如,您可以创建一个新的路由,ChatGPT将根据命令调用相应的APISIX端点。
API网关自定义插件的其他用例
除了简单的路由请求外,您还可以通过API网关实现以下功能:
- 安全性:通过身份验证、授权和速率限制保护后端服务。
- 缓存:缓存API响应以提高数据访问速度。
- 版本控制:轻松切换API版本,无需停机。
- 负载平衡:分配请求到多个服务实例,提升高可用性。
- 请求转换:支持数据格式转换,例如从REST到GraphQL。
- 监控与分析:收集API使用数据,优化性能。
下一步
通过本文的指导,您已经了解了如何为API网关开发一个自定义的ChatGPT插件,并将其集成到ChatGPT中。接下来,您可以尝试扩展插件功能,探索更多高级用例,例如增强安全性、优化性能或实现复杂的请求转换。
原文链接: https://api7.ai/blog/chatgpt-custom-plugin-for-api-gateway
最新文章
- 强力监控!Spring Boot 3.3 集成 Zipkin 全面追踪 RESTful API 性能
- API安全:内部审计师快速参考指南
- 什么是 REST API?
- GitLab的API调用指南
- 全球支付api解析:运作原理与使用指南
- 最佳免费API用于教育应用集成
- 创建RESTful且开发者友好的API指南
- Uber Ride API 开发指南:实现价格估算、路径调度与司机管理系统
- 用 Poe-API-wrapper 连接 DALLE、ChatGPT,批量完成AI绘图或文字创作
- RESTful Web API 设计中要避免的 6 个常见错误
- LangGraph 工具详解:构建 AI 多步骤流程的关键利器
- GitHubAPI调用频率限制的增加方法