错误代码 Error codes

本指南概述了您可能会从 API 和我们的官方 Python 库中看到的错误代码。 概述中提到的每个错误代码都有专门的部分提供进一步的指导。

API errors

CodeOverview
401 - Invalid Authentication原因: 无效身份验证 解决方案: 确保使用正确的 API 密钥 和请求组织。
401 - Incorrect API key provided原因: 请求的 API 密钥不正确。 解决方案: 确保使用的 API 密钥正确,清除浏览器缓存,或生成一个新的
401 - You must be a member of an organization to use the API原因: 您的帐户不属于组织。 解决方案: 联系我们以加入新组织或请您的组织经理邀请您加入组织
429 - Rate limit reached for requests原因: 您发送请求的速度太快了。 解决方案: 调整您的请求。 阅读 速率限制指南
429 - You exceeded your current quota, please check your plan and billing details原因: 您已达到每月最大支出(硬性限制),您可以在账户账单部分 中查看。 解决方案: 申请增加配额
429 - The engine is currently overloaded, please try again later原因: 我们的服务器正在经历高流量。 解决方案: 请稍等片刻后重试您的请求。
500 - The server had an error while processing your request原因: 我们服务器上的问题。 解决方案: 稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。 查看状态页面

401 - Invalid Authentication

此错误消息表明您的身份验证凭据无效。 发生这种情况的原因可能有多种,例如:

  • 您正在使用已撤销的 API 密钥。
  • 您使用的 API 密钥与分配给请求组织的 API 密钥不同。
  • 您使用的 API 密钥没有您所调用端点所需的权限。

要解决此错误,请执行以下步骤:

401 - Incorrect API key provided

此错误消息表示您在请求中使用的 API 密钥不正确。 发生这种情况的原因可能有多种,例如:

  • 您的 API 密钥中有拼写错误或多余的空格。
  • 您正在使用属于不同组织的 API 密钥。
  • 您正在使用已被删除或停用的 API 密钥。
  • 旧的、已撤销的 API 密钥可能会缓存在本地。

要解决此错误,请执行以下步骤:

  • 尝试清除浏览器的缓存和 cookie,然后重试。
  • 检查您是否在请求标头中使用了正确的 API 密钥。
  • 如果您不确定您的API密钥是否正确,您可以生成一个新的。 确保替换代码库中的旧 API 密钥并遵循我们的最佳实践指南

401 - You must be a member of an organization to use the API

此错误消息表明您的帐户不属于某个组织。 发生这种情况的原因可能有多种,例如:

  • 你已经离开或被从你以前的组织中移除。
  • 您的组织已被删除。

要解决此错误,请执行以下步骤:

  • 如果您已经离开或被从以前的组织中移除,您可以申请一个新组织或被邀请加入现有组织。
  • 要申请新组织,请通过 help.openai.com 联系我们
  • 现有的组织所有者可以通过成员面板邀请您加入他们的组织。

429 - Rate limit reached for requests

此错误消息表示您已达到为 API 分配的速率限制。 这意味着您在短时间内提交了过多的令牌或请求,并且超出了允许的请求数量。 发生这种情况的原因可能有多种,例如:

  • 您正在使用循环或脚本来发出频繁或并发的请求。
  • 您正在与其他用户或应用程序共享您的 API 密钥。
  • 您正在使用具有低速率限制的免费计划。

要解决此错误,请执行以下步骤:

  • 调整您的请求,避免拨打不必要或多余的电话。
  • 如果您使用的是循环或脚本,请确保实施退避机制或尊重速率限制和响应标头的重试逻辑。 您可以在我们的速率限制指南 中详细了解我们的速率限制政策和最佳实践。
  • 如果您与其他用户共享您的组织,请注意限制适用于每个组织而不是每个用户。 值得检查您团队其他成员的使用情况,因为这会影响限制。
  • 如果您使用的是免费或低级别计划,请考虑升级到提供更高费率限制的现收现付计划。 您可以在我们的速率限制指南 中比较每个计划的限制。

429 - You exceeded your current quota, please check your plan and billing details

此错误消息表示您已达到 API 的每月最大支出。 您可以在帐户账单设置的“硬限额”下查看每月最高限额。 这意味着您已经消耗了分配给您的计划的所有积分,并且已经达到了当前账单周期的限制。 发生这种情况的原因可能有多种,例如:

  • 您正在使用消耗大量信用或代币的大容量或复杂服务。
  • 对于您的组织的使用,您的限制设置得太低。

