SnapdragonLee / ChatGPT-weBot

Chat with ChatGPT (gpt-3.5 or newer),WeChat hook interface based
657 stars 120 forks source link

代理问题Issue专区 #11

Closed SnapdragonLee closed 1 year ago

SnapdragonLee commented 1 year ago

大家因为代理问题可以把自己的使用环境,代理模式,操作流程,函数调用栈在这里详细列出,我不能保证给大家一一解决问题但是大家可以互相借鉴经验参考

6 中代理问题请转移到这里

SHEN2BAIYI commented 1 year ago

我好了大佬,我把 session_token 复制错了,我复制的时候搞错行了。直接运行 rev_chatGPT.py 不需要挂代理,能够直接获取答案。输入账号和密码的情况我还没有尝试,现在使用的是直接使用 session_token。

SnapdragonLee commented 1 year ago

我好了大佬,我把 session_token 复制错了,我复制的时候搞错行了。直接运行 rev_chatGPT.py 不需要挂代理,能够直接获取答案。输入账号和密码的情况我还没有尝试,现在使用的是直接使用 session_token。

解决了就好,另外这两天更新了若干功能,可以更新一下代码库,对于逆向API我有对acheong08/chatgpt的略微修改,我需要知道他们是否稳定hh

Deus-Glen commented 1 year ago
  1. 在不使用代理时,没有报错,但是会一直卡在ask状态下,没有回复

  2. 在使用v2rayN代理时,可以进入chatGPT网站,但是运行代码时无法获得回复,报错如下: error from callback <function on_open at 0x0000028FC2CD6820>: HTTPSConnectionPool(host='explorer.api.openai.com', port=443): Max retries exceeded with url: /api/auth/session (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1131)'))) File "D:\miniconda3\lib\site-packages\websocket_app.py", line 393, in _callback callback(self, *args) File "D:\pythonProject\ChatGPT-weBot-master\client\wxclient.py", line 361, in on_open chatbot = Chatbot( File "D:\pythonProject\ChatGPT-weBot-master\revChat\revChatGPT.py", line 67, in init self.__check_credentials() File "D:\pythonProject\ChatGPT-weBot-master\revChat\revChatGPT.py", line 80, in __check_credentials self.login() File "D:\pythonProject\ChatGPT-weBot-master\revChat\revChatGPT.py", line 110, in login auth.get_access_token() File "D:\miniconda3\lib\site-packages\OpenAIAuth.py", line 314, in get_access_token response = self.session.get( File "D:\miniconda3\lib\site-packages\requests\sessions.py", line 555, in get return self.request('GET', url, kwargs) File "D:\miniconda3\lib\site-packages\requests\sessions.py", line 542, in request resp = self.send(prep, send_kwargs) File "D:\miniconda3\lib\site-packages\requests\sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "D:\miniconda3\lib\site-packages\requests\adapters.py", line 514, in send raise SSLError(e, request=request)

SnapdragonLee commented 1 year ago
  1. 在不使用代理时,没有报错,但是会一直卡在ask状态下,没有回复
  2. 在使用v2rayN代理时,可以进入chatGPT网站,但是运行代码时无法获得回复,报错如下: error from callback <function on_open at 0x0000028FC2CD6820>: HTTPSConnectionPool(host='explorer.api.openai.com', port=443): Max retries exceeded with url: /api/auth/session (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1131)'))) File "D:\miniconda3\lib\site-packages\websocket_app.py", line 393, in _callback callback(self, *args) File "D:\pythonProject\ChatGPT-weBot-master\client\wxclient.py", line 361, in on_open chatbot = Chatbot( File "D:\pythonProject\ChatGPT-weBot-master\revChat\revChatGPT.py", line 67, in init self.__check_credentials() File "D:\pythonProject\ChatGPT-weBot-master\revChat\revChatGPT.py", line 80, in __check_credentials self.login() File "D:\pythonProject\ChatGPT-weBot-master\revChat\revChatGPT.py", line 110, in login auth.get_access_token() File "D:\miniconda3\lib\site-packages\OpenAIAuth.py", line 314, in get_access_token response = self.session.get( File "D:\miniconda3\lib\site-packages\requests\sessions.py", line 555, in get return self.request('GET', url, kwargs) File "D:\miniconda3\lib\site-packages\requests\sessions.py", line 542, in request resp = self.send(prep, send_kwargs) File "D:\miniconda3\lib\site-packages\requests\sessions.py", line 655, in send r = adapter.send(request, **kwargs) File "D:\miniconda3\lib\site-packages\requests\adapters.py", line 514, in send raise SSLError(e, request=request)

不会卡在ask状态,基本等待时间从10秒到6分钟不等,如果一直卡住,也会抛出异常。所以可以多等一会看看什么情况。 v2rayN代理我没有尝试过,无法给出任何建议,但你可以挂代理进入chatgpt网站后取得session_token后,关闭代理运行main.py,可以尝试一下这个

