错误代码
本指南概述了您可能会从API和我们的官方 Python 库中看到的错误代码。概述中提到的每个错误代码都有专门的部分提供进一步的指导。
API错误
代码 | 概述 |
---|---|
401 - 无效的身份验证 | 原因:无效的身份验证 解决方案:确保使用正确的API 密钥和请求组织。 |
401 - 提供的 API 密钥不正确 | 原因:请求的 API 密钥不正确。 解决方案:确保使用的 API 密钥正确,清除浏览器缓存,或生成一个新的。 |
401 - 您必须是组织的成员才能使用 API | 原因:您的帐户不属于组织。 解决方案:联系我们以加入新组织,或让您的组织经理邀请您加入组织。 |
429 - 达到请求的速率限制 | 原因:您发送请求的速度太快了。 解决方案:调整您的请求。阅读速率限制指南。 |
429 - 您超出了当前配额,请检查您的计划和账单明细 | 原因:您已达到每月最大支出(硬性限制),您可以在账户账单部分查看。 解决方案: 申请增加配额。 |
429 - 引擎当前超载,请稍后再试 | 原因:我们的服务器流量过高。 解决方案:请稍等片刻后重试您的请求。 |
500 - 服务器在处理您的请求时出错 | 原因:我们的服务器出现问题。 解决方案:稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。检查状态页面。 |
401 - 无效的身份验证
此错误消息表明您的身份验证凭据无效。发生这种情况的原因可能有多种,例如:
- 您使用的是已撤销的 API 密钥。
- 您使用的 API 密钥与分配给请求组织的 API 密钥不同。
- 您使用的 API 密钥没有您所调用端点所需的权限。
要解决此错误,请执行以下步骤:
检查您是否在请求标头中使用了正确的 API 密钥和组织 ID。您可以在您的帐户设置中找到您的 API 密钥和组织 ID 。
如果您不确定您的 API 密钥是否有效,您可以生成一个新密钥。确保在您的请求中用新的 API 密钥替换旧的 API 密钥,并遵循我们的最佳实践指南。
401 - 提供的 API 密钥不正确
此错误消息表示您在请求中使用的 API 密钥不正确。发生这种情况的原因可能有多种,例如:
- 您的 API 密钥中有拼写错误或多余的空格。
- 您正在使用属于不同组织的 API 密钥。
- 您正在使用已被删除或停用的 API 密钥。
- 旧的、已撤销的 API 密钥可能会缓存在本地。
要解决此错误,请执行以下步骤:
401 - 您必须是组织的成员才能使用 API
此错误消息表明您的帐户不属于某个组织。发生这种情况的原因可能有多种,例如:
- 您已经离开或被从以前的组织中移除。
- 您的组织已被删除。
要解决此错误,请执行以下步骤:
- 如果您已经离开或被从以前的组织中移除,您可以申请一个新组织或受邀加入现有组织。
- 要申请新组织,请通过 help.openai.com 联系我们
- 现有的组织所有者可以通过成员面板邀请您加入他们的组织。
429 - 达到请求的速率限制
此错误消息表示您已达到为 API 分配的速率限制。这意味着您在短时间内提交了过多的标记或请求,并且超出了允许的请求数量。发生这种情况的原因可能有多种,例如:
- 您正在使用发出频繁或并发请求的循环或脚本。
- 您正在与其他用户或应用程序共享您的 API 密钥。
- 您正在使用具有低速率限制的免费计划。
要解决此错误,请执行以下步骤:
429 - 您超出了当前配额,请检查您的计划和账单明细
此错误消息表示您已达到 API 的每月最大支出。您可以在 账号计费设置 的“hard limit”下查看每月最高限额。这意味着您已经消耗了分配给您的计划的所有积分,并且已经达到了当前账单周期的限制。发生这种情况的原因可能有多种,例如:
- 您正在使用消耗大量信用或代币的大容量或复杂服务。
- 对于您的组织的使用,您的限制设置得太低。
要解决此错误,请执行以下步骤:
429 - 引擎当前超载,请稍后再试
此错误消息表明我们的服务器流量过大,目前无法处理您的请求。发生这种情况的原因可能有多种,例如:
- 对我们服务的需求突然激增。
- 我们的服务器有计划或计划外的维护或更新。
- 我们的服务器发生意外或不可避免的中断或事件。
要解决此错误,请执行以下步骤:
Python 库错误类型
类型 | 概述 |
---|---|
APIError | 原因:我们这边的问题。 解决方案:稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。 |
Timeout | 原因:请求超时。 解决方案:**稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。 |
RateLimitError | 原因:您已达到指定的速率限制。 解决方案:调整您的请求。在我们的速率限制指南中阅读更多内容。 |
APIConnectionError | 原因:连接到我们的服务时出现问题。 解决方案:检查您的网络设置、代理配置、SSL 证书或防火墙规则。 |
InvalidRequestError | 原因:您的请求格式错误或缺少一些必需的参数,例如令牌或输入。 解决方案:错误消息应告知您所犯的具体错误。检查您正在调用的特定 API 方法的文档,并确保您发送的参数有效且完整。您可能还需要检查请求数据的编码、格式或大小。 |
AuthenticationError | 原因:您的 API 密钥或令牌无效、过期或已撤销。 解决方案:检查您的 API 密钥或令牌并确保其正确且有效。您可能需要从您的帐户信息中心生成一个新的。 |
ServiceUnavailableError | 原因:我们的服务器出现问题。 解决方案:稍等片刻后重试您的请求,如果问题仍然存在,请联系我们。检查状态页面。 |
APIError
APIError
表示我们在处理您的请求时出了点问题。这可能是由于临时错误、错误或系统中断造成的。
对于给您带来的任何不便,我们深表歉意,我们正在努力尽快解决任何问题。您可以查看我们的系统状态页面以获取更多信息。
如果您遇到APIError
,请尝试以下步骤:
- 等待几秒钟,然后重试您的请求。有时,问题可能会很快得到解决,您的请求可能会在第二次尝试时成功。
- 查看我们的状态页面,了解任何可能影响我们服务的持续事件或维护。如果有活动事件,请关注更新并等到问题解决后再重试您的请求。
- 如果问题仍然存在,请查看我们的持续性错误后续步骤部分。
我们的支持团队将调查此问题并尽快回复您。请注意,由于需求量大,我们的支持排队时间可能会很长。您也可以在我们的社区论坛中发帖,但请务必省略任何敏感信息。
Timeout
“超时”错误表示您的请求完成时间过长,我们的服务器关闭了连接。这可能是由于网络问题、我们的服务负载过重或需要更多处理时间的复杂请求。
如果遇到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:
# 在这里提出您的 OpenAI API 请求
response = openai.Completion.create(prompt="Hello world",
model="text-davinci-003")
except openai.error.APIError as e:
# 在此处处理 API 错误,例如重试或记录
print(f"OpenAI API returned an API Error: {e}")
pass
except openai.error.APIConnectionError as e:
# 在这里处理连接错误
print(f"Failed to connect to OpenAI API: {e}")
pass
except openai.error.RateLimitError as e:
# 处理速率限制错误(我们建议使用指数退避)
print(f"OpenAI API request exceeded rate limit: {e}")
pass