用于ChatGPT插件的API网关

358 阅读8分钟

Cover image for API Gateway For ChatGPT Plugins

OpenAI最近推出了新版本的ChatGPT,现在允许**ChatGPT内部的插件**。这些插件可以直接添加到聊天机器人中,使其能够通过API从第三方合作伙伴那里获得广泛的知识和信息。ChatGPT的插件可以扩展其功能,增强其获取最新信息的能力,如研究旅行费用,找出折扣信息,或帮助你预订机票和订购食物。你也可以建立你自己的插件,让ChatGPT智能地调用你的API数据。

是的,这是正确的!为了使您的数据可以通过ChatGPT自定义插件访问,ChatGTP要求您建立一个新的API或使用一个现有的API,可以用来查询它并接收它的回复。然后,它通过结合API数据和其自然语言能力,生成一个用户友好的答案。在这种情况下,API网关可以帮助提高安全性、可用性和效率。这篇文章探讨了API网关如何有利于ChatGPT插件开发者暴露、保护、管理和监控其API端点。

根据OpenAI插件开发者使用OpenAPI标准为API编写规范,使ChatGPT与开发者定义的API互动

学习目标

在整个文章中,你将学到以下内容:

  • 理解API网关在构建ChatGPT插件API中的作用。
  • 如何发布、保护、观察和应用插件API的其他交叉问题。
  • 如何在ChatGPT插件中使用Apache APISIX(一个开源的API网关)。

API网关的作用

API网关作为ChatGPT插件和你的API之间的桥梁,提供一个标准化的通信接口。APIs。它负责管理API的访问、安全和性能,并提供其他交叉功能。 假设你想建立一个ChatGPT插件,用于显示你所在城市的市场的折扣信息,你可能有不同的API来显示新产品、最近的市场和最新的交易。在这种情况下,API网关将是你的API和插件之间的一个附加层。

API Gateway For ChatGPT Plugins

例如,API网关可以将ChatGPT与其他API结合起来,如OpenAI以外的自然语言处理API或其他供应商的翻译API,允许客户通过自定义的URI路径和上游服务(多个后端API服务器)用一个插件访问多种服务,将请求路由到适当的API,并将响应返回到ChatGPT。

增强安全性

ChatGPT中API网关的主要作用之一是处理认证和授权。这涉及验证插件用户的身份,并确定他们是否有必要的权限从插件中访问API。OpenAI可以使用各种认证机制,如OAuth、API密钥或自定义认证协议,它将用户凭证传递给API网关。然后API网关可以进行开箱即用的验证,以检查用户是否经过验证。你不需要为每个API的这个验证过程编写任何实现代码。

从本质上讲,API网关作为一种安全措施,以防止潜在的黑客企图。API网关限制特定类型的请求,例如阻止未经授权的POST请求到一个特定的Route,除非发送者有适当的权限或在请求中包括一个特定的头。

比方说,一家公司有一个电子商务API,允许客户通过ChatGPT插件下订单。API网关被配置为阻止对 "下订单 "路线的POST请求,除非该请求在请求头中包含一个有效的API密钥,这就像一个特权访问令牌。这意味着,只有经过认证和授权的请求,并具有正确的API密钥,才允许创建新的订单,而未经授权的请求将被阻止,有效地防止潜在的恶意企图,以放置虚假订单或操纵系统。请参阅下面的其他安全功能摘要。

高效的速率限制

API网关的另一个重要作用是处理速率限制。这可以确保ChatGPT插件不会同时被太多的请求淹没,这可能会影响其性能或导致其崩溃。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。如果你在本地运行,APISIX可以通过http://localhost:9080
  • 为你的每个API端点配置一个路由和上游,不管是请求管理API(它运行在http://localhost:9180)还是请求一个用户友好的UI仪表板。你也可以导入现有的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用户界面连接插件并运行插件时,确保域名地址指向APISIX API网关。
  • 最后,用户通过在ChatGPT用户界面上启用该插件来提出新问题。如果ChatGPT决定要从API中获取信息,它将向API网关提出请求,并在尝试回应之前将其添加到上下文中。

聊天室插件的API安全总结

请看这个API网关产品的总结,以确保ChatGPT插件的API安全:

  • 认证协议:通过API Gateway,你可以选择一个强大而安全的认证协议,如OAuth 2.0或JSON Web Tokens(JWT),来认证API请求。
  • 双因素认证(2FA):你可以通过与各种身份供应商的整合来实现2FA,这可以为API认证增加一个额外的安全层。
  • 安全令牌管理:你可以通过避免将令牌存储在客户端应用程序或不安全的位置,如客户端的cookies或本地存储,来安全地存储令牌
  • 基于角色的访问控制(RBAC):你可以启用RBAC来控制不同用户或应用程序在ChatGPT插件API中可以执行的权限和操作。
  • 传输层安全(TLS):API有一个TLS选项,用于加密客户端和服务器之间在网络上的通信。
  • API速率限制:API网关提供速率限制机制,以防止滥用或误用ChatGPT插件的API。
  • 日志和审计:你可以将API Gateway与其他可观察性平台一起使用,以实现全面的日志和审计机制,跟踪和监控API请求和响应。

总结

为ChatGPT引入插件集成是OpenAI的一次升级。同样,这也是GPT模型面向用户的AI领域的一个重要变化。API网关提供了一个高性能的通信接口,以安全地暴露你的API,同时还有安全、限速策略、认证方法和监控。如果没有API网关,ChatGPT将更难集成到其他系统中,客户将需要自己管理认证、速率限制和其他功能。

相关资源

推荐内容

社区

🙋加入Apache APISIX社区
🐦在Twitter上关注我们
📝在Slack上找到我们
💁如何贡献页面

关于作者

访问我的博客:www.iambobur.com