FQ后,调用OpenAI的API报下面错误:
Request timed out:
HTTPSConnectionPool(host='api.openai.com', port=443):
Max retries exceeded with url: /v1/engines/text-davinci-003/completions (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x119902aa0>,
'Connection to api.openai.com timed out.
(connect timeout=600)'))
【解决方法】:
修改对应openai组件的api_requestor.py文件
我这里是在下面目录:
/Users/ghj1976/opt/anaconda3/envs/py310/lib/python3.10/site-packages/openai
找到“if not hasattr(_thread_context, "session"):” 方法,并在此方法上方加入代理,如下图框的部分。
代理部分:
# proxy = {
# 'http': 'http://<代理ip>:<代理端口>',
# 'https': 'https://<代理ip>:<代理端口>'
# }
proxy={
'http':'127.0.0.1:10796',
'https':'127.0.0.1:10796'
}
端口号是你用对应软件的代理端口,我这里是10796
在“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测试代码就可以成功返回数据。