问题描述

我发现每次打开一个会话,给 ChatGPT 发消息,他都会先展示 “正在重新连接 1/5”,等重试到 5 次之后,才开始正常回复。表现如下:
请添加图片描述
虽然说这个问题实际上不影响操作,但是每次都要浪费时间,还是稍微花点时间,一劳永逸。

问题原因

Codex 会优先使用 WebSocket 与服务器建立实时连接,在我们用代理时,可能出现这种情况:

  • 普通 HTTP、HTTPS 请求可以正常走代理;

  • WebSocket 请求没有读取到代理配置;

  • Codex 尝试建立 WebSocket 连接时失败;

  • 连续重试后,Codex 回退到 HTTPS;

  • HTTPS 可以正常走代理,所以最终又恢复正常。

因此,典型现象就是:

首次发送消息 → Reconnecting → 等待一段时间 → 突然恢复正常

解决方案

解决思路也很直接:让 ChatGPT 启动时明确读取本地代理地址。在 ChatGPT 配置目录中创建一个名为 .env 的文件。

如果没有自定义 CODEX_HOME,Windows 默认路径通常是:

C:\Users\你的用户名\.codex\.env

如果设置了 CODEX_HOME,则应该把文件放到对应目录。例如我的路径是:

D:\PersonalData\.codex\.env

注意:文件名必须是 .env,不能够是 .env.txt


在 .env 中写入下面内容,请将其中的 7897 替换为自己代理的 HTTP 或 Mixed 端口

HTTP_PROXY="http://127.0.0.1:7897"
HTTPS_PROXY="http://127.0.0.1:7897"
NO_PROXY="localhost,127.0.0.1,::1"

可以在 Windows “设置 → 网络和 Internet → 代理” 中查看当前系统代理的端口号。

验证

.env 通常只会在 ChatGPT 进程启动时读取。修改完成后,需要:

  1. 完全退出 ChatGPT Desktop;

  2. 确认所有 ChatGPT窗口已经关闭;

  3. 重新启动 ChatGPT;

  4. 新建会话并发送第一条消息测试。

到这个时候,你会发现 ChatGPT 可以直接回复你,不会出现 Reconnecting 的情况。

焚诀

发现症状相同,嫌麻烦的话,可以直接把这篇文章扔给 ChatGPT 来处理。

其实我们的角色也逐渐从执行者,变成了包工头,主要工作变成了定义问题和提供上下文。

平时遇到问题可以多思考一下,在我们提供充足的上下文的情况,AI 能否帮助我们来处理,我们只做最后的确认工作,让 AI 来提高我们生产的效率。

更多推荐