Nine Ai Robot人工智能应用AI源码 ChatGPT系统

Nine AI.ChatGPT是基于ChatGPT开发的一个人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。

使用 Nestjs 和 Vue3 搭建的 AIGC 生态社区

NineAI支持ChatGPT3.5+ChatGPT4.0提问+ai绘画模型(包括Midjourney绘画、ChatGPT3.5key绘画等)+Prompt面具角色预设功能+会员分销功能+KEY池管理+AI绘画广场+支付方式(微信支付、易支付、码支付、虎皮椒支付)+多种存储(腾讯云、阿里云、chevereto图床)等模块,源码内包含了未编译的开源源码以及一个整合后的便捷使用包。自行根据自己的需求使用。

用户端 https://ai.jiangly.com 管理端 https://ai-admin.jiangly.com

必要环境

nodejs version > 16

pnpm version > 6

mysql version >= 5.7

redis

目录结构

chat 用户端代码

admin 管理端代码

service 服务端代码

本地开发

三端统一命令

pnpm install 安装依赖

pnpm dev 启动项目

pnpm build 打包项目

启动项目

分别安装依赖 pnpm i

首先启动服务端进入service 创建.env文件 在其中修改 测试数据库信息和redis 配置完成后 pnpm dev

数据库通过orm映射 启动项目会自动创建数据库

启动完成后可以打开chat admin pnpm dev启动

关于授权

授权模块在 src/modules/globalConfig/globalConfig.service.ts 文件下

对函数 NineAiCheckAuth 移除其中内容就并且移除onModuleInit的NineAiCheckAuth就可以移除授权

对应的 src/modules/task/task.service.ts中的定时任务也可以移除掉 checkauth 定时任务

打包路径问题

service

后端服务直接 pnpm build 即可 .env为环境变量文件 需要后续自己挂载或者创建 项目有 示例文件.env.example

打包命令会对代码混淆,打包之后 只需要下图这些文件即可、其他文件不再需要

后端服务打包后需要这七个文件

chat

前端项目打包的配置文件是.env.production 和admin相同

只需要改变这个变量 如果分开部署的则填写你的线上后端服务地址 建议分开 第一行地址填写这个自己的线上地址就行

admin

管理端是同理、一样修改这个文件

同样分离部署只需要打开红框的内容即可、替换为自己的线上地址 其余配置并不需要修改 也暂时用不到

其他文件

刷新404问题

前端history项目刷新都会404 需要对Nginx进行配置

整合版部署教程

教程使用宝塔面板

1、宝塔面板软件商店安装Node.js版本管理器

2、Node.js版本管理器中安装Node v16以上版本

3、安装后在Node.js版本管理器中的模块中 搜索安装 pnpm 模块

4、把整合包源码上传并解压到服务器任意目录

5、修改根目录文件 .env 中的数据库和Redis信息,填写为你自己的

6、在宝塔根目录菜单栏中(也就是有.env的目录)点击 终端

7、在终端中输入并运行 pnpm install

8、如果一切正常没有报错,继续在终端输入运行 pnpm start 启动程序,如果你的配置文件填错了可以使用pm2 stop pm2.conf.json停止并更改后重新pnpm start启动

9、访问你的http://你的ip:9520 访问你的NineAI

10、通过新建一个网站反向代理http://localhost:9520 绑定域名(看个人需求)

11、整合包的用户信息

  • 管理端地址/admin
  • 普通管理员账号admin
  • 超级管理员账号super
  • 密码123456

12、其他的一些pm2指令

  • pm2 install 安装
  • pnpm start
  • pm2 start
  • pm2 restart all 重启所有
  • pm2 log 查看日志
  • pm2 del 0 删除代码为0的程序

编译安装教程

1-3步与上面的整合版本相同步骤

4、在service(后端服务)目录修改.env数据库信息,然后运行终端命令:pnpm install 安装依赖文件,再运行:pnpm dev 调试并导入数据库,最后使用终端命令:pnpm build 编译打包,最后就能得到与上面整合版一样的文件。

