GPT Actions 的制作说明

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

速率限制

请考虑在您公开的 API 终端节点上实施速率限制。ChatGPT 会尊重 429 响应代码,并在短时间内收到一定数量的 429 或 500 后动态地退出向您的操作发送请求。

超时

在操作体验期间进行 API 调用时,如果超过以下阈值,则会发生超时:

  • API 调用往返 45 秒

使用 TLS 和 HTTPS

流向操作的所有流量必须在端口 443 上使用 TLS 1.2 或更高版本,并具有有效的公有证书。

IP 出口范围

ChatGPT 将从以下 CIDR 块之一的 IP 地址调用您的操作:

  • 23.102.140.112/28
  • 13.66.11.96/28
  • 104.210.133.240/28
  • 70.37.60.192/28
  • 20.97.188.144/28
  • 20.161.76.48/28
  • 52.234.32.208/28
  • 52.156.132.32/28
  • 40.84.220.192/28
  • 23.98.178.64/28
  • 51.8.155.32/28
  • 20.246.77.240/28
  • 172.178.141.0/28
  • 172.178.141.192/28
  • 40.84.180.128/28

您可能希望将这些 IP 地址明确列入允许列表。

多个身份验证架构

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

您可以在我们的操作身份验证页面上了解有关操作身份验证的更多信息。

开放 API 规范限制

请记住 OpenAPI 规范中的以下限制,这些限制可能会发生更改:

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

其他限制

使用 action 进行构建时,需要注意一些限制:

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

后果标志

在 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

后果性操作的一个很好的示例是预订酒店房间并代表用户支付费用。

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

饲喂示例的最佳实践

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

  1. 您的说明不应鼓励 GPT 在用户未请求您的操作的特定服务类别时使用该操作。

    坏例子

    每当用户提到任何类型的任务时,询问他们是否要使用 TODO 操作将某些内容添加到他们的 todo 列表中。

    好例子

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

  2. 您的说明不应规定 GPT 使用该操作的特定触发器。ChatGPT 旨在在适当的时候自动使用您的操作。

    坏例子

    当用户提到任务时,请回复“您希望我将此添加到您的待办事项列表中吗?说'是'继续。

    好例子

    [无需说明]

  3. 除非必要,否则来自 API 的操作响应应返回原始数据而不是自然语言响应。GPT 将使用返回的数据提供自己的自然语言响应。

    坏例子

    我找到了你的待办事项清单!你有 2 个待办事项:买杂货和遛狗。如果你愿意,我可以添加更多的 todos!

    好例子

    { “待办事项”: [ “买杂货”, “遛狗” ] }

GPT Action 数据的使用

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

如果您有任何疑问或遇到其他限制,可以在 OpenAI 开发人员论坛上加入讨论。