ChatGPT插件的API网关
OpenAI 近期发布了新版 ChatGPT,现在ChatGPT 支持插件功能。这些插件可以直接添加到聊天机器人中,使其能够通过 API 访问来自第三方合作伙伴的丰富知识和信息。ChatGPT 插件可以扩展其功能,增强其获取最新信息的能力,例如查询旅行费用、查找折扣信息,或帮助用户预订机票和订餐。您还可以构建自己的插件,让 ChatGPT 智能地调用您的 API 数据。
没错!为了让您的数据能够通过 ChatGPT 自定义插件访问,ChatGPT 要求您构建一个新的 API,或者使用现有的 API 来查询数据并接收响应。然后,它会结合 API 数据和自身的自然语言处理能力,生成用户友好的答案。在这种情况下,API 网关可以帮助提升安全性、易用性和效率。您可以了解更多关于如何使用 API 网关构建基于大型语言模型 (LLM) 的企业级搜索 API 的信息。本文将探讨 API 网关如何帮助 ChatGPT 插件开发者公开、保护、管理和监控他们的 API 端点。
根据 OpenAI 的说法:插件开发者使用 OpenAPI 标准编写 API 规范,使 ChatGPT 能够与开发者定义的 API 进行交互。
学习目标
您将在阅读本文的过程中了解到以下内容:
- 了解 API 网关在构建 ChatGPT 插件 API 中的作用。
- 如何发布、保护、观察和应用插件 API 的其他横切关注点。
- 如何将Apache APISIX(开源 API 网关)与 ChatGPT 插件一起使用。
API网关的作用
API 网关充当 ChatGPT 插件和您的 API 之间的桥梁,提供标准化的通信接口。它管理 API 的访问、安全性和性能,并提供其他一些通用功能。假设您想开发一个 ChatGPT 插件,用于显示您所在城市市场的折扣信息,您可能需要使用不同的 API 来显示新产品、附近的市场以及最新的优惠信息。在这种情况下,API 网关将作为 API 和插件之间的附加层。
例如,API 网关可以将 ChatGPT 与其他 API 结合,例如 OpenAI 以外的自然语言处理 API 或来自其他提供商的翻译 API,允许客户端通过自定义 URI 路径和上游服务(多个后端 API 服务器)使用单个插件访问多个服务,将请求路由到适当的 API 并将响应返回给 ChatGPT。
增强安全性
ChatGPT 中 API 网关的主要职责之一是处理身份验证和授权。这包括验证插件用户的身份,并确定他们是否拥有从插件访问API 的必要权限。OpenAI 可以使用多种身份验证机制,例如 OAuth、API 密钥或自定义身份验证协议,并将用户凭据传递给 API 网关。然后,API 网关可以开箱即用地进行身份验证,以检查用户是否已通过身份验证。您无需为每个 API 编写任何验证过程的实现代码。
本质上,API 网关是一种安全措施,用于防范潜在的黑客攻击。API 网关会限制特定类型的请求,例如,除非发送方拥有相应的权限或在请求中包含特定的标头,否则会阻止对特定路由的未经授权的 POST 请求。
假设一家公司拥有一个电子商务 API,允许客户通过 ChatGPT 插件下单。API 网关配置为阻止对“下单”路由的 POST 请求,除非请求头中包含有效的 API 密钥(用作特权访问令牌)。这意味着只有经过身份验证和授权且带有正确 API 密钥的请求才能创建新订单,而未经授权的请求将被阻止,从而有效防止潜在的恶意行为,例如创建虚假订单或操纵系统。请参阅下文了解其他安全功能的概述。
高效限速
API 网关的另一个重要作用是处理速率限制。这可以确保 ChatGPT 插件不会同时向 API 发送过多请求,从而避免影响其性能甚至导致崩溃。API 网关可以限制客户端在特定时间段内可以发出的请求数量,并阻止超出限制的请求。
高性能
性能方面,API 网关也能有效提升 ChatGPT 插件的性能。例如,API 网关可以实现缓存,存储频繁请求的响应,并在无需查询实际 API 的情况下快速返回这些响应。此外,API 网关还可以处理请求/响应转换,将传入的请求转换为 API 可以理解的格式(例如将 REST 请求转换为 GraphQL),并将响应转换为插件可以使用的格式。
持续监测
即使 OpenAI 声明 ChatGPT不会使用客户通过其 API 提交的数据来训练或改进模型,启用可观测性功能仍然至关重要,原因有很多。API 网关可以提供有关 ChatGPT 插件使用情况、共享数据类型以及通过持续监控插件发出的请求来识别任何需要解决的问题的洞察。
如何将 Apache APISIX 与 ChatGPT 插件结合使用
了解了 API 网关在构建 ChatGPT 插件中的关键作用后,让我们来看看在 ChatGPT 上分享新插件之前,如何使用Apache APISIX API 网关的简单步骤。市面上还有许多其他 API 网关,本文可以帮助您确定哪一款最符合您的需求。
截至撰写本文时,ChatGPT 的访问权限仍然受限。要获得 OpenAI 的 alpha 测试资格,您需要注册 ChatGPT 插件的候补名单。不过,在向公众发布之前,他们只会优先考虑开发者和 ChatGPT Plus 用户。
- 在本地开发环境或远程服务器(云端)上安装并运行 Apache APISIX 。如果在本地运行,可以通过http://localhost:9080访问 APISIX。
- 无论是请求管理 API(运行在http://localhost:9180)还是用户友好的UI 控制面板,都需要为每个 API 端点配置路由和上游服务器。您还可以导入现有的OpenAPI 规范来自动注册路由和上游服务器。
- 您可以使用APISIX 的插件启用一些 API 网关功能、身份验证、速率限制和可观测性。
- 您需要导出更新后的 OpenAPI规范以供 ChatGPT 使用。对生成的文档进行必要的修改
YAML/JSON。将此文件通过其他路径放置在 APISIX 服务器的某个位置,以便 ChatGPT 可以找到它。/openapi.yaml此[http://localhost:9080/openapi.yaml](http://localhost:9080/openapi.yaml).规范将被编译成一个提示,向 ChatGPT 说明如何使用 API 来增强其答案。请考虑编写一个详细的提示,其中包含对每个可用端点的描述。 - 其他步骤,例如定义清单文件、运行插件和编写描述,与OpenAI官方文档中已有的详细说明基本相同。通过 ChatGPT UI 连接插件并运行插件时,请确保域名指向 APISIX API 网关。
- 最后,用户可以通过在 ChatGPT 用户界面上启用插件来提出新问题。如果 ChatGPT 认为需要从 API 获取信息,它会向 API 网关发出请求,并在尝试响应之前将请求添加到上下文中。
ChatGPT插件API安全性概述
请查看以下 API 网关产品概述,以保护 ChatGPT 插件的 API:
- 身份验证协议:使用 API 网关,您可以选择强大而安全的身份验证协议,例如 OAuth 2.0 或 JSON Web Tokens (JWT),来验证 API 请求。
- 双因素身份验证 (2FA):您可以通过与各种身份提供商集成来实现 2FA,这可以为 API 身份验证增加额外的安全层。
- 安全令牌管理:您可以避免将令牌存储在客户端应用程序或不安全的位置(例如客户端 cookie 或本地存储)中,从而安全地存储令牌。
- 基于角色的访问控制 (RBAC):您可以启用 RBAC 来控制不同用户或应用程序在 ChatGPT 插件 API 中可以执行的权限和操作。
- 传输层安全协议 (TLS):API 具有 TLS 选项,用于加密客户端和服务器之间通过网络进行的通信。
- API 速率限制:API 网关提供速率限制机制,以防止滥用或误用 ChatGPT 插件 API。
- 日志记录和审计:您可以将 API 网关与其他可观测性平台配合使用,以实现全面的日志记录和审计机制,从而跟踪和监控 API 请求和响应。
结论
为 ChatGPT 引入插件集成是 OpenAI 的一项升级。同时,对于面向用户的 GPT 模型而言,这也是人工智能领域的一项重要变革。API 网关提供了一个高性能的通信接口,可以安全地公开您的 API,并提供安全保障、速率限制策略、身份验证方法和监控功能。如果没有 API 网关,ChatGPT 将很难集成到其他系统中,客户端需要自行管理身份验证、速率限制和其他功能。
