部署准备
前需要准备这些内容、后续的升级部署将会在每个版本陆续追加、准备好对应内容将会使你的部署更顺畅
1.服务器
如果是新购买建议使用高版本系统、因为项目是基于node构建、高版本对NodeJs的支持更加友好
2.基础环境
因为是基于node的项目、如果您没有部署知识、我们会在文档中提供基于PM2的Node部署方式和基于Docker和docker-conpose的部署方式。你可以在两者之间选择。
- 如果使用docker部署前请安装好docker和docker-compose
- 如果使用pm2部署请预先安装好nodejs > 16.16、安装好pnpm包管理器、安装好pm2
3.mysql
如果您不使用docker-compose部署的情况下、请自备mysql数据库!建议数据库版本使用高版本数据库、防止意外问题、演示站使用版本为8.0.20.
4.openai账号
一个gpt的账号是必须的、否则你可能不能使用基础服务
5.邮件服务
您需要准备一个smtp邮件服务、不限制平台、例如163、qq、腾讯云、阿里云等等邮件服务、这也是必须的,有这些内容后才可以正常发送邮件
6.腾讯云对象存储账号
我们的图片资源、包含商品图片、用户信息、绘画图片等等内容需要存储在此、如果没有此内容、可能对图片无法正常保存。
7.redis
系统中需要使用redis服务 对应配置在env文件之中 如果你是宝塔用户 在面板商店里可以搜索redis一键安装即可 不需要任何配置
8.MJ账号
对于MJ绘画,我们需要准备一个账号、以便于使用官方的绘画服务!
9.百度统计账号
百度统计提供了免费的统计服务、我们只需要申请服务即可享受免费的流量统计,你可以自行前往百度统计官方平台申请、将用于首页的统计量访问图表展示、这是免费的服务、百度就可以找到很全面的教程、申请入口是这里:百度统计申请地址
10.百度翻译服务
我们不强制开通此服务、如果开通并且配置后、将会把绘画的描述词在服务端为你转化为英文、帮助其能更好的绘画出理想的图片、当然这不是必须的、不配置的情况我们默认不翻译、百度翻译服务申请地址、请申请通用文本翻译服务!
11.百度云敏感词服务
这也不是必须的、我们不强制你开启此服务、我们提供了自定义敏感词、当然我们个人的词库可能并不完善、为什么使用百度云(因为免费赠送五万条)、服务申请地址
12.微信登录 公众号互动
这里需要一个官方的公众号【必须是服务号】需要花费300、不强制、没有后台不配置则不展示微信登录、不提供微信交互!
如果您已经准备好了我们需要的东西、那么我们可以开始正式部署了
基础env环境配置
在代码中我们提供了基础 环境变量文件配置文件env.example,使用前先去掉后缀改为.env文件即可,
我们在env环境配置文件只需要配置如下东西。
- 授权码授权ip配置
- 邮件服务配置
- mysql数据库
这三项是基础配置、mysql与授权是必须的、在配置mysql与授权的情况下项目才可以启动成功、邮件服务可以后续追加。
- mysql数据库
项目部署(宝塔部署方式)
1.添加网站
一般我们使用宝塔进入到网站页面 点击添加网站 添加一个 你的域名
此时我们就创建了一个网站、此时我们点击这个域名打开
此时我们同样也在www/wwwroot目录中生成了同名的文件夹、我们点击侧边栏的文件进入到这个目录当中
我们进入到这个目录、可以通过上传文件或者通过命令下载的方式将源码传到这个目录、例如我们在终端直接下载源码
wget https://index.jiangly.com/NineAi/v2.3.0.zip
下载不同版本修改版本号即可
2.安装node环境
此时再次点开终端、我们需要去下载依赖包、在下载前确定我们需要有node环境
下载后你可以手动解压或者命令行解压、解压之后刷新我们就有全部文件了
node -v
npm -v
pnpm -v
可以检测
是否有这些环境、如果有会是这样的
如果没有呢、就需要我们自己下载了:
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install nodejs -y
依次执行两条我们就可以安装好node环境(如果有就忽略)
然后安装pnpm、pm2如果有就忽略
npm i pm2 pnpm -g
此时我们环境准备完毕、需要配置env环境文件、将你的授权码和授权信息填入、然后去创建一个mysql数据库(数据库版本最低需要5.7|5.7是可以的)
其次去软件商店安装redis、默认安装不需要改任何配置即可、
将mysql、redis填入 .env文件、并且将文件后缀删掉、文件名字就是.env
3.终端执行任务
然后点开终端执行两步即可
pnpm i
pnpm start
两部执行完项目就启动成功了
项目默认是9520端口
我们可以输入pm2 log
查看详细日志、看到下图表示成功!
目前我们通过ip:9520
就可以访问了、但是我们需要域名访问、所以前往最开始的添加网站添加一个方向代理即可、就可以通过域名访问网站了
只需要添加这样一个代理、我们就可以通过域名访问了
- 默认前台地址:
域名地址
- 默认前台地址:
- 默认后台地址:
域名地址/sparkai/admin
- 默认后台地址:
- 默认管理员账号:
super
- 默认管理员账号:
此时我们就安装完成了
使用docker部署教程
部署
若服务器没有docker,请先安装,官方教程:https://docs.docker.com/engine/install
x86架构服务器(最新版v2.3.0)
目前市面上大多数服务器都是x86架构
1.复制下方的docker-compose.yml,修改好配置,并上传至你的服务器
version: '3'
services:
sparkai:
# 以后只需要修改此处的版本号即可更新镜像
image: registry.cn-shanghai.aliyuncs.com/zimablue/nineai:v2.3.0
container_name: nineai
restart: always
environment:
# 服务器ip或域名
sparkai_AI_HOST: xxx
# 授权码
sparkai_AI_KEY: xxx
TZ: Asia/Shanghai
# mysql
DB_HOST: xxx
DB_PORT: xxx
DB_DATABASE: xxx
DB_USER: xxx
DB_PASS: xxx
# Redis
REDIS_HOST: xxx
REDIS_PORT: xxx
REDIS_PASSWORD: xxx
# mailer 邮件服务
MAILER_HOST: xxx
MAILER_PORT: xxx
MAILER_USER: xxx
MAILER_PASS: xxx
MAILER_FROM: xxx
# mj并发数
CONCURRENCY: 3
# jwt token
JWT_SECRET: xxx
# jwt token 过期时间
JWT_EXPIRESIN: 7d
# 自定义端口
PORT: 9520
ports:
- "9520:9520"
2.在docker-compose.yml的同级目录执行
docker compose -f docker-compose.yml up -d
arm架构服务器(最新版v2.3.0)
常见arm服务器:树莓派,香橙派。。。
用法同上,只需将docker-compose.yml中的image换成
image: registry.cn-shanghai.aliyuncs.com/zimablue/nineai:v2.3.0-arm
后续版本更新
提示
1.若docker版本过低,可能会报错docker compose命令不存在,请尝试如下命令:
docker-compose -f docker-compose.yml up -d
如果你的服务器架构比较冷门,请提供服务器供编译docker镜像
常见问题
如何配置腾讯云对象存储cos
进入到腾讯云搜索对象存储、我们需要配置四个 参数、在秘钥管理里面可以拿到 SecretId和SecretKey。
剩下两个参数分别是存储桶的名称和 节点位置您可以参考下图信息
如果还没有存储桶、请创建存储桶、权限选择公有读私有写即可、其他不限制。
配置完四个参数后、就可以使用存储服务了。
如何配置MJ的所有信息
mj对应了七个必填参数分别是下图
剩余两个参数
1: 接口单次限制时间、表示用户请求一次这个接口距离下次允许请求的限制时间
2: 系统默认携带了一个代理、如果你是国内服务器需要开启代理、如果是国外服务器则不需要代理
- 参数获取方法
得到MJ账号之后、参考此地址创建一个自己私人的服务器、并且邀请一个官方的机器人加入房间 https://zhuanlan.zhihu.com/p/603364613、这样就可以加入房间了、
- 参数获取方法
- 先打开控制台。点击Network如果是中文就是网络那一栏
- 此时我们通过命令 /imagine命令 随便输入一点prompt词 比如下图
- 此时我们通过命令 /imagine命令 随便输入一点prompt词 比如下图
然后发送控制台就会看到这样一条接口,如图
复制接口发送的内容、然后找个地方格式化一下就行、会得到如下内容
箭头上我们可以看到六个参数、还剩下一个token从请求头获取如图
此时我们得到了七个参数、将其填入MJ配置、他们的对应关系是
{
application_id: '应用程序ID',
guild_id: '工会ID',
channel_id: '通道ID',
session_id: '会话ID',
version: '版本ID',
id: 'ID信息',
authorization: '授权令牌',
};
按照此内容填写即可。
使用MJ绘画的前提是已经配置了COS存储服务
为什么没有流式回复
如果使用pm2部署或者使用传统的Node部署、使用了nginx解析了域名、但是没有流式输出、请在nginx中添加
proxy_buffering off;
如何配置百度统计
为什么没有流式回复
如果使用pm2部署或者使用传统的Node部署、使用了nginx解析了域名、但是没有流式输出、请在nginx中添加
proxy_buffering off;
默认端口是多少、我可以修改么?
在env文件中、您可以指定您的端口、我们默认为9520端口。
启动地址是什么、我怎么启动?
当你的项目成功运行之后、我们默认的地址是您的IP+端口即可启动用户端、管理端则是ip+端口/admin即可访问管理端!
默认账号是什么、我怎么登陆
参考上图、项目启动过程中我们默认为您生成了两个账号
- admin演示账号,只有查询缺陷没有查改删权限、类似演示地址演示账号 admin 123456
- 超级管理员账号, 拥有全部权限 账号 super 密码 nine-super
我如何修改账号用户名密码
目前由于时间原因、我们在管理端的修改信息入口暂未开放、如果需要修改您的管理账号密码可以前往用户端、登录后可以前往个人中心修改您的账户密码
用户端提示未配置key、不能聊天怎么办?
我们在后台管理中有key池管理、您需要至少配置一个gpt的key才可以正常使用聊天和DALL-E2绘画功能!
用户注册不能发送邮件怎么办?
在启动项目的env文件中需要配置您的smtp服务信息、配置您的发件信息才可以完成邮件的发送、如果只是个人使用、那么管理员账号和admin账号就可以直接登录使用了!
聊天接口一直未响应怎么办?添加key获取不到模型怎么办?
如果你是国外服务器可能不存在这个问题、如果是国内服务器会无法连接openai的网络、请前往后台的 => 系统设置 => 接口设置填写代理地址、既可正常访问、添加key获取不到模型也是同理。
暂无评论内容