5、chat(用户前端)和admin(管理员后端)仅需修改各种目录.env中的后端接口即可,然后分别在终端中执行pnpm install 安装依赖文件 和 pnpm build 编译打包,最后就能得到前端和后端的静态文件。

NineAi 准备文档

阅读说明

请仔细阅读该文档、在部署前需要准备这些内容、后续的升级部署将会在每个版本陆续追加、准备好对应内容将会使你的部署更顺畅

服务器

基础内容需要一台服务器、演示站点使用的是centos9.0系统的服务器、当然并不限制使用任何服务器、如果是新购买建议使用高版本系统、因为项目是基于node构建、高版本对NodeJs的支持更加友好

基础环境

因为是基于node的项目、如果您没有部署知识、我们会在文档中提供基于PM2的Node部署方式和基于Docker和docker-conpose的部署方式。你可以在两者之间选择。

  1. 如果使用docker部署前请安装好dockerdocker-compose
  2. 如果使用pm2部署请预先安装好nodejs > 16.16、安装好pnpm包管理器、安装好pm2

mysql

如果您不使用docker-compose部署的情况下、请自备mysql数据库!建议数据库版本使用高版本数据库、防止意外问题、演示站使用版本为8.0.20.

openai账号

一个gpt的账号是必须的、否则你可能不能使用基础服务

邮件服务

您需要准备一个smtp邮件服务、不限制平台、例如163qq腾讯云阿里云等等邮件服务、这也是必须的,有这些内容后才可以正常发送邮件

腾讯云对象存储账号

我们的图片资源、包含商品图片、用户信息、绘画图片等等内容需要存储在此、如果没有此内容、可能对图片无法正常保存。

redis

系统中需要使用redis服务 对应配置在env文件之中 如果你是宝塔用户 在面板商店里可以搜索redis一键安装即可 不需要任何配置

MJ账号

对于MJ绘画,我们需要准备一个账号、以便于使用官方的绘画服务!

百度统计账号

百度统计提供了免费的统计服务、我们只需要申请服务即可享受免费的流量统计,你可以自行前往百度统计官方平台申请、将用于首页的统计量访问图表展示、这是免费的服务、百度就可以找到很全面的教程、申请入口是这里:百度统计申请地址

百度翻译服务

我们不强制开通此服务、如果开通并且配置后、将会把绘画的描述词在服务端为你转化为英文、帮助其能更好的绘画出理想的图片、当然这不是必须的、不配置的情况我们默认不翻译、百度翻译服务申请地址、请申请通用文本翻译服务!

百度云敏感词服务

这也不是必须的、我们不强制你开启此服务、我们提供了自定义敏感词、当然我们个人的词库可能并不完善、为什么使用百度云(因为免费赠送五万条)、服务申请地址

微信登录 公众号互动

这里需要一个官方的公众号【必须是服务号】需要花费300、不强制、没有后台不配置则不展示微信登录、不提供微信交互!

NineAi 部署文档

如果您已经准备好了我们需要的东西、那么我们可以开始正式部署了、如果您还不知道需要什么内容、请移步至NineAi部署准备文档 查阅详细的内容!

docker版本地址

docker文档

知识库文档地址

知识库地址

下方文档仅做参考 详细参考知识库即可

基础env环境配置

在代码中我们提供了基础 环境变量文件配置文件env.example,使用前先去掉后缀改为.env文件即可,
我们在env环境配置文件只需要配置如下东西。

  • 授权码授权ip配置
  • 邮件服务配置
  • mysql数据库
    这三项是基础配置、mysql与授权是必须的、在配置mysql与授权的情况下项目才可以启动成功、邮件服务可以后续追加。

项目部署(宝塔部署方式)

一般我们使用宝塔进入到网站页面 点击添加网站 添加一个 自己填你的域名


