本项目最初只是想对GPT-3模型进行一个封装,后来发现了由 acheong08 大佬提供的ChatGPT接口,于是将这个AI小助手接入了ChatGPT,比起GPT-3,可玩性更高啦!
本项目基于Python
和 uni-app
构建,目前只支持 。Android
端使用
更新:
V2.2.3新增后端高并发支持,使用Gunicorn + Redis实现多线程;支持使用DockerCompose构建镜像;前端优化UI。
V2.2.2新增前端设置服务器地址功能;优化UI,适配H5端。
V2.2.0修改后端接口;新增查询在线机器人数量的接口;新增本地缓存,避免每次使用都需要手动输入帐号密码。
V2.1.0支持使用ChatGPT的帐号密码登录,可以部署到服务器后供多人使用。
使用方法如下:
拉取本仓库到服务器上(需要能访问外网,最好是境外服务器,并且要安装好docker和docker-compose)
没有安装docker和docker-compose可以参考以下命令
安装docker:
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable docker
sudo systemctl start docker
安装docker-compose:
截至项目开发时,docker-compose最新版本为:2.16.0,可在此处查看最新版本,将下面的版本版本号替换即可。
sudo curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
拉取源代码
git clone https://github.com/Fangnan700/AI-aides.git
cd ./AI-aides/ai_aides(Server)
根据需要修改Dockerfile、docker-compose.yml和gunicorn.conf
# 基础镜像
FROM python:3.10
# 运行目录
WORKDIR /app
# 根据依赖包列表安装依赖
COPY requirements.txt /app/
RUN pip install --upgrade --no-cache-dir -r requirements.txt
# 复制所有文件到镜像内
COPY . /app
# 暴露5000端口到宿主机
EXPOSE 5000
# 项目启动命令,使用gunicorn启动
CMD ["gunicorn", "-c", "gunicorn.conf", "app:app"]
version: "1"
services:
web:
build: .
command: gunicorn -c gunicorn.conf app:app
volumes:
- .:/app
ports:
- "80:5000"
depends_on:
- redis
redis:
image: redis:latest
ports:
- "6379:6379"
根据需要修改docker-compose.yml
中web
的ports
,即可将服务运行在宿主机的指定端口。
# gunicorn.conf
# 并行工作进程数
workers = 4
# 指定每个工作者进程的线程数
threads = 4
# 监听内网端口5000
bind = '0.0.0.0:5000'
# 设置守护进程,将进程交给supervisor管理
daemon = 'false'
# 工作模式协程
worker_class = 'gevent'
# 设置最大并发量
worker_connections = 2000
# 设置进程文件目录
pidfile = './gunicorn.pid'
# 设置访问日志和错误信息日志路径
accesslog = './log/gunicorn_acess.log'
errorlog = './log/gunicorn_error.log'
# 设置日志记录水平
loglevel = 'warning'
注意!!!
如果运行时报错:访问Redis服务被拒绝,请按以下步骤修改app.py
- 在服务器上运行
ifconfig docker0 | grep "inet " | awk '{ print $2 }
查看docker0
的IP - 将
app.py
中的redis连接配置修改为docker0对应的IP
redis_pool = redis.ConnectionPool(host='<your docker0's IP>', port='6379', decode_responses=False)
redis_p = redis.Redis(host='<your docker0's IP>', port=6379, decode_responses=False)
构建镜像
sudo docker-compose build
开始运行
sudo docker-compose up
-
拉取本仓库到本地(需要Nodejs环境,HBuilder X编辑器)
-
在服务器设置中配置后端服务器地址。
-
通过 HBuilder X 云打包apk,安装到手机即可。
注意:
H5页面由Uniapp直接导出,代码经过混淆,比较难读懂,但只需要修改以下两个地方即可直接部署:
1、pages-main-login-login.70f92203.js
// 这里的接口根据自己的服务器来修改
url: "<your server's host and port>/login",
2、pages-main-form-index.5990799a.js
// 这里的接口根据自己的服务器来修改
url: "<your server's host and port>/chat",