Skip to content

免费使用ChatGPT

解决的痛点

  1. 对于普通用户:在国内使用ChatGPT经常遇到不稳定的情况,或者是和别人共用plus账户容易因为IP不同而导致封号,而且每次使用都需要魔法上网。
  2. 对于开发人员:OpenAI已经禁止了国内用户调用chatgpt的API,导致无法使用API来开发自己的AI应用了。本教程逆向了它的web API,不仅可以调用API而且还是免费的。

前提

  1. 有一个可以登录的chatGpt账号(可以自己注册,或者点击购买
  2. 会魔法上网(国外服务器不需要;不会的评论区多问问)

1.准备一台云服务器(国内国外都可)

TIP

如果没有云服务器,在自己电脑上面跑也是可以的,就是每次使用都要在本地启动服务,稍微麻烦一点点

2.安装python环境

2.1 .在 云服务器(以Ubuntu 为例)上安装 Python(一般情况下服务器自带python,没有的话再安装,需要python --version验证一下自带版本号要大于3.5)

  1. 更新系统包列表
bash
sudo apt update
  1. 安装 Python
bash
sudo apt install python3
  1. 验证安装
bash
python3 --version
  1. 安装 pip(Python 包管理器)
bash
sudo apt install python3-pip
  1. 验证 pip 安装
bash
pip3 --version

2.2.在 Windows 上安装 Python

  1. 下载 Python 安装包

访问 Python 官方下载页面 以下载适合你操作系统的 Python 安装包。

  1. 运行安装程序

运行下载的安装程序,建议选中“Add Python to PATH”选项,然后点击“Install Now”开始安装。

  1. 验证安装

安装完成后,打开命令提示符(Cmd)或 PowerShell,运行以下命令来检查 Python 版本:

cmd
python --version
  1. 安装 pip(通常随 Python 一起安装)

验证 pip 是否安装:

cmd
pip --version

参考链接

3.安装git

3.1.在 Ubuntu 上安装 Git(一般情况下服务器自带git,没有的话再安装)

3.1.1. 更新系统包列表

bash
sudo apt update

3.1.2. 安装 Git

bash
sudo apt install git

3.1.3. 验证安装

bash
git --version
  1. 配置 Git(可选)

设置你的用户名和电子邮件地址:

bash
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

3.2.在 Windows 上安装 Git

3.2.1. 下载 Git 安装包

访问 Git 官方下载页面 以下载适合你操作系统的 Git 安装包。

3.2.2. 运行安装程序

运行下载的安装程序,按照安装向导完成安装。建议保持默认设置,尤其是“Git from the command line and also from 3rd-party software”选项。

3.2.3. 验证安装

安装完成后,打开命令提示符(Cmd)或 PowerShell,运行以下命令来检查 Git 版本:

cmd
git --version

3.2.4. 配置 Git(可选)

设置你的用户名和电子邮件地址:

cmd
git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

参考链接

4.部署chat2api

bash
git clone https://github.com/LanQian528/chat2api
cd chat2api
# 因为原项目的requirements少了个包
echo APScheduler >>> requirements.txt

pip install -r requirements.txt
# 设置代理(国外服务器省略这步)
export HTTP_PROXY="http://localhost:7890"
export HTTPS_PROXY="http://localhost:7890"
# 进程挂起
nohup uvicorn chat2api:app --host 0.0.0.0 --port 5005 > uvicorn.log 2>&1 &

# 本地启动用这个
# python app.py

TIP

关于chat2api的更多信息可移步https://github.com/lanqian528/chat2api/

到这里,如果是国内服务器的话,还不能访问,还需设置代理

5.安装clash(国外的服务器省略这步)

5.1.下载项目

git clone https://github.com/wanhebin/clash-for-linux.git

5.2.进入到项目目录,编辑.env文件,修改变量CLASH_URL的值和CLASH_SECRET。

CLASH_URL 就是clash的订阅码,如果Clash订阅地址不可访问,请切换通用订阅码

CLASH_SECRET 就是webui设置设置页面的登录密码(口令)

image-20240809222956102

cd clash-for-linux
vim .env

image-20240821215818180

5.3.之后访问http://xxxx:9090/ui设置节点(不要使用香港的节点)

image-20240809232030313

TIP

关于clash-for-linux的更多信息可移步https://github.com/wnlen/clash-for-linux

6.使用方式

6.1.直接web页面使用,访问 http://ip:port (注意web使用方式只支持免登录模式,推荐在edge浏览器中使用)

image-20240818140817917

6.2.作为API使用

TIP

AccessToken 获取: chatgpt官网登录后,再打开 https://chatgpt.com/api/auth/session 获取 accessToken 这个值

RefreshToken获取方式自行搜索

python
import requests
domain = 'http://ip:port'
url = f'{domain}/backend-anon/conversations'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer AccessToken/RefreshToken'
}

data = {
    "model": "gpt-4o-mini",
    "messages": [
        {"role": "user", "content": "写一个笑话"}
    ],
    "stream": False,
}
response = requests.post(url, headers=headers, json=data)
# 如果使用流模式,你需要逐步读取响应
if data.get("stream", False):
    for line in response.iter_lines():
        if line:
            print(line.decode('utf-8'))
else:
    print(response)
    print("--------")
    print(response.json()["choices"][0]['message']["content"])

6.3.接入chatbox使用

6.3.1. 下载chatbox客户端,不想下载也可以直接使用网页版本

6.3.2.配置

image-20240818140359154

之后就能使用了

image-20240818140520649