此时我们就创建了一个网站、此时我们点击这个域名打开应该是这样

此时我们同样也在www/wwwroot目录中生成了同名的文件夹、我们点击侧边栏的文件进入到这个目录当中

我们进入到这个目录、可以通过上传文件或者通过命令下载的方式将源码传到这个目录、例如我们在终端直接下载源码

wget https://index.jiangly.com/NineAi/v1.5.2.zip

下载不同版本修改版本号即可

下载后你可以手动解压或者命令行解压、解压之后刷新我们就有全部文件了

此时再次点开终端、我们需要去下载依赖包、在下载前确定我们需要有node环境

node -v
npm -v
pnpm -v

可以检测你是否有这些环境、如果有会是这样的

如果没有呢、就需要我们自己下载了:

根目录/etc/profile末尾加一行

export PATH=$PATH:/www/server/nodejs/v16.19.1/bin

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**

然后点开终端执行两步即可

pnpm i

pnpm start

两部执行完项目就启动成功了
项目默认是9520端口

我们可以输入pm2 log 查看详细日志、看到下图表示成功!


目前我们通过ip:9520就可以访问了、但是我们需要域名访问、所以前往最开始的添加网站添加一个方向代理即可、就可以通过域名访问网站了


只需要添加这样一个代理、我们就可以通过域名访问了

默认前台地址就是域名地址
默认后台地址则是 域名地址/nineai/admin
默认管理员账号是 super nine-super

此时我们就安装完成了

常见问题·

如何配置腾讯云对象存储cos

进入到腾讯云搜索对象存储、我们需要配置四个 参数、在秘钥管理里面可以拿到 SecretIdSecretKey

剩下两个参数分别是存储桶的名称和 节点位置您可以参考下图信息

如果还没有存储桶、请创建存储桶、权限选择公有读私有写即可、其他不限制。
配置完四个参数后、就可以使用存储服务了。

如何配置MJ的所有信息

mj对应了七个必填参数分别是下图

剩余两个参数
1: 接口单次限制时间、表示用户请求一次这个接口距离下次允许请求的限制时间
2: 系统默认携带了一个代理、如果你是国内服务器需要开启代理、如果是国外服务器则不需要代理

  • 参数获取方法
    得到MJ账号之后、参考此地址创建一个自己私人的服务器、并且邀请一个官方的机器人加入房间 https://zhuanlan.zhihu.com/p/603364613、这样就可以加入房间了、
  1. 先打开控制台。点击Network如果是中文就是网络那一栏
  2. 此时我们通过命令 /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即可访问管理端!

默认账号是什么、我怎么登陆

参考上图、项目启动过程中我们默认为您生成了两个账号

  1. admin演示账号,只有查询缺陷没有查改删权限、类似演示地址演示账号 admin 123456
  2. 超级管理员账号, 拥有全部权限 账号 super 密码 nine-super

我如何修改账号用户名密码

目前由于时间原因、我们在管理端的修改信息入口暂未开放、如果需要修改您的管理账号密码可以前往用户端、登录后可以前往个人中心修改您的账户密码

用户端提示未配置key、不能聊天怎么办?

我们在后台管理中有key池管理、您需要至少配置一个gpt的key才可以正常使用聊天和DALL-E2绘画功能!

用户注册不能发送邮件怎么办?

在启动项目的env文件中需要配置您的smtp服务信息、配置您的发件信息才可以完成邮件的发送、如果只是个人使用、那么管理员账号和admin账号就可以直接登录使用了!

聊天接口一直未响应怎么办?添加key获取不到模型怎么办?

如果你是国外服务器可能不存在这个问题、如果是国内服务器会无法连接openai的网络、请前往后台的 => 系统设置 => 接口设置填写代理地址、既可正常访问、添加key获取不到模型也是同理。

群友提供教程

群友共享

0
分享到:

评论0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
狗歌网您忠诚可靠的伙伴!
没有账号? 忘记密码?