NineAi-v1.1正式部署文档

2023 年 05 月 13 日

文档
项目部署

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

基础env环境配置

在代码中我们提供了基础 环境变量文件配置文件env.example,使用前先去掉后缀改为.env文件即可,V1.1版本我们移除了配置中大量繁琐切

  1. mysql数据库配置不灵活的配置、将其改为配置在管理后台、总得来说、我们在env环境配置文件只需要配置三个东西。
  2. 授权码授权ip配置
  3. 邮件服务配置
    这三项是基础配置、mysql与授权是必须的、在配置mysql与授权的情况下项目才可以启动成功、邮件服务可以后续追加。

项目部署

为了项目管理和更新、我们建议您在服务器根目录创建一个NineAi文件夹、所有的项目源码放入其中、后续的更新包含命令都是以此路径来作为示例的、如果您知道如何配置例如环境变量文件的docker挂载等内容、您可以自由发挥!

env基础环境配置文件

# 服务器ip
NINE_AI_HOST=
# 授权码
NINE_AI_KEY=

# mysql
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASS=m47I2cvTTe4d
DB_DATABASE=chatgpt
DB_LOG=false
DB_SYNC=true

#  mailer 邮件服务
MAILER_HOST=smtp.163.com
MAILER_PORT=465
MAILER_USER=
MAILER_PASS=
MAILER_FROM=

# jwt token
JWT_SECRET=chat-cooper
JWT_EXPIRESIN=7d
SWAGGERPREFIX=/docs

# 系统预设 请勿更改
PORT=9520
PREFIX=/docs
APIPREFIX=/api

当你配置完环境之后、我们就可以部署了、在代码包中分为了三类文件分别是:

  1. nine-ai-base 拥有 chat用户端admin后台service服务端三端分离的代码、如果您有部署基础那么完全可以自行部署、因为admin与chat是前端项目、service是node项目、拥有部署基础的人会很轻松、但是需要注意的是:service请使用pnpm包管理器安装、否则可能出现未知的错误、如果在安装依赖的时候会卡住、可以考虑使用淘宝镜像源安装:pnpm i --registry=https://registry.npm.taobao.org、记得安装好pm2、安装完依赖后使用pnpm start启动项目即可。但是请确定你的数据库是配置正确的、可以使用pm2 log查看详细的日志。

  2. nine-ai-pm2 此内容更适合缺乏部署经验的朋友使用、我们将三个项目融合在一起、您只需要将此项目上传到服务器、进行解压、然后配置环境变量即可、此时只需要pnpm i 安装依赖pnpm start启动项目两步即可完成部署、pm2 log查看详细日志

  3. nine-ai-docker 这个项目是通过docker进行部署的、如果使用docker部署、我们已经上传了镜像到公共仓库、您只需要在env配置好您的授权信息和mysql信息然后使用以下镜像启动即可:

    docker run -d  --name nine-ai -p 9520:80 -v /NineAi/.env:/app/.env fullstack1120/nine-ai:v1.2.1
    
  4. 9520是我们的默认端口、您可以改为自己想要的端口 使用此方式可以一键部署、默认ip:9520就是用户端地址、ip:9520/admin就是管理端地址。

  5. 当然如果您没有自己的数据库、我们为您提供了docker-compose 、在您配置完自己的env文件后直接启动docker-compose将一键启动服务。

  6. 请注意上面的 /NineAi/.env是env文件的放置地址、如果您没有按照文档地址放置、那么就请修改这个地址!

    docker-compose up -d
    

常见问题

如何配置腾讯云对象存储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获取不到模型也是同理。

群友提供教程

群友共享

更多问题 请留言 或联系作者

交流专区 文明发言