OPENAI:国内用户如何无墙访问

前言

PS: out of time (marked on 2024-2-22)

ChatGPT 是一个基于英语的自然语言处理技术的大型语言模型,由 OpenAI 开发并维护。在国内使用 ChatGPT 面临以下困难:

  • 注册难:由于 ChatGPT 是由外国公司开发和维护的,因此需要通过国际互联网进行注册,需要填写个人信息等敏感信息,这对于一些用户来说可能会有隐私安全的顾虑。

  • 充值难:由于 ChatGPT 是一个付费的云服务,需要通过信用卡等国际支付方式进行充值。然而,由于中国大陆的金融监管政策限制,很多用户无法使用国际支付方式进行充值,这导致了使用 ChatGPT 的门槛较高。

  • 网络封锁:由于 ChatGPT 的服务器在国外,受到中国大陆的网络封锁影响,使用 ChatGPT 时可能会遇到连接困难、网络不稳定等问题。此外,中国政府也对聊天机器人进行了严格的审查和限制,这也导致了 ChatGPT 在中国的使用面临了一定的限制和困难。

跨越网络的warp

此为option,具体从下面的docker-compose选择来决定是否要运行此脚本

1.Warp的好处

1.1 支持 chatGPT,解锁奈飞流媒体
1.2 避免 Google 验证码或是使用 Google 学术搜索
1.3 可调用 IPv4 接口,使青龙和V2P等项目能正常运行
1.4 由于可以双向转输数据,能做对方VPS的跳板和探针,替代 HE tunnelbroker能让 IPv6 only VPS 上做的节点支持 Telegram
1.5 IPv6 建的节点能在只支持 IPv4 的 PassWall、ShadowSocksR Plus+ 上使用

2.Warp 安装脚本

option 1
1
wget -N --no-check-certificate https://cdn.jsdelivr.net/gh/mikupeto/warp-script/warp.sh && bash warp.sh
option 2
1
wget -N https://raw.githubusercontent.com/fscarmen/warp/main/menu.sh && bash menu.sh [option] [lisence]

3.Warp命令

1
warp [option] [lisence]

4.Warp Option 解释

[option] 变量1 变量2 具体动作说明
h 帮助
4 原无论任何状态 -> WARP IPv4
4 lisence name 把 WARP+ Lisence 和设备名添加进去,如 bash menu.sh 4 5670ljg-sS9jD334-6o6g4M9F Goodluck
6 原无论任何状态 -> WARP IPv6
d 原无论任何状态 -> WARP 双栈
o WARP 开关,脚本主动判断当前状态,自动开或关
u 卸载 WARP
n 断网时,用于刷WARP网络 (WARP bug)
b 升级内核、开启BBR及DD
a 免费 WARP 账户升级 WARP+
a lisence 在上面基础上把 WARP+ Lisence 添加进去,如 bash menu.sh a N5670ljg-sS9jD334-6o6g4M9F
p 刷 Warp+ 流量
c 安装 WARP Linux Client,开启 Socks5 代理模式
l 安装 WARP Linux Client,开启 WARP 模式
c lisence 在上面基础上把 WARP+ Lisence 添加进去,如 bash menu.sh c N5670ljg-sS9jD334-6o6g4M9F
r WARP Linux Client 开关
v 同步脚本至最新版本
i 更换 WARP IP
e 安装 iptables + dnsmasq + ipset 分流流媒体方案
w 安装 WireProxy 解决方案
y WireProxy 开关
其他或空值 菜单界面

5.验证是否可以链接openai

