因为目前openai对地区限制的原因,即使设置了全局代理使用API调用时,还是会出现科学上网代理的错误问题。
openai库 == 0.26.5
【错误提示】:
raise error.APIConnectionError(
openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host='api.openai.com', port=443): Max retries exceeded with url: /v1/models (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1123)')))
【解决方法】:
①打开文件路径:.ENV\GPTdemo-uQtPOhRR\lib\site-packages\openai\api_requestor.py(openai库路径)
②找到“if not hasattr(_thread_context, "session"):”方法,并在此方法上方加入代理
# proxy = {
# 'http': 'http://<代理ip>:<代理端口>',
# 'https': 'https://<代理ip>:<代理端口>'
# }
proxy={
'http':'127.0.0.1:10809',
'https':'127.0.0.1:10809'
}
③在“result = _thread_context.session.request(”中加入代理
result = _thread_context.session.request(
method,
abs_url,
headers=headers,
data=data,
files=files,
stream=stream,
timeout=request_timeout if request_timeout else TIMEOUT_SECS,
proxies=proxy # 新增此行
)
再次运行API测试代码发现以及成功返回数据。