English
主导航

旧版 API

GPT Actions 生产环境注意事项

使用最佳实践在生产环境中部署 GPT Actions。

速率限制

建议对暴露的 API 端点实施速率限制。ChatGPT 会遵循 429 响应码,并在短时间内收到一定数量的 429 或 500 响应后,动态退避并停止向您的 action 发送请求。

超时

在 actions 体验期间发起 API 调用时,如果超出以下阈值将发生超时:

  • API 调用往返时间 45 秒

使用 TLS 和 HTTPS

发送到您的 action 的所有流量必须使用 TLS 1.2 或更高版本,并通过 443 端口搭配有效的公共证书。

IP 出口范围

ChatGPT 将使用以下 CIDR 块 中的某个 IP 地址调用您的 action,详见 chatgpt-connectors.json

您可能希望将这些 IP 地址明确加入白名单。此列表会定期自动更新。

多种身份验证模式

在定义操作时,您可以将单一的身份验证类型(OAuth 或 API 密钥)与不需要身份验证的端点混合使用。

您可以在我们的 操作身份验证页面.

Open API 规范限制

请注意 OpenAPI 规范中的以下限制,这些限制可能会随时更改:

  • API 规范中的每个 API 端点描述/摘要字段最多 300 个字符
  • API 规范中的每个 API 参数描述字段最多 700 个字符

其他限制

使用 actions 进行构建时,需要注意以下几点限制:

  • 不支持自定义请求头
  • 除 Google、Microsoft 和 Adobe OAuth 域名外,OAuth 流中使用的所有域名必须与主要端点所使用的域名相同
  • 请求和响应的载荷各自必须少于 100,000 个字符
  • 请求会在 45 秒后超时
  • 请求和响应只能包含文本(不支持图像或视频)

consequential 标志

在 OpenAPI 规范中,您现在可以将某些端点设置为“consequential”,如下所示:

1
2
3
4
5
6
7
8
9
10
paths:
  /todo:
    get:
      operationId: getTODOs
      description: Fetches items in a TODO list from the API.
      security: []
    post:
      operationId: updateTODOs
      description: Mutates the TODO list.
      x-openai-isConsequential: true

一个典型的 consequential 操作示例是代表用户预订酒店房间并为其付款。

  • 如果 x-openai-isConsequential 字段为 true,ChatGPT 会将该操作视为“必须始终在运行前提示用户确认”,并且不显示“始终允许”按钮(两者都是 GPTs 的功能,旨在让构建者和用户对操作拥有更多控制权)。
  • 如果 x-openai-isConsequential 字段为 false, ChatGPT 显示“始终允许按钮”。
  • 如果该字段不存在,ChatGPT 会默认将所有 GET 操作设为 false 而将所有其他操作设为 true

提供示例的最佳实践

以下是在编写 GPT 指令和架构描述,以及设计 API 响应时应遵循的一些最佳实践:

  1. 您的描述不应鼓励 GPT 在用户未要求提供该操作所属特定类别的服务时使用该操作。

    错误示例:

    每当用户提到任何类型的任务时,询问他们是否想使用 TODO 操作将其添加到待办事项列表中。

    正确示例:

    TODO 列表可以添加、删除和查看用户的待办事项。

  2. 您的描述不应为 GPT 指定特定的触发条件来使用该操作。ChatGPT 被设计为在合适的时候自动使用您的操作。

    错误示例:

    当用户提到一个任务时,回复‘您想将其添加到您的 TODO 列表中吗?回复“yes”以继续。’

    正确示例:

    [此处不需要说明]

  3. 来自 API 的 Action 响应应返回原始数据,而不是自然语言响应(除非确有必要)。GPT 将使用返回的数据自行生成自然语言响应。

    错误示例:

    我找到了您的待办事项列表!您有 2 个待办事项:买杂货和遛狗。如果您需要,我可以添加更多待办事项!

    正确示例:

    { "todos": [ "get groceries", "walk the dog" ] }

GPT Action 数据的使用方式

GPT Actions 将 ChatGPT 连接到外部应用。如果用户与 GPT 的自定义操作进行交互,ChatGPT 可能会将其部分对话发送到该操作的端点。

如果您有疑问或遇到其他限制,可以加入以下平台上的讨论: OpenAI 开发者论坛.