SnapdragonLee commented 1 year ago

即将添加socks代理选项,到时候可以使用该选项直接代理 另外,由于裸连就可以直接登录,所以拿到session_token后可以关闭代理运行SERVER,我尝试过了没有问题

MerriestWly commented 1 year ago

请教下各位,现在openai登录界面打开就是拒绝访问,代理也不行,这个session_token搞不到了有什么好办法吗?

TobyCheng2012 commented 1 year ago

请教下,运行后,一直不能收到回答?这个什么原因导致的? 如下面提示:

--- request header --- GET / HTTP/1.1 Upgrade: websocket Host: 127.0.0.1:5555 Origin: http://127.0.0.1:5555 Sec-WebSocket-Key: rZdLf+8TF3ItLlGUezrhmw== Sec-WebSocket-Version: 13 Connection: Upgrade


--- response header --- HTTP/1.1 101 Switching Protocols Connection: Upgrade Sec-WebSocket-Accept: /DkbETRUXHltl8W+AYtjRXDGTlQ= Server: WebSocket++/0.8.2 Upgrade: websocket

error from callback <function on_open at 0x03397730>: 'latin-1' codec can't encode character '\u2026' in position 512: ordinal not in range(256)

TobyCheng2012 commented 1 year ago

请教下,运行后,一直不能收到回答?这个什么原因导致的?

SnapdragonLee commented 1 year ago

error from callback <function on_open at 0x03397730>: 'latin-1' codec can't encode character '\u2026' in position 512: ordinal not in range(256)

堆栈已经打印出来了这个: error from callback <function on_open at 0x03397730>: 'latin-1' codec can't encode character '\u2026' in position 512: ordinal not in range(256) 注意config文件编码问题

TobyCheng2012 commented 1 year ago

试过了 Notepad3 + Nodepad++

我就加入了token就提示这个。。。

TobyCheng2012 commented 1 year ago
image
TobyCheng2012 commented 1 year ago

可以了。我的锅,Secure-next-auth.session-token没有复制完整。。。

Deus-Glen commented 1 year ago

请教下各位,现在openai登录界面打开就是拒绝访问,代理也不行,这个session_token搞不到了有什么好办法吗?

拒绝访问是你的代理使用的节点ip不行,多试试几个节点就行

SHEN2BAIYI commented 1 year ago

这里我对我昨天遇到的代理问题和解决方法进行一个总结,应该对大家也挺有用的:

问题:昨天我重新启动项目,突然不能连接 chatGPT,提示不能和服务器建立连接。我是通过 session_token 的方式进行登录,所以首先想到更新 session_token,但是我发现 session_token 一直在变化了,可能是我的 ip 或者 账号被ban了。所以我尝试更改代理,进行账号登录。问题就随之转到代理问题,代码一直报错无法连接代理。

解决:很多代理服务器端口其实不支持 https 握手,只支持 http 握手。当我们使用低版本 requests 的时候,https 也是按照 http 模式进行握手;当我们使用高版本的时候,https 就会按照 https 模式握手,但是代理服务器又不支持 https,所以就会出错。这里可以降低 requests 的版本,或者在环境变量或者注册表中手动将 https 改成 http 模式。

查了一天的资料,完美解决,开心。

SnapdragonLee commented 1 year ago

@SHEN2BAIYI 感谢你的查阅,我想问下https握手是和openai服务器成功还是和代理服务器连接成功的?还是都不成功? 之前其实我注意过这个问题,因为出现了 chunked error,这个问题就是 http 1.1导致的,但是又不能稳定触发,所以我也很疑惑

SHEN2BAIYI commented 1 year ago

@SHEN2BAIYI 感谢你的查阅,我想问下https握手是和openai服务器成功还是和代理服务器连接成功的?还是都不成功? 之前其实我注意过这个问题,因为出现了 chunked error,这个问题就是 http 1.1导致的,但是又不能稳定触发,所以我也很疑惑

这个我也不太清楚,我感觉是代理服务器就不成功了,因为它报错速度很快,一运行就报错了。

XiaoPeng4j commented 1 year ago

请教一下大佬,我是通过 session_token 的方式进行登录,始终连不上chatgpt,如果我不挂代理,就是如下错误 image

如果挂了代理,错误如下 image 请问是session_token写错的问题吗?

tensor-tech commented 1 year ago

你好,请问你是降低哪个版本?requests

SnapdragonLee commented 1 year ago

@XiaoPeng4j 无法完全复现这个问题,尝试换ip或咨询 @SHEN2BAIYI

自己测试了一下,国内裸连会出现这个问题,请开启代理并保证命令行联网指令可以经过代理

XiaoPeng4j commented 1 year ago

谢谢大佬回复,应该还是代理问题,不折腾了,等更新了api调用,我再试试

SnapdragonLee commented 1 year ago

已经更新了 API 调用,请升级到v1.0版本代码,不再存在代理问题