介绍
- GeekAI 基于AI大语言模型的AI 助手全套开源解决方案,自带运营管理后台,开箱即用。集成了 OpenAI, Claude, 通义千问,Kimi,DeepSeek等多个平台的大语言模型。
- 基于极客学长大佬的开源项目geekai 二次开发而来。首先感谢大佬的开源,致敬。大佬的项目地址:https://gitee.com/blackfox/geekai
- 我就是把前台页面修改了下,后端go语言我换成了python语言。
- 后端go web框架gin 我换成了python web框架Django。
- 我只是修改了大佬的一部分功能。
- 我这个是基于geekai v4.0.5版本二次开发的。
- 哈哈 bug比较多,本着学习的目的。欢迎大家可以一起交流,学习。
软件架构
-
前端:Vue3 + element-plus
-
后端:python3.11 + django
-
mysql: 8.0
-
redis: 6
-
daphne: 4.1.2
-
channels: 4.1.0
-
celery: 5.4.0
-
邮件服务,邮箱登录需要用到,也可不用
-
短信服务,短信登录需要用到,也可不用
-
支付宝支付(企业用户),也可不用
-
微信支付(企业用户),也可不用
安装后端
1,先安装python3.11
因为python3.11 不能yum安装,所以咱们就编译安装
# 先安装依赖
yum groupinstall "Development Tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
# 下载软件包
wget https://mirrors.aliyun.com/python-release/source/Python-3.11.0.tgz
tar xf Python-3.11.0.tgz
cd Python-3.11.0
# 编译安装
./configure
make
make altinstall # altinstall 为了不影响系统python,这样两个python都会同时存在
# 新建env环境,这样就可以每一个项目都有自己的环境,不会影响到其他的项目
python3.11 -m venv py311-geekai-django
source /root/flc-code/py-all-env/py311-geekai-django/bin/activate
# 如果退出虚拟环境就是 deactivate
# 这样python3.11 就安装好了
2,安装一些系统依赖包
# 需要安装mysql-devel,因为mysqlclient需要用到
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql
yum install mysql-devel --nogpgcheck -y
3,安装项目依赖
# 我直接用的豆瓣源 加速安装,国内比较慢
cd backend/
pip install -r requirements.txt -i https://pypi.doubanio.com/simple
4,修改配置
Django的配置文件在项目的settings.py文件。vim backend/ChatgptServer/settings.py
# mysql 配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'chat_gpt_test',
'USER': 'root',
'PASSWORD': '12345678',
'HOST': '10.8.100.113',
'PORT': '3306',
'OPTIONS': {
# 'init_command': "SET sql_mode='STRICT_TRANS_TABLES', time_zone = '+08:00'",
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
},
}
}
# websock 配置
ASGI_APPLICATION = "ChatgptServer.asgi.application"
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("redis://:[email protected]:6379")],
},
},
}
# 阿里云短信服务
ALI_SMS_CONF = {
"AccessKey": "LTAI5t7AkjSECLU6Bidsadehxsn",
"AccessSecret": "fTLDxVwSeydsadsafxjARJM2r53aq",
"SignName": "ai系统",
"TemplateCode": "SMS_471500265"
}
# 异步任务配置 celery
CELERY_BROKER_URL = 'redis://:[email protected]:6379/2' # 使用 Redis 作为消息队列
CELERY_RESULT_BACKEND = 'redis://:[email protected]:6379/2'
CELERY_TIMEZONE = 'Asia/Shanghai'
# 微信支付
WECHAT_PAY_CONFIG = {
"Enabled": True,
"AppId": "wx3614dsadfq399975", # AppId
"MchId": "15512441", # 商户ID
"SerialNo": "1D1061712edeasd2410D8E6DE8D1446644", # API 证书序列号
"PrivateKey": "cert/apiclient_key.pem", # 将私钥拷贝到对应的目录
"ApiV3Key": "kXnZPHg2Z213fdscsdcKeFbjG", # APIv3密钥
"NotifyURL": "https://cs.dnzx.com/api/payment/wechat/notify", # 支付回调地址
# "NotifyURL": "https://dev.dnzx.com/api/payment/wechat/notify", # 支付回调地址
"ReturnURL": ""
}
# 支付宝配置
ALI_PAY_CONFIG = {
"Enabled" : True, # 启用支付宝支付通道,
"UserId" : "208872102132481", # 商户ID
"AppId" : "202143141238058", # App Id2021004198638058
"PrivateKey" : "cert/alipay/app_private_key_test.pem",
"PublicKey" : "cert/alipay/alipay_public_key_test.pem",
"NotifyURL": "https://cs.dnzx.com/api/payment/wechat/notify", # 支付回调地址
# "NotifyURL": "https://dev.dnzx.com/api/payment/alipay/notify", # 支付回调地址
}
5,迁移数据库
python manage.py makemigrations
python manage.py migrate
6,初始化mysql数据
# 初始化数据在backend/init-sql.sql里面
# 连接数据库 执行sql就行
# 后台管理的密码是admin/12345678
7,启动后端程序
# 启动asgi服务
daphne ChatgptServer.asgi:application -b 0.0.0.0 -p 8080
# 启动异步任务
# 这个是为了 dell画图用的,因为画图使用了异步任务。画图时间会比较慢
celery -A CeleryProject worker --loglevel=INFO
这样咱们的后端程序 就启动起来了,正常应该没有啥问题,有问题可以关注我的仓库提交问题。或者关注我的公众号私信我。
安装前端
1,安装node v16.5
咱们使用nvm管理多个版本的node
国内使用github安装nvm比较慢,咱们之间使用gitee大佬的项目:nvm-cn
bash -c "$(curl -fsSL https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)"
# 这样就安装好了nvm
# 咱们再安装node
nvm install v16.5.0
2,安装依赖
cd frontend/web
# 咱们在安装nvm-cn的时候,这个项目就直接把国内源给配置好了,安装应该会很快
npm install
3,修改配置
vim frontend/web/.env.development
# api接口
VUE_APP_API_HOST=http://10.8.100.113:8080
# websocket地址
VUE_APP_WS_HOST=ws://10.8.100.113:8080
# 网站前缀
VUE_APP_KEY_PREFIX=ChatPLUS_DEV_
VUE_APP_TITLE="Chatgpt"
VUE_APP_VERSION=v1.0.0
4,启动服务
npm run dev
5,访问服务
http://ip:8888
# 后端地址
http://ip:8888/admin
# 账号密码
admin/12345678
Docker安装
安装docker
咱们就使用阿里云的centos7安装办法
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils
# Step 2: 添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Step 4: 开启Docker服务
sudo service docker start
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
后端
# 后端dockerfile在 backend下面的Dockerfile文件
cd backend
docker build -t geekai-django:v1 .
# 然后就会出现镜像geekai-django:v1
Dockerfile文件内容
FROM python:3.11-slim-bullseye
ARG APT_MIRROR=https://mirrors.aliyun.com
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked,id=core-apt \
--mount=type=cache,target=/var/lib/apt,sharing=locked,id=core-apt \
sed -i "s@http://.*.debian.org@${APT_MIRROR}@g" /etc/apt/sources.list \
&& rm -f /etc/apt/apt.conf.d/docker-clean \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apt-get update \
&& apt-get -y install --no-install-recommends pkg-config \
default-libmysqlclient-dev \
default-mysql-client \
gcc
# 设置环境变量
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# 创建工作目录
WORKDIR /app
# 安装依赖
COPY requirements.txt /app/
RUN pip install --upgrade pip && pip install -r requirements.txt -i https://pypi.doubanio.com/simple
# 拷贝项目
COPY . /app/
前端
# 前端的Dockerfile在frontend下面
cd frontend
# 然后执行脚本build-images.sh
# 你需要修改脚本里面的镜像名称啥的
dockerfile文件
# 前端 Vue 项目构建
# 其实编译完后 就是一个dist目录
# 咱们把目录放到nginx下面就行
FROM registry.cn-beijing.aliyuncs.com/fanlichun/tedu-chat-web:nginx-1.20.2
WORKDIR /var/www/app
COPY ./web/dist /var/www/app/dist
EXPOSE 80
EXPOSE 443
启动
# 关于启动的话,可以直接docker一个一个的启动
# 我这里提供docker-compose.yml文件启动
# 文件:backend/deploy/docker-compose.yml
# 你需要去修改yml文件里面的地址 以及新建一些目录
# 然后咱们就可以启动了
docker compose up -d
docker-compose.yml文件
version: '3.11'
services:
api:
image: teduchat-api:v1.0.2
container_name: teduchat-api
restart: always
command: daphne ChatgptServer.asgi:application -b 0.0.0.0 -p 8080
ports:
- "8080:8080"
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /data/teduchat-api/media:/app/media
- /data/teduchat-api/wechatpay-logs:/app/logs
- /data/teduchat-api/wechatpay-cert:/app/cert
task:
image: teduchat-api:v1.0.2
container_name: teduchat-task
restart: always
command: celery -A CeleryProject worker --loglevel=INFO
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /data/teduchat-api/media:/app/media
web:
image: teduchat-web:v1.0.2
container_name: teduchat-web
ports:
- "80:80"
- "443:443"
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
- /data/teduchat-web/nginx/conf/conf.d:/etc/nginx/conf.d
- /data/teduchat-web/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /data/teduchat-web/nginx/logs:/var/log/nginx
- /data/teduchat-web/nginx/conf/ssl:/etc/nginx/ssl
- /data/teduchat-api/media:/var/www/app/media
Q&A
1,关于OpenAI的模型
这个需要大家去找代理,进行访问。因为国内访问不了api
2,关于国内的模型
国内的模型,只要支持openai 的 SDK就可以在这个平台添加使用。
因为我这里直接用的openai 模块。没有用各大厂商的api。
3,关于一些bug
因为我是本着学习的目的去改写的,所以存在很多bug。
但是大家可以一起交流,学习。
4,关于问题
可以提交仓库的lssues。或者关注我的公众号私信我
我的公众号

项目地址
我的博客圆
我的开源项目
-
微信公众号自动发布文章,小绿书,自动发布热搜,利用AI自动发布种草小绿书 https://gitee.com/ccsang/wxmp
-
jumpserver二次开发,简易工单管理。node,mysql,redis申请权限 https://gitee.com/ccsang/jumpserver-ticket
平台截图展示
首页