1
bash <(curl -Ls https://cpp.li/openai)
1
bash <(curl -Ls https://cdn.jsdelivr.net/gh/missuo/OpenAI-Checker/openai.sh)

如果输出如下内容,表示此步已经成功:

Your IP supports access to OpenAI.
截屏2023-05-07 09.08.25.png

6.参考链接

服务器添加IPv4/IPv6网络

部署 go-chatgpt-api

1.防火墙设置(option)

1
sudo ufw allow 8080/tcp comment 'chatgpt ' && sudo ufw reload

2.VPS可直接访问Chatgpt的docker-compose.yml配置

1
2
3
4
5
6
7
8
9
10
services:
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
environment:
- GIN_MODE=release
- GO_CHATGPT_API_PROXY=
restart: unless-stopped

3.VPS自建如上Warp的docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
services:
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
network_mode: "host"
ports:
- 8080:8080
environment:
- GIN_MODE=release
- GO_CHATGPT_API_PROXY=
restart: unless-stopped

4.Docker内建Warp和API的docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
services:
go-chatgpt-api:
container_name: go-chatgpt-api
image: linweiyuan/go-chatgpt-api
ports:
- 8080:8080
environment:
- GIN_MODE=release
- GO_CHATGPT_API_PROXY=socks5://chatgpt-proxy-server-warp:65535
depends_on:
- chatgpt-proxy-server-warp
restart: unless-stopped

chatgpt-proxy-server-warp:
container_name: chatgpt-proxy-server-warp
image: linweiyuan/chatgpt-proxy-server-warp
environment:
- LOG_LEVEL=OFF
restart: unless-stopped

5.Docker部署完后反代的地址:

5.1 如果是同一台VPS

1
http://172.17.0.1:8080/chatgpt/conversation

5.2 若交由其他VPS使用

1
http://<vps-ip>:8080/chatgpt/conversation

5.3 token模拟api:支持 ChatGPT 转 API,接口 /imitate/v1/chat/completions,利用 accessToken 模拟 apiKey,实现伪免费使用 API ,从而支持集成仅支持 apiKey 调用的第三方客户端项目

1
http://<vps-ip>:8080/imitate/v1/chat/completions

Example:

Yidadaa/ChatGPT-Next-Web的环境变量

1
2
3
4
5
6
BASE_URL=http://go-chatgpt-api:8080/imitate
~~~~

5.4 反代建立之后,回到api的docker查看日志:
~~~bash
docker-compose logs -f

如果输出为200则代表成功,403和404都是无法

1
2
docker logs -f  go-chatgpt-api
# [GIN] 2023/04/19 - 23:38:00 | 200 | 21.785759553s | 192.168.0.1 | POST "/conversation"

6.参考链接

go-chatgpt-api

部署Chatgpt Docker

1.获取API或者Token

2.Docker-compose配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: '3'

services:
app:
image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
network_mode: "host"
ports:
- 127.0.0.1:3002:3002
environment:
# 二选一
OPENAI_API_KEY: sk-xxx
# 二选一
OPENAI_ACCESS_TOKEN: xxx
# API接口地址,可选,设置 OPENAI_API_KEY 时可用
OPENAI_API_BASE_URL: xxx
# API模型,可选,设置 OPENAI_API_KEY 时可用,https://platform.openai.com/docs/models
# gpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-0301, text-davinci-003, text-davinci-002, code-davinci-002
OPENAI_API_MODEL: xxx
# 反向代理,可选,即为上文提到的反代
API_REVERSE_PROXY: xxx
# 访问权限密钥,可选
AUTH_SECRET_KEY: xxx
# 每小时最大请求次数,可选,默认无限
MAX_REQUEST_PER_HOUR: 0
# 超时,单位毫秒,可选
TIMEOUT_MS: 60000
# Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效
SOCKS_PROXY_HOST: xxx
# Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效
SOCKS_PROXY_PORT: xxx
# HTTPS 代理,可选,支持 http,https,socks5
HTTPS_PROXY: http://xxx:7890

3. 参考链接

ChatGPT Web

4.备用反代方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
services:
go-chatgpt-api:
container_name: go-chatgpt-api
# legacy是依赖chatgpt-proxy-server的,我个人测试比较稳定
image: linweiyuan/go-chatgpt-api:legacy
ports:
- 8080:8080 # 宿主机8080端口可按需改为其它端口
environment:
- GIN_MODE=release
- CHATGPT_PROXY_SERVER=http://chatgpt-proxy-server:9515
depends_on:
- chatgpt-proxy-server
restart: unless-stopped

chatgpt-proxy-server:
container_name: chatgpt-proxy-server
image: linweiyuan/chatgpt-proxy-server
environment:
- LOG_LEVEL=INFO
restart: unless-stopped
  • 如果是同一台VPS

    1
    http://172.17.0.1:8080/conversation
  • 若交由其他VPS使用

    1
    http://<vps-ip>:8080/conversation
  • web配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    services:
    app:
    image: chenzhaoyu94/chatgpt-web:latest # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
    network_mode: "host"
    ports:
    - 3002:3002
    environment:
    # 二选一
    # OPENAI_API_KEY: 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
    # 二选一
    OPENAI_ACCESS_TOKEN:
    # API接口地址,可选,设置 OPENAI_API_KEY 时可用
    # OPENAI_API_BASE_URL: xxx
    # API模型,可选,设置 OPENAI_API_KEY 时可用
    OPENAI_API_MODEL: gpt-3.5-turbo
    # 反向代理,可选
    API_REVERSE_PROXY: http://172.17.0.1:8080/conversation
    # 访问权限密钥,可选
    AUTH_SECRET_KEY: Dhl123456,
    # 每小时最大请求次数,可选,默认无限
    MAX_REQUEST_PER_HOUR: 0
    # 超时,单位毫秒,可选
    TIMEOUT_MS: 60000
    restart: unless-stopped

OPENAI:国内用户如何无墙访问
http://example.com/2023/07/23/OPENAI-How-to-Make-ChatGPT-Accessible-to-Domestic-Users/
作者
Justin
发布于
2023年7月23日
许可协议