要解决此错误,请执行以下步骤:

  • 在您的账户设置中检查您当前的配额。 您可以在您账户的使用部分查看您的请求消耗了多少代币。
  • 如果您使用的是免费计划,请考虑升级到提供更高配额的现收现付计划。
  • 如果您需要增加配额,您可以申请一个 并提供有关预期使用情况的相关详细信息。 我们将审核您的请求并在大约 7-10 个工作日内回复您。

429 - The engine is currently overloaded, please try again later

此错误消息表明我们的服务器流量过大,目前无法处理您的请求。 发生这种情况的原因可能有多种,例如:

  • 对我们服务的需求突然激增。
  • 我们的服务器有计划或计划外的维护或更新。
  • 我们的服务器发生意外或不可避免的中断或事件。

要解决此错误,请执行以下步骤:

  • 稍等片刻后重试您的请求。 我们建议使用指数退避策略或尊重响应标头和速率限制的重试逻辑。 您可以详细了解我们的速率限制 最佳实践
  • 查看我们的状态页面,了解有关我们的服务和服务器的任何更新或公告。
  • 如果在合理的时间后您仍然收到此错误,请联系我们以获得进一步的帮助。 对于给您带来的不便,我们深表歉意,感谢您的耐心等待和理解。

Python library error types

TypeOverview
APIError原因: 我们这边的问题。解决方案: 稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。
Timeout原因: 请求超时。解决方案: 稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。
RateLimitError原因: 您已达到指定的速率限制。解决方案: 调整你的要求。 在我们的 速率限制指南 中阅读更多内容.
APIConnectionError原因: 连接到我们的服务的问题。解决方案: 检查您的网络设置、代理配置、SSL 证书或防火墙规则。
InvalidRequestError原因: 您的请求格式不正确或缺少一些必需的参数,例如令牌或输入。解决方案: 错误消息应告知您所犯的具体错误。 检查 文档 以了解您正在调用的特定 API 方法,并确保您发送的参数有效且完整。 您可能还需要检查请求数据的编码、格式或大小。
AuthenticationError原因: 您的 API 密钥或令牌无效、过期或已撤销。解决方案: 检查您的 API 密钥或令牌并确保其正确且有效。 您可能需要从您的帐户信息中心生成一个新的。
ServiceUnavailableError原因: 我们服务器上的问题。 解决方案: 稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。 Check the status page.

APIError 表示我们在处理您的请求时出了点问题。 这可能是由于临时错误、错误或系统中断造成的。

对于给您带来的任何不便,我们深表歉意,我们正在努力尽快解决任何问题。 您可以查看我们的系统状态页面 了解更多信息。

如果遇到 APIError,请尝试以下步骤:

  • 等待几秒钟,然后重试您的请求。 有时,问题可能会很快得到解决,您的请求可能会在第二次尝试时成功。
  • 查看我们的状态页面,了解任何可能影响我们服务的持续事件或维护。 如果有活动事件,请关注更新并等到问题解决后再重试您的请求。
  • 如果问题仍然存在,请查看我们的持续性错误后续步骤部分。

我们的支持团队将调查此问题并尽快回复您。 请注意,由于需求量大,我们的支持排队时间可能会很长。 您也可以 在我们的社区论坛发帖,但请务必省略任何敏感信息。

“超时”错误表示您的请求完成时间过长,我们的服务器关闭了连接。 这可能是由于网络问题、我们的服务负载过重或需要更多处理时间的复杂请求。

如果遇到 Timeout 错误,请尝试以下步骤:

  • 等待几秒钟,然后重试您的请求。 有时,网络拥塞或我们服务的负载可能会减少,您的请求可能会在第二次尝试时成功。
  • 检查您的网络设置并确保您拥有稳定快速的互联网连接。 您可能需要切换到不同的网络、使用有线连接或减少使用带宽的设备或应用程序的数量。
  • 如果问题仍然存在,请查看我们的持续性错误后续步骤部分。

RateLimitError 表示您已达到指定的速率限制。 这意味着您在给定时间段内发送了过多的令牌或请求,我们的服务已暂时阻止您发送更多。

我们施加速率限制以确保公平有效地使用我们的资源并防止滥用或超载我们的服务。

如果遇到 RateLimitError,请尝试以下步骤:

  • 发送更少的令牌或请求或放慢速度。 您可能需要减少请求的频率或数量、批处理令牌或实施指数退避。 您可以阅读我们的速率限制指南 了解更多详情。
  • 等到您的速率限制重置(一分钟)并重试您的请求。 错误消息应该让您了解您的使用率和允许的使用情况。
  • 您还可以从您的帐户仪表板查看您的 API 使用统计信息。

