前言
随着ChatGPT的普及,各种第三方应用也越来越多,今天再介绍一个更加强大的"chatgpt web"新项目,由原版chatgpt-web 衍生而来,主要特色是加入了后端,增加了注册登录、同步历史会话、设置单独会话的Prompt等功能。我最喜欢的就是可以多点同步历史会话,解决了换台电脑或手机就会丢失原先对话记录的问题。
安装部署
由于该项目包含前端和后端,所以最方便的安装方式是通过docker-compose进行部署,在已经安装了docker的前提下,我们一步一步进行。
安装docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
设置docker-compose:
sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
在docker 文件夹中创建 kerwin_chatgpt 目录,并进入该目录:
work=~/docker/kerwin_chatgpt mkdir -p $work; cd $work
新建docker-compose.yml文件,这里包含的是项目的核心内容
vi $work/docker-compose.yml
根据自己的需要,修改下面文件的自定义内容后,粘贴进docker-compose.yml文件,这里去掉了不常用的代理和敏感词审核的设置。
version: '3' services: app: image: kerwin1202/chatgpt-web # 总是使用latest,更新时重新pull该tag镜像即可 container_name: chatgptweb restart: unless-stopped ports: - 3002:3002 depends_on: - database environment: TZ: Asia/Shanghai # 二选一 OPENAI_API_KEY: 自己的key,以sk-开头的一串数字 # 二选一 OPENAI_ACCESS_TOKEN: 可选 # API接口地址,可选,设置 OPENAI_API_KEY 时可用 OPENAI_API_BASE_URL: https://api.openai.com # ChatGPTAPI ChatGPTUnofficialProxyAPI OPENAI_API_MODEL: ChatGPTAPI # 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 # 每小时最大请求次数,可选,默认无限 MAX_REQUEST_PER_HOUR: 0 # 超时,单位毫秒,可选 TIMEOUT_MS: 600000 # 访问jwt加密参数,可选 不为空则允许登录 同时需要设置 MONGODB_URL AUTH_SECRET_KEY: 自定义加密参数 # 网站名称 SITE_TITLE: 自定义网站标题,不要出现ChatGPT字样,避免被扫 # mongodb 的连接字符串 MONGODB_URL: 'mongodb://自定义用户名:自定义密码@database:27017' # 网站是否开启注册 REGISTER_ENABLED: 'true' # 开启注册之后 网站注册允许的邮箱后缀 如果空 则允许任意后缀 REGISTER_MAILS: '@qq.com,@outlook.com,@163.com' # 开启注册之后 密码加密的盐 PASSWORD_MD5_SALT: 自定义加密 # 开启注册之后 超级管理邮箱 ROOT_USER: 自定义管理员邮箱 # 开启注册之后 网站域名 不含 / 注册的时候发送验证邮箱使用 SITE_DOMAIN: https://自定义域名 # 开启注册之后 发送验证邮箱配置 SMTP_HOST: smtp.exmail.qq.com SMTP_PORT: 465 SMTP_TSL: 'true' SMTP_USERNAME: 自定义邮箱 SMTP_PASSWORD: 邮箱发件客户端密码 links: - database database: image: mongo container_name: chatgptweb-database restart: unless-stopped ports: - '27017:27017' expose: - '27017' volumes: - ./mongodb:/data/db environment: MONGO_INITDB_ROOT_USERNAME: 上面已经设定的自定义用户名 MONGO_INITDB_ROOT_PASSWORD: 上面已经设定的自定义密码 MONGO_INITDB_DATABASE: chatgpt volumes: mongodb: {}
然后输入运行命令,通过 docker-compose 启动 Docker 容器
cd $work && docker-compose up -d
启动后会出现chatgptweb和chatgptweb-database两个容器
需要提醒的是,别忘了在VPS的防火墙设置里放开3002和27017这两个端口
以后更新镜像时,只要依次使用下列命令即可
docker-compose down # 下线 docker-compose pull # 拉取chatgpt-web latest镜像,mongo用的是固定tag,不会一起更新。 docker-compose up -d # 重新上线
基本配置
输入https://VPS的ip:3002打开前端网页(一般是反向代理后通过域名访问)
第一次注册时使用docker-compose.yml文件里自定义的“ROOT_USER: 自定义管理员邮箱”进行注册,默认为管理员。
如果是自用,可以随后进入设置-网站配置-关闭“新用户”开关,可以关闭注册功能。
特色功能
网站设置和对话记录都会自动保存进数据库,所以在其他设备上可以无缝连接使用,非常方便。
每个会话设置独有 Prompt
前端页面设置里可以添加删除api key
目前来说,这是功能十分完善的自建ChatGPT Web方案,也是我个人目前在用的主力项目,希望大家支持作者的奉献。
文章评论
你好,大佬,按照你的方法,在群晖docker里构建yml,容器chatgptweb、chatgptweb-database都已经运行起来,日志里也没看到有错误,但打开ip:3002,显示500,server error,不知道哪里有问题
@hi 基本2个问题
1,彻底清除清除缓存,重新登陆
2,数据库连接问题,检查数据库的用户名和密码是否有错