市面上其实有非常多通过api来使用chatGPT的工具,但是api需要按量收费。

跟几个朋友一起拼了一个chatGPT-plus账号,可以通过下面这个项目来分享,这个项目是通过accessToken来调用网页接口来分享chatGPT账号:https://github.com/moeakwak/chatgpt-web-share

这个项目解决了几个痛点:

  • 账号分享
  • 多对话并发排队
  • 会话按登陆账号隔离
  • 与其他项目集成使用可以绕过(模拟)前端的CloudFlare网页验证

用过的网友这样评价:

"自己用也许有更好的,多个人用,绝无仅有"

安装可以参考作者的中文安装指南:https://github.com/moeakwak/chatgpt-web-share/wiki/中文指南

另外可能会用到的其他三个项目:

接口适配封装:https://github.com/linweiyuan/go-chatgpt-api

代理:https://github.com/yangchuansheng/chatgpt-proxy-server-warp 我并没有使用这个,你的ip本身无法访问chatGPT的时候考虑使用,参考安装指南,这个项目打日志有点猛,留意磁盘用量。

部署只需要阅读上面的中文指南,不需要看源码

指南中推荐的部署方式是直接部署到国外的机器上,我推荐部署到国内,通过socks代理出国,这样可以通过购买最小规格的国外服务器来节约成本,也减少了更换出国节点的工作量。

前置工作

1、有一个国外节点,并用你自己的方式搭建安全的socks代理,直接搭建代理并暴露端口可能在GFW面前撑不了多久。

2、有一台x86服务器或者虚拟机,装好docker和docker-compose

部署chatGPT代理服务器

首先搭建代理服务器:go-chatgpt-api 并设置socks代理。

这里有可能需要使用x86服务器

# docker/chatgpt-proxy/docker-compose.yml
version: "3.3"
services:
  go-chatgpt-api:
  image: linweiyuan/go-chatgpt-api
  container_name: chatgpt-proxy-go-api
  privileged: true
  ports:
    - 6060:8080 # 为了支持一拖多,这里暴露端口给chatgpt-web-share使用
  environment:
    - GIN_MODE=release
    - CHATGPT_PROXY_SERVER=http://chatgpt-proxy-server:9515
    - NETWORK_PROXY_SERVER=socks5://192.168.1.100:1080 # 替换成自己的代理ip端口
  restart: unless-stopped

配置好后,运行 docker-compose up -d运行起来

搭建chatgpt-web-share

目录结构:

/docker
  |- chatgpt-share
         |- data  # 数据库文件夹 
         |- config.yaml  # 项目配置,参考配置手册
         |- docker-compose.yml  # docker配置

config.yaml根据部署手册配置,以下是几个重点配置内容:

chatgpt_access_token chatGPT账号网页端accessToken,通过 https://chat.openai.com/api/auth/session获取

chatgpt_paid chatGPT账号是否是plus用户

chatgpt_base_url 上面配置的代理服务器地址,示例值:http://192.168.1.100:6060/

initial_admin_usernameinitial_admin_password 管理员账号密码

需要注意的是,截止到项目版本 0.3.14还不支持accessToken的自动更新,可能用一阵子需要手动更新配置文件中的accessToken

docker配置文件:

version: "3.3"
services:
  chatgpt-share:
    # build: .
    image: ghcr.dockerproxy.com/moeakwak/chatgpt-web-share:latest
    container_name: chatgpt-web-share
    restart: always
    network_mode: bridge
    ports:
      - 8080:80
    volumes:
      - ./data:/data 
      - ./config.yaml:/app/backend/api/config/config.yaml
    command: "/app/startup.sh"

配置好后,运行 docker-compose up -d运行起来

遇到问题可以在项目README页找到电报讨论群(cws_group),进群询问

这时候输入项目地址 http://192.168.1.100:8080,应该可以进入登陆页面,如果代理都通畅并且配置正确应该可以正常使用:

image.png