导航

调用OpenAI的API出现Request timed out处理

Posted on 2023-03-25 19:27  蝈蝈俊  阅读(4193)  评论(0编辑  收藏  举报

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测试代码就可以成功返回数据。