|
JYWQJUN
| 来自北京
一、ZliaoAI系统介绍:
主要功能介绍
本系统使用 Nestjs 和 Vue3 搭建的 AIGC 生态社区开发。数据库底层使用 MYSOL,WEB环境使用 PHP7.3 和niginx1.20.2,下面是简单功能个绍,还有更多细节无法一介绍,需要你自己下载并安装才能体验。
●支付功能:站点集成了微信官方支付,方便的易支付和码支付系统及第三方支付虎皮椒等。
●推广系统:站点集成了一级分销返佣功能,前端用户登陆后点击邀请好友赚取返佣,后台可只有开启关闭该功能。
●防洪链接:站点集成了域名跳板 以及QQ或者微信内部打开跳转浏览器的功能界面美观:站点完美支持PC端和手机端,支持手机电脑不同布局页面自适应
●对接绘画:站点集成了Midjourney绘画,GPT绘画模型API。对接GPT:站点集成了GPT3.5和GPT4.0两大语言模型
●发卡系统:站点集成了发卡功能,自定义生成普通卡、引流卡密、套餐卡密。数据面板:站点集成了数据罗盘,实时监控流水,注册用户,付费用户等等。.:
●通知功能:站点集成了自定义网站客服、网站公告等等通知功能
●密钥查询:站点集成了密钥一键查询功能
●安全功能:站点集成了百度敏感词,及自定义违禁词功能。
●注册功能:站点集成了邮箱验证注册
●角色扮演:站点集成了自定义调教人物脚本和,管理后台自定义添加,前台用户也可自定义添加属于自己的Prompt角色预设
功能支持:
●支持邮件激活账号
●支持上下文对话
●精准统计绘画token、记录所有用户消费排行
●支持模糊匹配自定义回复消息
●支持按此按张按余额多种扣费方式
●支持套餐卡密生成及自定义卡密生成
●支持自定义配置发卡地址
●支持网站信息配置、名称、客服QV
●支持自定义邮件模板,发送定制化邮件内容
●支持自定义公告信息,支持md格式、html格式
●实时公告
●支持Dell模型绘画,及SD绘画
●支持注册配置自定义赠送额度
●支持生成专属邀请码邀请用户双方共同获得额度
●支持敏感词配置,记录敏感词触发行为状态IP等
●支持手动锁定封禁用户账号
●支持自定义绘画内容推荐支持多级权限区分
●支持特定用户有权访问4.0API,指定名单访问指定模型
●接入SD、M]等更加优质的绘画服务
●支持站内支付宝微信支付
●用户端接入、应用商店、更加精准的prompt的预设分类
●接入微信登录|公众号登录
●用户端自主选择模型
●M]绘画流程优化简化
二、ZliaoAI系统演示站:
(1).演示站点:https://zl.qumao518.vip
(2). 演示系统后台 点我前往
演示后台账号密码:admin 123456
(3). 系统源码下载:点击下载
三、部署准备文档
阅读说明
请仔细阅读该文档、在部署前需要准备这些内容、后续的升级部署将会在每个版本陆续追加、准备好对应内容将会使你的部署更顺畅
服务器
基础内容需要一台服务器、演示站点使用的是centos9.0系统的服务器、当然并不限制使用任何服务器、如果是新购买建议使用高版本系统、因为项目是基于node构建、高版本对NodeJs的支持更加友好
基础环境
因为是基于node的项目、如果您没有部署知识、我们会在文档中提供基于PM2的Node部署方式和基于Docker和docker-conpose的部署方式。你可以在两者之间选择。
- 如果使用docker部署前请安装好docker和docker-compose
- 如果使用pm2部署请预先安装好nodejs > 16.16、安装好pnpm包管理器、安装好pm2
mysql
如果您不使用docker-compose部署的情况下、请自备mysql数据库!建议数据库版本使用高版本数据库、防止意外问题、演示站使用版本为8.0.20.
openai账号
一个gpt的账号是必须的、否则你可能不能使用基础服务
邮件服务
您需要准备一个smtp邮件服务、不限制平台、例如163、qq、腾讯云、阿里云等等邮件服务、这也是必须的,有这些内容后才可以正常发送邮件
腾讯云对象存储账号
我们的图片资源、包含商品图片、用户信息、绘画图片等等内容需要存储在此、如果没有此内容、可能对图片无法正常保存。
redis
系统中需要使用redis服务 对应配置在env文件之中 如果你是宝塔用户 在面板商店里可以搜索redis一键安装即可 不需要任何配置
MJ账号
对于MJ绘画,我们需要准备一个账号、以便于使用官方的绘画服务!
百度统计账号
百度统计提供了免费的统计服务、我们只需要申请服务即可享受免费的流量统计,你可以自行前往百度统计官方平台申请、将用于首页的统计量访问图表展示、这是免费的服务、百度就可以找到很全面的教程、申请入口是这里:百度统计申请地址
百度翻译服务
V1.5版本已升级使用chatgpt进行翻译,百度翻译仅在使用普通绘画的描述词为你转化为英文、帮助其能更好的绘画出理想的图片、当然这不是必须的、不配置的情况我们默认不翻译、百度翻译服务申请地址、请申请通用文本翻译服务!
百度云敏感词服务
这也不是必须的、我们不强制你开启此服务、我们提供了自定义敏感词、当然我们个人的词库可能并不完善、为什么使用百度云(因为免费赠送五万条)、服务申请地址
微信登录 公众号互动
这里需要一个官方的公众号【必须是服务号】需要花费300、不强制、没有后台不配置则不展示微信登录、不提供微信交互!
四、系统安装
宝塔PM2搭建教程
本文假设您的有一台云主机,且上面有“宝塔”面板,或者您会手动操作来代替“宝塔”面板的动作
下文中的终端指的是你在“宝塔”面板左侧“终端”页面,或者通过Xshell等工具连接的终端
下文中的域名为笔者的网站目录,操作时自行替换成自己的
安装成功后的地址
用户端 http://ip:9520
管理端 http://ip:9520/nineai/admin
默认演示账号: admin 123456
默认超级管理员: super nine-super
环境配置
在宝塔的软件商店里面安装所需的环境
- Nginx >= 1.19.8
- MySQL >= 5.7或者MySQL 8.0
- PHP-7.4
- PM2管理器 5.5
- Redis 7.0.11
- Node版本:>=16.19.1
Node版本
使用PM2切换Node版本(必须)
安装pnpm模块
基础配置
1、新建站点
宝塔 - 网站 - 添加站点
2.配置SSL
使用自己的ssl证书
Let’s Encrypt 证书申请
如果没有证书,就使用宝塔免费证书,申请Let’s Encrypt
3.把程序上传并解压到网站目录,如下图
4、env配置
在代码中我们提供了基础 环境变量文件配置文件env.example,使用前先去掉后缀改为.env文件即可, 我们在env环境配置文件只需要配置如下东西。
- 授权码授权ip配置
- 邮件服务配置
- mysql数据库 这三项是基础配置、mysql与授权是必须的、在配置mysql与授权的情况下项目才可以启动成功、邮件服务可以后续追加。
授权请联系作者或者代理(在代理处购买售后请联系代理、官方不负责代理的售后)
作者微信:lzgzs168 、qq:124628086
# 服务器ip 你的服务器ip ZLIAO_AI_HOST= # 授权码 找开发者拿授权码 ZLIAO_AI_KEY= # mysql 宝塔搭建新数据库 DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASS=chat-nine-ai-pass DB_DATABASE=chatgpt DB_LOG=false DB_SYNC=true # mailer 邮件服务 MAILER_HOST=http://smtp.163.com 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-cooper # jwt token 过期时间 JWT_EXPIRESIN=7d # 接口文档前缀 SWAGGERPREFIX=/docs # 自定义端口 PORT=9520
在宝塔直接双击.env.example文件编辑,或在终端vim编辑
授权码:授权码留空可正常运行体验系统(全部功能)一小时
配置完成后将文件后缀删掉、文件名字就是.env
5、安装
通过终端切换到网站目录
cd /www/wwwroot/zl.qumao518.vip(换成你的域名)
或者文件,网站主目录,终端
没有特殊声明的情况下,下文的命令都是在此目录执行
输入:pnpm install进行安装,没有报错的话是类似下面这样的pnpm install进行安装,没有报错的话是类似下面这样的
pnpm start进行启动
如果你的配置文件填错了可以使用pm2 stop pm2.conf.json停止并更改后重新pnpm start启动
pm2 log看到以下日志就是成功了
放通你的防火墙,把你所用到的端口开放
用户端 http://ip:9520 管理端 http://ip:9520/nineai/admin 默认演示账号: admin 123456 默认超级管理员: super zliao-super
然后访问http://你的ip:9520/
前端样式:
后端样式:
6、接入域名
反向代理一下,如果要加SSL记得先把反代关了,挂上SSL后再打开,然后你的网站就可以通过网站访问了
五、系统功能模块
1、用户管理
用户数据管理
用户信息展示,可以通过用户名称,邮箱及状态进行搜索
用户帐户明细
网站用户的账户明细表,可以快速找到充值用户类型
用户注册管理
设置关闭邮箱验证和相关注册赠送及邀请赠送信息
邮件注册管理
1、.env修改
宝塔文件里面找到.env,双击打开,填写邮件服务信息。
SMTP 邮件服务器地址、SMTP邮件发送端口、SMTP发送邮件用户、SMTP授权码、SMTP发信地址
获取SMTP授权码
以qq邮箱为例,登录邮箱,设置,账户,POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,按照流程开启
2、系统注册邮箱配置
参考演示站,填写进行自己的信息
微信登录配置
1、登录
微信登录账号性质为:认证服务号,认证需要个体或者企业资质,认证费用300元
微信静默登录,后台用户端设置,动态菜单里面,选择不指定首页,否则失效;域名必须通过备案
微信公众平台后台 https://mp.weixin.qq.com/
找到基本设置,开启服务器配置,明文模式,复制APPID和APPSecret配置到后台
注意:记得配置服务器IP白名单
2、功能设置
找到公众号设置
配置网页授权域名、JS安全域名、业务域名(填写安装程序的域名)
验证文件下载后,上传到public目录下 (后续将增加后台直接上传验证文件)
域名填写:安装程序的网址,不用带http://或https://
3.服务器配置(回调设置)
服务器地址:https://.****.com/api/official/notify(*处为自己的安装域名)
令牌(Token):token (这个随意填写和网站后台设置的token保持一致就行)
秘钥:随机生成,和系统后台保持一致即可
4、系统后台配置
后台信息和微信后台保持一致,公众消息参考演示站,自定义
如果提示获取token失败,从头检查配置,网址不能有空格,宝塔里关闭强制https
5、静默登录
手机微信及微信PC内置浏览器打开,直接创建并登录功能
6、网站登录
浏览器登录,弹出二维码,扫描后关注公众号,自动登录。
如果遇到打开不显示二维码或者500,重新刷新即可
7、公众号菜单设置
第三方地址:https://wei.jiept.com/
也可以公众号后台设置好后,在功能设置里面打开自定义菜单
短信验证登录
此处采用阿里云短信服务、请先申请好个人的签名模板以及获取到您的秘钥信息、详细申请方法如下:
当您配置并开启后则表示开启用户端手机号注册的行为!
签到奖励赠送
开启签到奖励则会在用户端展示签到入口、用户每日可签到一次、获得对应下方设置的奖励、注意不能为负数不赠送模块可以填为0!
2、对话系统
系统默认的地址是 https://api.openai.com 、如果你是国内的服务器可能无法访问、您可以使用自己的代理地址、或者免费的 https://open2.aiproxy.xyz 、此处的配置为全局配置、我们可以对单张key进行单独设置、当我们对key不进行设置的时候将会走此处的设置、如果此处也没有设置、系统将会走系统内置默认配置!
建议自建代理地址,避免使用免费地址导致回复速度慢
自建代理教程
一、到任意云服务器厂商购买一台美国服务器,可以是最初级的配置,并安装宝塔+nginx
二、在宝塔建立一个纯静态网站(可以使用任意域名或直接用服务器ip)
三、在宝塔按下图配置反向代理:
目标url为:https://api.openai.com
配置完成后直接打开您的网址即可,后续接口请求可以直接用您的网址充当api接口地址,如:http://62.7.182.135
四、可能需要修改配置文件
以上配置完成后,可以再配置下https证书,不配置的话,直接打开域名会提示502错误
如果不想配置https证书,可以修改反向代理的配置文件解决
找到如下图所示位置(大概第14行),下面添加代码proxy_ssl_server_name on;
所有key会按key绑定的模型自动划分为卡池3模型与卡池4模型、key余额耗尽将会自动锁定、每张key支持单独绑定模型与代理、已经上下文长度设置、如果不设置默认以全局配置为准!
轮训权重是一个来控制该key使用概率的参数,群友经验分享,仅做参考
假设你现在有三个key
A key:权重10
B key:权重15
C key:权重25
那么,在某一次chatgpt的提问中,使用A key的概率为:10/(10+15+25)=20%
依次类推:B key:30%概率,C key:50%概率
如果权重分别为1,2,2的话概率就分别是10%,40%,40%
头部预设
当前消息将会被追加到对话模型的全局预设当中、对应用APP无效、对其他所有绘画生效!
3、数据管理
查看GPT对话内容、Dall-E2绘画、Midjourney绘画的信息,以及前端展示
点击推荐,图片将展示到网站前端的绘画广场
4、订单管理
查询客户支付订单,可以按照名称、支付平台和支付状态进行搜索
5、套餐说明
新版本套餐分为不限时套餐和限时套餐、不限时充值次数永不过期、限时套餐在规定时间未使用完毕将清空、套餐等级为套餐优先级、等级越高价值越高、充值非永久套餐的限时套餐将成为会员、当已经是会员资格的情况下、充值低于自身等级的套餐仅添加自身余额不更新日期、充值大于等于自生等级的套餐的时候、将叠加余额与时间(请仔细阅读),套餐有效时间设为-1即为永久不过期!
卡密管理
可以生成套餐对应的卡密,也可以生成自定义卡密,能查看卡密的状态以及使用人
6、应用管理
首次安装可以通过数据库导入应用参数,图标可以通过后台进行单个添加
资源下载地址:https://pan.quark.cn/s/5022510059d8
所有分类及应用,一旦创建,不建议删除,容易数据库出现错误,切记
登录数据库,登录对应的数据库
上传对应的文件,上传覆盖即可
对应的图标,在后台的应用管理进行修改
应用列表:可以自定义修改应用属性,包括分类、名称、预设、描述、实例内容、上传图标等等
7、分销系统
设置分销佣金比例,默认等级名称
可以针对单个客户修改佣金比例和称呼
8.支付系统
微信支付
在pc端我们会调用native支付、在微信环境内、我们将调用Jsapi支付、请确认您的微信支付已经申请了支付权限、所有的支付通知地址统一为 https://域名/api/pay/notify 将域名修改为您的域名即可!
官方地址:https://pay.weixin.qq.com/,注册账号并登录
1.商户ID:
商户号,如:123456(不带@后面的数字)
微信支付商户平台 -> 账户中心 -> 个人信息 -> 登录账号 就是商户ID
2.Appid:
微信公众平台后台 https://mp.weixin.qq.com/,认证服务号,获取APPid
3.商户秘钥和证书(公钥、私钥)
秘钥官方教程:https://kf.qq.com/faq/180830E36vyQ180830AZFZvu.html
证书申请教程:https://kf.qq.com/faq/180830E36vyQ180830AZFZvu.html
点击下载秘钥,打开压缩包找到对用后缀的文件,用记事本打开,复制粘贴到后台对应信息。
4.支付通知
产品中心,开发配置,填写JS支付和NATIVE支付的回调链接。
支付通知地址统一:https://域名/api/pay/notify
(个人JS支付还添加了https://域名/和https://域名/chat/ 仅做参考。)
注意:http 和https协议务必选择正确,否则会提示当前URL未注册
4.关联服务号
产品中心,AppID账号管理,添加关联,并去认证服务号里面,点击微信支付,通过关联即可
后台信息填写,不要有空格
2.易支付
程序下载地址:https://pan.quark.cn/s/154b95aaec0b
有商户号的,可以自行搭建系统。
3.码支付
群友码支付:pay.changjuyi.com
教程文档:https://www.kancloud.cn/adorer/mymuser/3154709
4.虎皮椒
官网: https://www.xunhupay.com/
支付通知地址: https://域名/api/pay/notify
9、MJ绘画管理
1、绘图历史
可以查看绘图历史任务,包括用户、状态、指令、进度、推荐图片等功能,点击推荐图片后,对应图片将出现在绘画广场,所有用户可以查看并复制你的指令。
2、参数配置
先熟悉MJ的使用方法:https://www.zcool.com.cn/article/ZMTUyODQ0MA==.html
MJ绘图需要找到对应的七个必填参数
1、获取MJ账户后,自行登录,地址:https://discord.com/app
2、新建自己的服务器,点击+号,新建,仅供自己使用,输入名称,创建
3、点击官方图标,右侧找到机器人(没有人员列表的点击上方两个小人图标),点击机器人,添加至服务器,选择自己的服务器名称,添加成功
4、获取参数
新创建的服务器,右侧有拉进来的机器人,浏览器打开开发模式(F12)输入框输入:/imagine 加上一段英文描述词,回车发送以后,按图获取authorization参数
再次点击载荷,复制下面数据
打开解析网站:https://www.bejson.com/explore/index_new/https://www.bejson.com/explore/index_new/
讲复制的代码粘贴进去,获得6个参数信息。
后台填写,顺序不是一样的,严格按照英文对应填写并保存,注意空格,所有指令问题,都是代码填写错误。
3、代理配置
1、默认代理配置
代理是针对国内服务器设置,存储桶是国内的,也需要配置,全部都是国外的可以不用添加
默认代理地址:http://172.247.48.137:8000 或者 https://mj-proxy.xsifan.cn
2、自己配置代理
mj自建代理项目地址
mj代理 自己在env修改端口 其他同之前 pnpm i pnpm start就可以启动
地址就是:域名加上端口即可
10、储存配置
腾讯云为例
申请服务地址: https://console.cloud.tencent.com/cos
腾讯云储存新人有50G免费空间,下行需要流量费用,申请后,新建储存桶,重点选择公有读私有写
获取名称和地区信息
获取秘钥信息
后台按照对应信息进行填写即可
阿里云同上
chevereto图床
官方文档:https://v4-docs.chevereto.com/developer/api/api-v1.html
11、用户端管理
1、基础配置
用户次数用完以后,会提醒并弹出购买对话框
显示位置展示
备案信息:
图标开关控制位置
默认思维导图位置
2、动态菜单
控制前端侧边栏菜单显示,重点:开启微信静默登录,必须选择不指定首页,否则无效
前端展示
3、公告设置
公告设置是对应用户端的公告页面的、你可以使用MD语法或直接使用Html标签进行发布
4、思维导图
自定义修改思维导图的初始状态和预设信息。
12.风控管理
1、百度敏感词设置
企业认证免费领取25万次,个人认证免费领取5万次
领取链接:https://console.bce.baidu.com/ai/?fromai=1#/ai/antiporn/overview/resource/getFree
百度文本审核效果较好,且较为便宜,约2.5元/万次,使用时,先点击下方开通链接
产品权限开通地址https://cloud.baidu.com/product/textcensoring.html
申请:内容审核平台-文本
开通完成后点应用列表 https://console.bce.baidu.com/ai/#/ai/antiporn/app/list
新建应用,之后复制下图参数,对应填到后台即可
百度敏感词后台设置
2、自定义敏感词设置
点击+New Word 自定义添加敏感词
当前可设置自定义回复、且可以多种关键词触发回复相同内容、可以开启精准匹配或模糊匹配用户设置自定义回复程度,多个关键词用“|”隔开。
13.系统设置
登录百度统计网站,达到要求后,申请统计代码,填入后台即可
网站后台的网站访客统计信息,来源于百度统计信息
申请地址:https://tongji.baidu.com/web5/10297033/welcome/login
数据API:https://tongji.baidu.com/sc-web/home/dataapi
接口说明:https://tongji.baidu.com/api/manual/Chapter2/openapi.html
说明:申请API需要网站数据达到100PV以上才可以,前期不用设置,也可以使用流量精灵快速刷够100PV。
百度翻译设置
百度翻译主要应于MJ绘画指令翻译,V1.5版本已更新为chatgpt自动翻译,目前翻译仅在基础绘画中使用
百度翻译申请地址:http://api.fanyi.baidu.com/manage/developer
2022年8月1日起,通用翻译API标准版免费调用量调整为5万字符/月,填写对应信息,申请成功后,获取秘钥
六、常见问题
为什么没有流式回复
如果使用pm2部署或者使用传统的Node部署、使用了nginx解析了域名、但是没有流式输出、请在nginx中添加 proxy_buffering off;
默认端口是多少、我可以修改么?
在env文件中、您可以指定您的端口、我们默认为9520端口。
启动地址是什么、我怎么启动?
当你的项目成功运行之后、我们默认的地址是您的IP+端口即可启动用户端、管理端则是ip+端口/nineai/admin即可访问管理端!
默认账号是什么、我怎么登陆
参考上图、项目启动过程中我们默认为您生成了两个账号
admin演示账号,只有查询缺陷没有查改删权限、类似演示地址演示账号 admin 123456
超级管理员账号, 拥有全部权限 账号 super 密码 nine-super
我如何修改账号用户名密码
目前由于时间原因、我们在管理端的修改信息入口暂未开放、如果需要修改您的管理账号密码可以前往用户端、登录后可以前往个人中心修改您的账户密码
用户端提示未配置key、不能聊天怎么办?
我们在后台管理中有key池管理、您需要至少配置一个gpt的key才可以正常使用聊天和DALL-E2绘画功能!
用户注册不能发送邮件怎么办?
在启动项目的env文件中需要配置您的smtp服务信息、配置您的发件信息才可以完成邮件的发送、如果只是个人使用、那么管理员账号和admin账号就可以直接登录使用了!
聊天接口一直未响应怎么办?添加key获取不到模型怎么办?
如果你是国外服务器可能不存在这个问题、如果是国内服务器会无法连接openai的网络、请前往后台的 => 系统设置 => 接口设置填写代理地址、既可正常访问、添加key获取不到模型也是同理。
redirect uri域名与后台配置不一致,错误码:10003
原因: 公众号配置的回调域名与请求的域名不一致。
微信公众号配置修改,登录微信公众号-设置-公众号设置-功能设置-网页授权域名
常见PM2代码指令
pm2 install 安装
pnpm start
pm2 start
pm2 restart all 重启所有
pm2 log 查看日志
pm2 del 0 删除代码为0的程序 |
|