入门文档(docs)
插件(Plugins)
生产(Production)

生产环境插件Plugins in production

速率 Rate limits

考虑对暴露的API端点(Completion)实现速率限制。虽然当前规模有限,但ChatGPT被广泛使用,您应该预期大量的请求。您可以监控请求数量并相应地设置限制。

超时(Timeouts)

在插件体验期间进行API调用时,如果超过以下阈值,将会出现超时:

  • 调用ai-plugn.json/openapi.yaml的往返时间为15秒
  • API调用的往返时间为45秒

随着我们将插件体验扩展到更多人群,我们预计超时阈值将会降低。

更新插件

每次更改 ai-plugin.json 文件时,都必须通过插件商店中的“开发自己的插件”流程手动更新清单文件。每次发出请求时,ChatGPT 会自动获取最新的 OpenAPI 规范,因此所做的更改将立即传播到终端用户。

插件条款 Plugin terms

为了注册插件,您必须同意插件条款 (opens in a new tab)

域验证和安全性

为了确保插件只能对其控制的资源执行操作,OpenAI 对插件的清单和 API 规范施加要求。

插件的根域名

清单文件定义了显示给用户的信息(比如标识和联系信息),以及托管插件的 OpenAPI 规范的 URL。当清单被获取时,插件的根域名遵循以下规则:

  • 如果域名有 www. 作为子域,那么根域名将从托管清单的域名中去掉 www.
  • 否则,根域名是托管清单的域。

关于重定向的注意事项:如果在解析清单时存在任何重定向,只允许子子域名重定向。唯一的例外是从带有www的子域名重定向到没有www的子域名。

根域名的示例:

  • https://example.com/.well-known/ai-plugin.json
    • Root domain: example.com
  • https://www.example.com/.well-known/ai-plugin.json
    • Root domain: example.com
  • https://www.example.com/.well-known/ai-plugin.json → redirects to https://example.com/.well-known/ai-plugin.json
    • Root domain: example.com
  • https://foo.example.com/.well-known/ai-plugin.json → redirects to https://bar.foo.example.com/.well-known/ai-plugin.json
    • Root domain: bar.foo.example.com
  • https://foo.example.com/.well-known/ai-plugin.json → redirects to https://bar.foo.example.com/baz/ai-plugin.json
    • Root domain: bar.foo.example.com
  • https://foo.example.com/.well-known/ai-plugin.json → redirects to https://example.com/.well-known/ai-plugin.json
    • 禁止重定向到父级域
  • https://foo.example.com/.well-known/ai-plugin.json → redirects to https://bar.example.com/.well-known/ai-plugin.json
    • 禁止重定向到同级子域
  • https://example.com/.well-known/ai-plugin.json -> redirects to https://example2.com/.well-known/ai-plugin.json
    • 禁止重定向到另一个域

清单要求 Manifest validation

清单本身的特定字段必须满足以下要求:

  • api.url - 提供给 OpenAPI 规范的 URL 必须与根域名相同或是根域名的子域。
  • legal_info - 提供的 URL 的二级域名 (opens in a new tab)必须与根域名的二级域名相同。
  • contact_info - 电子邮件地址的二级域名应该与根域名的二级域名相同。

解析 API 规范

清单中的 api.url 字段提供了一个链接到定义插件调用的 API 的 OpenAPI 规范。OpenAPI 允许指定多个服务器基础 URL (opens in a new tab)。以下逻辑用于选择服务器 URL:

  • 迭代服务器 URL 列表
  • 使用与根域名完全匹配或是根域名的子域名的第一个服务器 URL
  • 如果以上两种情况都不适用,则默认为 API 规范所托管的域。例如,如果规范托管在 api.example.com 上,则 api.example.com 将用作 OpenAPI 规范路由的基本 URL。

注意:请避免使用重定向来托管API规范和任何API端点(Completion),因为不能保证重定向总是会被跟随。

使用 TLS 和 HTTPS

与插件相关的所有流量(例如,获取 ai-plugin.json 文件、OpenAPI 规范、API 调用)必须使用 TLS 1.2 或更高版本,在 443 端口上使用有效的公共证书。

IP范围

ChatGPT 将在 CIDR 块 (opens in a new tab) 23.102.140.112/28 的 IP 地址下调用您的插件。您可能希望明确允许列入这些 IP 地址的白名单。

此外,OpenAI 的 Web 浏览插件从不同的 IP 地址块 Access Web Sites (opens in a new tab): 23.98.142.176/28.

FAQ

插件数据的用途是什么?

插件将 ChatGPT 连接到外部应用程序。如果用户启用插件,则 ChatGPT 可能会将他们的某些对话和国家或州发送给您的插件。

如果 API 请求失败会发生什么?

如果 API 请求失败,模型可能会在尝试重试该请求最多 10 次之前,让用户知道无法从该插件获得响应。

我能邀请其他人尝试我的插件吗?

是的,所有未验证的插件都可以由高达 15 个其他具有插件访问权限的开发人员安装。

我可以收费使用我的插件吗?

是的,我们鼓励您考虑提供有限数量的免费 API 调用,但理解运行您的插件需要资源。