OpenAI报错 time out:HTTPSConnectionPool(host=‘api.openai.com‘, port=443)

项目场景:

使用openai的api调用chatGPT报错,同样的代码在另一台机器没有问题


问题描述

使用官方示例

import openai
 
openai.api_key = 'sk-xxxx'
def chat_gpt(prompt):
     prompt = prompt
     model_engine = "text-davinci-003"
     completion = openai.Completion.create(
         engine=model_engine,
         prompt=prompt,
         max_tokens=1024,
         n=1,
         stop=None,
         temperature=0.5,
         timeout=1000,
     )
 
     response = completion.choices[0].text
     print(response)
 
chat_gpt("who are you")

报错信息:

APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/chat/completions (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1125)')))

原因分析:

猜测是代理问题,但是有时候不开代理好像也有可能出现


解决方案:

方法一:

urllib3降低版本到1.25.11

可以看我另一篇博文的介绍:传送门

这个方法对部分人有用,但很不幸我是另一部分。。。其实也挺莫名其妙的,在我windows的机器上就可以,一样的配置和代码在Ubuntu的机器上就不行(我这是两个机器,虚拟机的会不会有问题就没试过)

方法二:

修改openai源码

查看堆栈找到报错库的路径:
在这里插入图片描述
打开api_requestor.py(在pycharm或者vscode都可以直接点就可以跳过去):

搜索(CTRL + F)

if not hasattr(_thread_context, "session")

在上面添加代理(按自己的端口来,一般是7890)

proxies= {
    'http': 'http://localhost:7890',
    'https': 'http://localhost:7890'
}

如下示例:
在这里插入图片描述

保存后重新运行就可以了,但是我在使用Ubuntu的机器上连续请求几次又报错中断了重新请求又没有问题也挺奇怪。

方法三:

代码里设置环境变量

在代码中添加以下代码

import os
 
os.environ["http_proxy"] = "http://localhost:7890"
os.environ["https_proxy"] = "http://localhost:7890"
这个错误是由于无法连接到指定的服务器引起的。当我们使用 urllib 的 HTTPSConnectionPool 建立与 api.openai.com 服务器的连接时,如果无法成功建立连接或者超过了最大重试次数,就会报错并抛出这个异常。 出现这个错误的原因可能有以下几种: 1. 服务器错误:可能是由于服务器故障或维护导致无法连接。这时候我们需要等待一段时间,直到服务器恢复正常。 2. 网络连接问题:可能是由于网络不稳定或者网络连接断开导致无法建立连接。这时候我们可以尝试重新连接网络或者更换网络环境,如切换到其他网络。 3. 服务器访问限制:可能是由于服务器设置了访问限制,如 IP 黑名单或者访问频率限制导致无法连接。这时候我们需要检查是否有相关的访问限制,并遵守服务器的访问规则。 无论是哪种原因导致的连接问题,我们可以通过以下方法来解决: 1. 检查服务器状态:确认服务器是否正常运行,如果服务器端有问题,则需要等待服务器恢复正常。 2. 检查网络连接:确认网络是否正常连接,可以尝试重新连接网络或者更换网络环境。 3. 检查访问限制:检查是否有相关的访问限制,并确保遵守服务器的访问规则,如访问频率限制等。 如果以上方法都无法解决问题,可以联系服务器的管理员或者开发者寻求帮助,并提供相关的错误信息以便更好地定位和解决问题。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值