APIConnectionError 表示您的请求无法到达我们的服务器或无法建立安全连接。 这可能是由于网络问题、代理配置、SSL 证书或防火墙规则造成的。

如果遇到 APIConnectionError,请尝试以下步骤:

  • 检查您的网络设置并确保您拥有稳定快速的互联网连接。 您可能需要切换到不同的网络、使用有线连接或减少使用带宽的设备或应用程序的数量。
  • 检查您的代理配置并确保它与我们的服务兼容。 您可能需要更新代理设置、使用不同的代理或完全绕过代理。
  • 检查您的 SSL 证书并确保它们有效且是最新的。 您可能需要安装或更新证书、使用不同的证书颁发机构或禁用 SSL 验证。
  • 检查您的防火墙规则并确保它们没有阻止或过滤我们的服务。 您可能需要修改防火墙设置。
  • 如果合适,请检查您的容器是否具有发送和接收流量的正确权限。
  • 如果问题仍然存在,请查看我们的持续性错误后续步骤部分。

InvalidRequestError 表示您的请求格式错误或缺少一些必需的参数,例如令牌或输入。 这可能是由于代码中的拼写错误、格式错误或逻辑错误。

如果遇到 InvalidRequestError,请尝试以下步骤:

  • 仔细阅读错误消息并确定具体的错误。 错误消息应告知您哪些参数无效或丢失,以及预期的值或格式。
  • 检查 API 参考 以了解您正在调用的特定 API 方法,并确保您发送的参数有效且完整。 您可能需要查看参数名称、类型、值和格式,并确保它们与文档相符。
  • 检查您请求数据的编码、格式或大小,并确保它们与我们的服务兼容。 您可能需要以 UTF-8 编码您的数据,以 JSON 格式化您的数据,或者如果数据太大则压缩您的数据。
  • 使用 Postman 或 curl 等工具测试您的请求,并确保它按预期工作。 您可能需要调试代码并修复请求逻辑中的任何错误或不一致。
  • 如果问题仍然存在,请查看我们的持续性错误后续步骤部分。

AuthenticationError 表示您的 API 密钥或令牌无效、过期或已撤销。 这可能是由于拼写错误、格式错误或安全漏洞造成的。

如果遇到 AuthenticationError,请尝试以下步骤:

  • 检查您的 API 密钥或令牌并确保其正确且有效。 您可能需要从 API 密钥仪表板生成一个新密钥,确保没有多余的空格或字符,或者如果您有多个密钥或令牌,则使用不同的密钥或令牌。
  • 确保您遵循了正确的格式。

ServiceUnavailableError 表示我们的服务器暂时无法处理您的请求。 这可能是由于计划内或计划外维护、系统升级或服务器故障所致。 这些错误也可以在高流量期间返回。

对于给您带来的不便,我们深表歉意,我们正在努力尽快恢复我们的服务。

如果遇到 ServiceUnavailableError,请尝试以下步骤:

  • 等待几分钟,然后重试您的请求。 有时,问题可能会很快得到解决,您的请求可能会在下一次尝试时成功。
  • 查看我们的状态页面,了解任何可能影响我们服务的持续事件或维护。 如果有活动事件,请关注更新并等到问题解决后再重试您的请求。
  • 如果问题仍然存在,请查看我们的持续性错误后续步骤部分。

Persistent errors

如果问题仍然存在,通过聊天联系我们的支持团队 并向他们提供以下信息:

  • 您使用的型号
  • 您收到的错误消息和代码
  • 您发送的请求数据和标头
  • 您请求的时间戳和时区
  • 任何其他可能有助于我们诊断问题的相关详细信息

我们的支持团队将调查此问题并尽快回复您。 请注意,由于需求量大,我们的支持排队时间可能会很长。 您也可以 在我们的社区论坛发帖,但请务必省略任何敏感信息。

Handling errors

我们建议您以编程方式处理 API 返回的错误。 为此,您可能需要使用如下代码片段:

py
try:
  #Make your OpenAI API request here
  response = openai.Completion.create(prompt="Hello world",
                                      model="text-davinci-003")
except openai.error.APIError as e:
  #Handle API error here, e.g. retry or log
  print(f"OpenAI API returned an API Error: {e}")
  pass
except openai.error.APIConnectionError as e:
  #Handle connection error here
  print(f"Failed to connect to OpenAI API: {e}")
  pass
except openai.error.RateLimitError as e:
  #Handle rate limit error (we recommend using exponential backoff)
  print(f"OpenAI API request exceeded rate limit: {e}")
  pass