报错:(56) Received HTTP code 404 from proxy after CONNECT

来源:3-4 API使用之学习接口调用

陶丽丹

2023-09-22

求助!已经尝试了修改网上的各种方法,我用的urllib3版本是大家推荐的1.25.11,还是无法调用API。如果开启全局代理,用localhost代替IP,会得到一个“ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。”的报错。/(ㄒoㄒ)/~~

curl -x http://...:65095 https://api.openai.com/v1/models -H "Authorization: Bearer *****"
curl: (56) Received HTTP code 404 from proxy after CONNECT
*处为我的代理IP
*****处为我的key

如果用python来调用API,也会报错:
openai.proxy = {‘http’:“http://...:65095”,
‘https’:“http://...:65095”
}
completion = openai.ChatCompletion.create(
model = “gpt-3.5-turbo”,
messages = [
{‘role’: ‘system’, ‘content’:‘You are a helpful assistant.’},
{‘role’: ‘user’, ‘content’: ‘Hello!’}
]
)
报错如下:
Traceback (most recent call last):
File “C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 667, in urlopen
self._prepare_proxy(conn)
File “C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 932, in _prepare_proxy
conn.connect()
File “C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py”, line 317, in connect
self._tunnel()
File “C:\ProgramData\Anaconda3\lib\http\client.py”, line 904, in _tunnel
raise OSError(“Tunnel connection failed: %d %s” % (code,
OSError: Tunnel connection failed: 400 Bad Request

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “C:\ProgramData\Anaconda3\lib\site-packages\requests\adapters.py”, line 486, in send
resp = conn.urlopen(
File “C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 754, in urlopen
return self.urlopen(
File “C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 754, in urlopen
return self.urlopen(
File “C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py”, line 726, in urlopen
retries = retries.increment(
File “C:\ProgramData\Anaconda3\lib\site-packages\urllib3\util\retry.py”, line 446, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=‘api.openai.com’, port=443): Max retries exceeded with url: /v1/chat/completions (Caused by ProxyError(‘Cannot connect to proxy.’, OSError(‘Tunnel connection failed: 400 Bad Request’)))

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\ProgramData\Anaconda3\lib\site-packages\openai\api_requestor.py”, line 599, in request_raw
result = _thread_context.session.request(
File “C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py”, line 589, in request
resp = self.send(prep, **send_kwargs)
File “C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py”, line 703, in send
r = adapter.send(request, **kwargs)
File “C:\ProgramData\Anaconda3\lib\site-packages\requests\adapters.py”, line 513, in send
raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host=‘api.openai.com’, port=443): Max retries exceeded with url: /v1/chat/completions (Caused by ProxyError(‘Cannot connect to proxy.’, OSError(‘Tunnel connection failed: 400 Bad Request’)))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “”, line 1, in
File “C:\ProgramData\Anaconda3\lib\site-packages\openai\api_resources\chat_completion.py”, line 25, in create
return super().create(*args, **kwargs)
File “C:\ProgramData\Anaconda3\lib\site-packages\openai\api_resources\abstract\engine_api_resource.py”, line 153, in create response, _, api_key = requestor.request(
File “C:\ProgramData\Anaconda3\lib\site-packages\openai\api_requestor.py”, line 288, in request
result = self.request_raw(
File “C:\ProgramData\Anaconda3\lib\site-packages\openai\api_requestor.py”, line 613, in request_raw
raise error.APIConnectionError(
openai.error.APIConnectionError: Error communicating with OpenAI: HTTPSConnectionPool(host=‘api.openai.com’, port=443): Max retries exceeded with url: /v1/chat/completions (Caused by ProxyError(‘Cannot connect to proxy.’, OSError(‘Tunnel connection failed: 400 Bad Request’)))

写回答

1回答

叁金

2023-09-23

感觉是你的🪜有问题,确认一下代理是否正常吧。

1. 示例代码

import openai
openai.api_key = "sk-your api key"
openai.proxy=" 
openai.Model.list()

2. 使用国内搭建的镜像代理(配置一下月限额,然后定期刷新API Key防止被盗用)

直接将官方接口域名 api.openai.com 替换为 api.openai-proxy.com   即可在国内直接调用

0
1
陶丽丹
可能就是代理服务器的问题,我自己去租个云服务器部署一下试试,反正以后也是要部署到云服务器上的
2023-09-24
共1条回复

ChatGPT入门实战课 AI提效大数据开发平台建设

通过GPT提升大数据平台开发效能,让AI为你的项目开发提效赋能

250 学习 · 14 问题

查看课程

相似问题