ChatGPT 当前限制越来越多,注册需要海外手机号,IP 需要使用干净的住宅 IP,支付需要美国信用卡,如果想分享给身边的一些朋友使用还是挺麻烦,不过对于有需要的人,这些目前都不是什么问题,再不济淘宝也可以花钱解决。
我们可以使用 API keys 的方式使用 GPT-3.5(目前 GPT-4 API 并未大范围开放),只需要在 GitHub 上挑选一个适合自己的 Web 页面就行。
我的使用场景是,一部分给公司的同事使用,打开即用,不需要任何验证,公司支付 key 的费用。为了限制公司的同事传播到其他地方,我们可以搭建在内网中。另外一个场景是分享给家人和朋友,这就要求需要搭建在国内可以流畅访问的公网环境中,为了防止滥用,需要设置一些验证,这个验证最好是可以自定义,不需要直接将 key 分享。
打开 GitHub 并搜索 chatgpt web ,我们选择 stars 数较多的项目搭建,这里以 ChatGPT-Next-Web 为例,基本上满足了我的使用场景。

Docker 搭建是最方便的方法,如果你搭建在公司的内网,因为 OpenAI 的 API 在国内是无法直接访问,所以需要一个代理,可以在局域网的任何一台机器是上,推荐使用 Surge 或 Clash,这样也可以通过控制台查看网络质量。或者也有更简单和安全的方式:gost
代理可以参考这一篇文章:
以下命令以 Debian 为例:
安装 Docker
curl -sS https://get.docker.com/ | sh
运行程序,其中 OPENAI_API_KEY 通过打开 OpenAI 后台创建,PROXY_URL 为代理地址,通过代理网络访问 OpenAI API。
场景 1: 内网环境,不需要认证,打开即用;
docker run - name chatgpt-web -d -p 3000:3000 \
-e OPENAI_API_KEY="sk-za******************n" \
-e PROXY_URL="http://192.168.1.6:1080" \
chatgpt-web:letest
场景2:公网环境,需要朋友填入 CODE 验证后才可使用,CODE 可以填写多个,使用逗号隔开,分别发送给不同的人;
docker run - name chatgpt-web -d -p 3000:3000 \
-e OPENAI_API_KEY="sk-za******************n" \
-e CODE="VAEv87LtEectGYs7KY" \
-e PROXY_URL="http://192.168.1.6:1080" \
chatgpt-web:letest
内网一般 80/443 无限制,可以增加一个 Nginx 转发,通过域名直接访问。
server {
listen 80;
server_name chat.abc.com;
location / {
proxy_set_header Host $host;
proxy_cache off;
proxy_buffering off;
chunked_transfer_encoding on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 300;
proxy_pass http://127.0.0.1:3003;
}
}
4. 浏览器打开 http://ip地址:3000 或者配置的域名即可访问;

搭建后发现,这个项目中默认的配置有点不舒服,简单修改了下,重新封了一个 Docker 镜像。
默认修改为 Enter 键发送信息;
默认关闭发送预览气泡;
修改方法:打开 app/store/app.ts 文件,找到相关的配置
submitKey:SubmitKey.Enter as SubmitKey,
sendPreviewBubble: false
修改后需要你自己编译项目并打包 Docker 镜像,推荐使用 Docker,如果单独运行项目,nodejs 不支持代理的方式请求,比较麻烦。
据我观察,需要 ChatGPT 提高工作效率的人自然会想各种办法解决手机号、IP、支付等问题,翻山越岭也要达到目的,不需要就算呈现到面前,开箱即用也是问几个问题,尝试让 ChatGPT 给一个错误答案,然后说“这玩意不行”。😄
