使用Python调用免费归属地查询API
揭秘 API 网关:提升 ChatGPT 插件开发的公开、保护与管理技巧
OpenAI 最近推出了新版本的 ChatGPT,现支持在聊天机器人中添加插件。这些插件可直接集成到 ChatGPT 中,使其能够通过 API 访问来自第三方合作伙伴的丰富知识和信息。通过这些插件,ChatGPT 的功能得以扩展,能够提供如研究旅行费用、查找折扣信息、预订航班和订餐等服务。此外,还可以构建自定义插件,让 ChatGPT 智能地调用自有 API 数据。
为使数据能够通过 ChatGPT 自定义插件进行访问,需要构建一个新的 API 或使用现有 API 以便进行查询并接收响应。API Gateway 在此过程中能显著提升安全性、可用性和效率。本文将探讨 API Gateway 如何帮助 ChatGPT 插件开发人员公开、保护、管理和监控 API 端点。
OpenAI 表示:“插件开发人员使用 OpenAPI 标准为 API 编写规范,从而使 ChatGPT 能够与开发人员定义的 API 进行交互。”
学习目标
本文将介绍以下内容:
- API Gateway 在构建 ChatGPT 插件 API 中的作用。
- 如何发布、保护、监控及处理插件 API 的其他关键问题。
- 如何将 Apache APISIX(开源 API 网关)与 ChatGPT 插件结合使用。
API Gateway 的作用
API 网关通过为通信 API 提供标准化接口,充当 ChatGPT 插件和您的 API 之间的桥梁。它管理 API 的访问、安全性和性能,并提供其他关键功能。例如,如果要构建一个 ChatGPT 插件以获取来自城市市场的折扣信息,可能会有多个 API 显示新产品、市场动态和最新交易。在这种情况下,API 网关将作为 API 和插件之间的附加层。
增强的安全性
API 网关在 ChatGPT 中的主要作用之一是处理身份验证和授权。这包括验证插件用户的身份,并确定他们是否具备访问 API 的权限。OpenAI 可以使用各种身份验证机制,如 OAuth、API 密钥或自定义身份验证协议,并将用户凭证传递给 API 网关。API 网关随后进行身份验证,以检查用户是否经过验证,从而免去为每个 API 编写验证代码的必要。
本质上,API 网关作为一种安全措施,用于防止潜在的黑客攻击。它可以限制特定类型的请求,例如阻止对特定路由的未经授权的 POST 请求,除非请求包含适当的权限或特定标头。例如,一家公司可能有一个电子商务 API,允许通过 ChatGPT 插件下订单。API 网关配置为仅允许包含有效 API 密钥的 POST 请求,这样只有经过授权的请求才能创建新订单,未经授权的请求将被阻止,从而防止恶意下达虚假订单或操控系统。
高效限速
API 网关还负责处理速率限制,确保 ChatGPT 插件不会因大量请求而影响 API 的性能或导致其崩溃。它可以限制客户端在特定时间内发出的请求数量,并阻止超过限制的请求。
高性能
性能是 API 网关提升 ChatGPT 插件效率的另一个方面。API 网关可以实施缓存,以存储经常请求的响应并快速返回,而无需查询实际 API。此外,API 网关还可以处理请求/响应转换,将传入请求转换为 API 可以理解的格式(例如将 REST 请求转换为 GraphQL),并将响应转换为插件可以使用的格式。
持续监控
尽管 OpenAI 表示 ChatGPT 不会利用通过 API 提交的数据来训练或改进模型,但启用可观测性功能仍然至关重要。API 网关可以提供有关 ChatGPT 插件使用情况的数据,监控插件发出的请求,以识别和解决潜在问题。
如何将 Apache APISIX 与 ChatGPT 插件一起使用
了解了 API 网关在构建 ChatGPT 插件中的重要作用后,接下来介绍如何使用 Apache APISIX API 网关的简单步骤。市场上还有许多其他 API 网关,这篇文章也有助于确定哪一个最适合需求。
在撰写本文时,ChatGPT 已限制访问,仅向 OpenAI 的 alpha 用户开放。需要注册 ChatGPT 插件候补名单,目前优先考虑开发人员和 ChatGPT Plus 用户。
- 在开发环境中安装并运行 Apache APISIX,无论是本地还是远程服务器(云端)。本地运行时,可以通过 http://localhost:9080 访问 APISIX。
- 为每个 API 端点配置路由和上游,可以通过请求 Admin API(在 http://localhost:9180 上运行)或用户友好的 UI 控制面板来完成。也可以导入现有的 OpenAPI 规范以自动注册路由和上游。
- 使用 APISIX 的插件启用 API 网关功能,如身份验证、速率限制和可观测性。
- 导出更新后的 OpenAPI 规范用于 ChatGPT,并进行必要的修改。将此文件通过另一条路由放置在 APISIX 服务器中的某个位置,以便 ChatGPT 可以找到。例如,将规范编译成一个提示,向 ChatGPT 解释如何使用该 API 来增强其答案。提供详细提示,包括每个可用终端节点的描述。例如,YAML/JSON 文件可以存放在 http://localhost:9080/openapi.yaml。
- 其他步骤,如定义清单文件、运行插件和编写描述,与官方 OpenAI 文档中的步骤几乎一致。在通过 ChatGPT UI 连接并运行插件时,确保域名地址指向 APISIX API Gateway。
- 最后,用户通过 ChatGPT UI 启用插件来提出新问题。如果 ChatGPT 决定需要从 API 中获取信息,它将向 API 网关发出请求,并在尝试响应之前将其添加到上下文中。
ChatGPT 插件的 API 安全性总结
以下是保护 ChatGPT 插件 API 的 API Gateway 产品摘要:
- 身份验证协议:利用 API Gateway,选择强大且安全的身份验证协议,如 OAuth 2.0 或 JSON Web Token (JWT),以验证 API 请求。
- 双因素身份验证 (2FA):通过与多种身份提供商集成实施 2FA,为 API 身份验证提供额外的安全层。
- 安全令牌管理:避免将令牌存储在客户端应用程序或不安全的位置(如客户端 Cookie 或本地存储),以确保令牌的安全存储。
- 基于角色的访问控制 (RBAC):启用 RBAC 控制不同用户或应用程序在 ChatGPT 插件 API 中的权限和操作。
- 传输层安全性 (TLS):API 提供 TLS 选项,以加密客户端和服务器之间的网络通信。
- API 速率限制:API Gateway 提供速率限制机制,以防止 ChatGPT 插件 API 的滥用或误用。
- 日志记录和审计:将 API Gateway 与其他可观测性平台结合使用,实现全面的日志记录和审计机制,以跟踪和监控 API 请求和响应。
结论
将插件集成引入 ChatGPT 是 OpenAI 的一次重要升级,这标志着 GPT 模型在面向用户的 AI 领域的显著变化。API Gateway 提供了一个高性能的接口,用于安全地公开 API,同时涵盖了安全性、速率限制策略、身份验证方法和监控等功能。没有 API 网关,ChatGPT 的集成将面临更多挑战,客户将需要自行管理身份验证、速率限制和其他相关功能。