一、前言
SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。
那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧!
SparkAi程序使用Nestjs和Vue3框架技术,持续集成AI能力到AIGC系统!
核心功能:
程序已支持ChatGPT3.5/4.0提问、AI绘画、Midjourney绘画(全自定义调参)、Midjourney以图生图、Dall-E2绘画、思维导图生成、Prompt知识库(可自定义训练)、AI绘画广场、邀请+代理分销模式、用户每日签到功能、提问记录绘画记录保存,微信公众号+邮箱+手机号注册登录等。
二、系统演示
三、功能模块
3.1 GPT模型提问
已支持GPT联网提问
3.2 应用工作台
prompt知识库
支持用户自定义知识库
3.3 Midjourney专业绘画
3.4 Dall-E2绘画
3.5 思维导图生成
四、源码系统
4.1 前台演示站点
4.2 SparkAi源码下载
4.3 SparkAi系统文档
4.4 详细搭建部署教程
五、详细搭建教程
以下教程使用Linux宝塔搭建部署
5.1 基础env环境配置
在代码中我们提供了基础 环境变量文件配置文件env.example,使用前先去掉后缀改为.env文件即可, 我们在env环境配置文件只需要配置如下东西。
-
授权码、ip配置
-
邮件服务配置
-
mysql数据库 这三项是基础配置、mysql与授权是必须的、在配置mysql与授权的情况下项目才可以启动成功、邮件服务可以后续追加。
5.2 env.env文件配置
javascript
# 服务器ip (必填项)
SPARK_AI_HOST=
# 授权码 (授权码留空,可启动运行体验系统半小时)
SPARK_AI_KEY=
# mysql
DB_HOST=localhost
DB_PORT=3306
DB_USER=数据库用户名
DB_PASS=数据库密码·
DB_DATABASE=数据库名
DB_LOG=false
DB_SYNC=true
# mailer 邮件服务
MAILER_HOST=smtp.163.com/smtp.qq.com (选择自己的发信服务器地址,网易邮箱或者qq邮箱)
MAILER_PORT=465
MAILER_USER=发信邮箱
MAILER_PASS=邮箱发信密钥
MAILER_FROM=发信邮箱
# Redis
REDIS_PORT=6379
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=
# mj并发数
CONCURRENCY=3
# jwt token
JWT_SECRET=chat-spark
# jwt token 过期时间
JWT_EXPIRESIN=7d
# 接口文档前缀
SWAGGERPREFIX=/docs
# 自定义端口
PORT=9520
六、环境安装
-
Nginx >= 1.19.8
-
MySQL >= 5.7或者MySQL 8.0
-
PHP-7.4
-
PM2管理器 5.5
-
Redis 7.0.11
-
Node版本:>=16.19.1
详细教程:
6.1 确定Node版本
使用PM2切换Node版本(必须)
切换Node版本为:v16.19.1
6.2 安装pnpm模块
6.3 安装Redis
七、部署跑起来
7.1 新建站点
宝塔 - 网站 - 添加站点
7.2 配置SSL
7.2.1 使用自己的ssl证书,开启HTTPS安全访问
7.2.2 Let's Encrypt 证书申请
如果自己没有证书,可以使用宝塔免费证书,申请Let's Encrypt
7.3 上传系统源码
删除原始文件
将程序上传并解压到网站根目录下
7.3.1 配置.env文件
在宝塔直接双击**.env.example**文件编辑,或在终端vim编辑
配置完成后将文件后缀删掉、文件名字就是**.env**
7.4 启动项目
7.4.1 开启端口
宝塔面板安全开启9520 端口和3306端口
7.4.2 安装依赖
在网站根目录下进入ssh终端
使用 pnpm i 安装依赖
7.4.3 启动项目
使用 pnpm start启动项目
7.4.4 查看启动日志
输入 pm2 log 查看详细日志、看到下图表示成功!
7.4.4 添加反向代理
添加 9520 端口反向代理,宝塔安全需要开启该端口,不然无法访问
八、测试使用系统
部署完成!此时通过域名即可访问SparkAi系统了!
8.1 管理后台
默认前台地址为域名地址 默认后台地址则为:域名地址/sparkai/admin
默认超级管理员账号是 super spark123
此时我们就安装完成了!
8.2 访问测试系统
完成!