OpenAI API:如何在Python中捕获所有5xx错误?

我想捕获OpenAI API发送的所有5xx错误(例如500),这样我可以在放弃并报告异常之前进行重试。

目前我的做法大致如下:

try:    response = openai.ChatCompletion.create(req)except InvalidRequestError as e:    reportErrorexcept ServiceUnavailableError as e:    retryexcept Exception as e:    response = f"Exception: {e}"    raise Exception(response)

一些5xx错误被捕获为未知错误(最后一种情况),我想捕获这些错误,以便像处理ServiceUnavailableError一样进行重试。但我不知道如何捕获所有5xx错误以进行重试。文档只讲述了如何捕获具体命名的错误。


回答:

所有5xx错误都属于ServiceUnavailableError。请查看官方OpenAI文档

类型 概述
APIError 原因:我们这边的故障。
解决方案:在短暂等待后重试请求,如果问题持续存在,请联系我们。
Timeout 原因:请求超时。
解决方案:在短暂等待后重试请求,如果问题持续存在,请联系我们。
RateLimitError 原因:您已达到分配的速率限制。
解决方案:控制您的请求频率。请阅读我们的速率限制指南了解更多信息。
APIConnectionError 原因:连接到我们的服务时出现问题。
解决方案:检查您的网络设置、代理配置、SSL证书或防火墙规则。
InvalidRequestError 原因:您的请求格式错误或缺少一些必需的参数,例如令牌或输入。
解决方案:错误消息应告知您具体的错误。查看您调用的特定API方法的文档,确保您发送的参数有效且完整。您可能还需要检查请求数据的编码、格式或大小。
AuthenticationError 原因:您的API密钥或令牌无效、已过期或已被撤销。
解决方案:检查您的API密钥或令牌,确保其正确且有效。您可能需要从您的账户仪表板生成一个新的密钥。
ServiceUnavailableError 原因:我们的服务器出现问题。
解决方案:在短暂等待后重试请求,如果问题持续存在,请联系我们。查看状态页面

处理ServiceUnavailableError的方式如下:

try:  # 在这里进行您的OpenAI API请求  response = openai.Completion.create(prompt="Hello world",                                      model="text-davinci-003")except openai.error.ServiceUnavailableError as e:  # 在这里处理5xx错误  print(f"OpenAI API请求错误: {e}")  pass

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注