项目地址:yangjian102621/chatgpt-plus: AI 助手全套开源解决方案,自带运营管理后台,开箱即用。集成了 ChatGPT, Azure, ChatGLM,讯飞星火,文心一言等多个平台的大语言模型。支持 MJ AI 绘画,Stable Diffusion AI 绘画,微博热搜等插件工具。采用 Go + Vue3 + element-plus 实现。 (github.com)
有支付有自定义模型,前端设计也十分优秀,个人看来胜过next与chatgpt-web的优秀作品。
一、打包docker镜像方法
由于官方在1.8版本后不再提供docker镜像,所以需要自己打包。
打包环境
- Golang v1.19
- Node v18
后端打包
git clone https://github.com/yangjian102621/chatgpt-plus.git
cd api
## 先编译
# AMD 架构
make clean amd64
# ARM 架构
make clean arm64
## 再打包
cd ../build
docker build -t chatgpt-plus-api:$版本号 -f dockerfile-api-go ../
前端打包
cd web
## 安装依赖
npm install
## 编译
npm run build
## 打包
cd ../build
docker build -t chatgpt-plus-web:$版本号 -f dockerfile-vue ../
之后从docker管理器中导出镜像即可。
二、部署方法
ChatPlus 基础版的部署非常简单,你只需将项目根目录下的 deploy
文件夹拷贝到你需要部署的服务器,然后修改 docker-compose.yaml
,把 chatgpt-plus-api
和 chatgpt-plus-web
镜像版本改成最新稳定版即可:
version: '3'
services:
# mysql
chatgpt-plus-mysql:
image: mysql:8.0.33
container_name: chatgpt-plus-mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_ROOT_PASSWORD=设置密码
ports:
- "3307:3306"
volumes :
- ./mysql/conf/my.cnf:/etc/mysql/my.cnf
- ./mysql/data:/var/lib/mysql
- ./mysql/logs:/var/log/mysql
- ./mysql/init.d:/docker-entrypoint-initdb.d/
# redis
chatgpt-plus-redis:
image: redis:6.0.16
restart: always
container_name: chatgpt-plus-redis
command: redis-server --requirepass 设置密码
volumes :
- ./redis/data:/data
ports:
- "6380:6379"
# 后端 API 程序
chatgpt-plus-api:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-api:版本号
container_name: chatgpt-plus-api
restart: always
depends_on:
- chatgpt-plus-mysql
- chatgpt-plus-redis
environment:
- DEBUG=false
- LOG_LEVEL=info
- CONFIG_FILE=config.toml
ports:
- "5678:5678"
- "9999:9999"
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- ./conf/config.toml:/var/www/app/config.toml
- ./logs:/var/www/app/logs
- ./static:/var/www/app/static
# 前端应用
chatgpt-plus-web:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/chatgpt-plus-web:版本号
container_name: chatgpt-plus-web
restart: always
depends_on:
- chatgpt-plus-api
ports:
- "8080:8080"
volumes:
- ./logs/nginx:/var/log/nginx
- ./conf/nginx/conf.d:/etc/nginx/conf.d
- ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./ssl:/etc/nginx/ssl
配置好了之后就可以启动容器了
docker-compose up -d
注意,启动容器之后把代码里第十七行的数据库初始化语句映射注释掉- ./mysql/init.d:/docker-entrypoint-initdb.d/
,否则每次重启可能丢失数据。
三、登录地址与首次配置
- 前端访问地址:http://localhost:端口号/chat 使用移动设备访问会自动跳转到移动端页面。
- 后台管理地址:http://localhost:端口号/admin
- 移动端地址:http://localhost:端口号/mobile
- 初始后台管理账号:admin/admin123
- 初始前端体验账号:18575670125/12345678
服务启动成功之后不能立刻使用,需要先登录管理后台 -> API-KEY 去添加一个 OpenAI 或者文心一言,科大讯飞等至少一个平台的 API KEY。
注意:这里如果要用到openAI转发,在对话的api地址填写时后面需要加上 /v1/chat/completions,在绘画的api地址填写时后面需要加上/v1/images/generations
四、高级配置
如果你想配置一些高级功能,比如 MidJourney 绘画,Stable-Diffusion 绘画等功能,只需修改 conf/config.toml
即可。
参数说明
- 如果你不知道如何获取 Discord 用户 Token 和 Bot Token 请查参考 Midjourney 机器人配置。
SdConfig.Txt2ImgJsonPath
的默认用的是使用最广泛的 stable-diffusion-webui (opens new window) 项目的 API,如果你用的是其他版本,比如秋叶的懒人包部署的,那么请将对应的 text2img 的参数报文复制放在res/text2img.json
文件中即可。如果你不知道如何采集绘画参数,请参考 获取 Stable Diffusion 绘画参数。XXLConfig
配置信息获取请参考 XXL-Job环境配置。- 支付宝的配置信息获取请参考 支付宝应用创建。
- MidJourney,Stable-Diffusion AI 绘图,支付宝等功能都需要先把
Enabled
配置成true
才可以使用。
五、平滑升级
# 更新数据库
执行项目根目录下的`database/update-版本号.sql`SQL文件
# 更新版本
更改docker-compose.yaml文件中的镜像版本。
之后重启服务即可。
六、前端页面及静态二维码等修改
前端页面:
静态资源,可改管理员微信二维码或联系方式等:
之后,重新打包部署即可。