OpenAI API 错误代码

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

API 错误

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

    • 您使用的是已撤销的 API 密钥。

    • 您使用的 API 密钥与分配给请求组织的 API 密钥不同。

    • 您使用的 API 密钥没有您所调用端点所需的权限。

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

    • 检查您是否在请求标头中使用了正确的 API 密钥和组织 ID。您可以在您的帐户设置中找到您的 API 密钥和组织 ID。

    • 如果您不确定您的 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 的每月最大支出。您可以在 [account billing settings](/account/billing/limits) 的“hard limit”下查看每月最高限额。这意味着您已经消耗了分配给您的计划的所有积分,并且已经达到了当前账单周期的限制。发生这种情况的原因可能有多种,例如:

    • 您正在使用消耗大量信用或代币的大容量或复杂服务。

    • 对于您的组织的使用,您的限制设置得太低。

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

    • 在您的帐户设置中检查您当前的配额。您可以在帐户的使用部分查看您的请求消耗了多少令牌。

    • 如果您使用的是免费计划,请考虑升级到提供更高配额的现收现付计划。

    • 如果您需要增加配额,您可以申请一个并提供有关预期使用情况的相关详细信息。我们将审核您的请求并在大约 7-10 个工作日内回复您。
  • 429 - The engine is currently overloaded, please try again later
  • 此错误消息表明我们的服务器流量过大,目前无法处理您的请求。发生这种情况的原因可能有多种,例如:

    • 对我们服务的需求突然激增。

    • 我们的服务器有计划或计划外的维护或更新。

    • 我们的服务器发生意外或不可避免的中断或事件。

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

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

Python 库错误类型

类型 概述
APIError Cause: 我们这边的问题。
Solution: 稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。
Timeout Cause: 请求超时。
Solution: 稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。
RateLimitError Cause: 您已达到指定的速率限制。
Solution: 调整你的要求。在我们的速率限制指南中阅读更多信息。
APIConnectionError Cause: 连接到我们的服务的问题。
Solution: 检查您的网络设置、代理配置、SSL 证书或防火墙规则。
InvalidRequestError Cause: 您的请求格式不正确或缺少一些必需的参数,例如令牌或输入。
Solution: 错误消息应告知您所犯的具体错误。检查您正在调用的特定 API 方法的文档,并确保您发送的参数有效且完整。您可能还需要检查请求数据的编码、格式或大小。
AuthenticationError Cause: 您的 API 密钥或令牌无效、过期或已撤销。
Solution: 检查您的 API 密钥或令牌并确保其正确且有效。您可能需要从您的帐户信息中心生成一个新的。
ServiceUnavailableError Cause: 我们服务器上的问题。
Solution: 稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。检查状态页面
  • APIError
  • `APIError` 表示我们在处理您的请求时出了点问题。这可能是由于临时错误、错误或系统中断造成的。

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

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

    • 等待几秒钟,然后重试您的请求。有时,问题可能会很快得到解决,您的请求可能会在第二次尝试时成功。

    • 查看我们的状态页面,了解任何可能影响我们服务的持续事件或维护。如果有活动事件,请关注更新并等到问题解决后再重试您的请求。

    • 如果问题仍然存在,请查看我们的持续性错误后续步骤部分。

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

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

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

    • 等待几秒钟,然后重试您的请求。有时,网络拥塞或我们服务的负载可能会减少,您的请求可能会在第二次尝试时成功。

    • 检查您的网络设置并确保您拥有稳定快速的互联网连接。您可能需要切换到不同的网络、使用有线连接或减少使用带宽的设备或应用程序的数量。

    • 如果问题仍然存在,请查看我们的持续错误后续步骤部分。

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

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

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

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

    • 您还可以从您的帐户信息中心查看您的 API 使用统计信息。

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

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

    • 检查您的网络设置并确保您拥有稳定快速的互联网连接。您可能需要切换到不同的网络、使用有线连接或减少使用带宽的设备或应用程序的数量。

    • 检查您的代理配置并确保它与我们的服务兼容。您可能需要更新代理设置、使用不同的代理或完全绕过代理。

    • 检查您的 SSL 证书并确保它们有效且是最新的。您可能需要安装或更新证书、使用不同的证书颁发机构或禁用 SSL 验证。

    • 检查您的防火墙规则并确保它们没有阻止或过滤我们的服务。您可能需要修改防火墙设置。

    • 如果合适,请检查您的容器是否具有发送和接收流量的正确权限。

    • 如果问题仍然存在,请查看我们的持续错误后续步骤部分。

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

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

    • 仔细阅读错误消息并确定具体的错误。错误消息应告知您哪些参数无效或丢失,以及预期的值或格式。

    • 查看 API 参考以了解您正在调用的特定 API 方法,并确保您发送的参数有效且完整。您可能需要查看参数名称、类型、值和格式,并确保它们与文档相符。

    • 检查您请求数据的编码、格式或大小,并确保它们与我们的服务兼容。您可能需要以 UTF-8 编码您的数据,以 JSON 格式化您的数据,或者如果数据太大则压缩您的数据。

    • 使用 Postman 或 curl 等工具测试您的请求,并确保它按预期工作。您可能需要调试代码并修复请求逻辑中的任何错误或不一致。

    • 如果问题仍然存在,请查看我们的持续错误后续步骤部分。

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

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

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

    • 确保您遵循了正确的格式。

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

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

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

    • 等待几分钟,然后重试您的请求。有时,问题可能会很快得到解决,您的请求可能会在下一次尝试时成功。

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

持续性错误

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

  • 您使用的型号

  • 您收到的错误消息和代码

  • 您发送的请求数据和标头

  • 您请求的时间戳和时区

  • 任何其他可能有助于我们诊断问题的相关详细信息

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

处理错误

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

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


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号