ais-ninja 是一个基于 chatgpt 的 Web 应用程序。它基于 ChatGpt-Web.

介绍ais-ninja 是一个基于 chatgpt 的 Web 应用程序。它基于 ChatGpt-Web.

  • 重构了后端代码。
  • 多语言支持。
  • 支持插件系统。

部署

docker

docker run -d \
    --name ais-ninja \
    --hostname ais-ninja \
    -p 6789:80    \
    -e PUID=0     \
    -e DATABASE_NAME=ais_ninja     \
    -e DATABASE_PORT=3306     \
    -e DATABASE_HOST=host     \
    -e DATABASE_USER=root     \
    -e DATABASE_PASSWORD=123456     \
    -e DATABASE_SYNC='true'     \
    -e REDIS_URL=redis://${url}:6379/0     \
    -e EMAIL_HOST=smtp.office365.com     \
    -e EMAIL_PORT=587     \
    -e EMAIL_FROM=     \
    -e EMAIL_AUTH_USER=     \
    -e EMAIL_AUTH_PASS=     \
    -e SOCIAL_GOOGLE_CLIENT_ID=     \
    -e VITE_APP_REQUEST_HOST=     \
    jarvis2f/ais-ninja:v1.0.0

docker-compose

  1. 创建文件夹 ais_ninja 创建 docker-compose.yml 文件.

    mkdir ais.ninja && cd ais.ninja
    touch docker-compose.yml
  2. 复制 docker-compose.yml 到 docker-compose.yml 文件中

  3. 修改 docker-compose.yml 中的环境变量

  4. 运行 docker-compose up -d 启动服务

运行 docker logs ais-ninja-app 查看日志。如果看到如下日志,则说明服务启动成功。首次启动会生成默认管理员帐户和密码。

[12:47:52.887] INFO (43): Logger initialized: info
[12:47:57.798] INFO (config/43): Config file path: /app/server/config.json
[12:47:58.308] INFO (db/43): Database connected
[12:47:58.822] INFO (db/43): Database synced
[12:47:58.832] INFO (redis/43): Redis connected
[12:47:58.851] WARN (openai/43): No OpenAI tokens provided
[12:47:58.851] INFO (app/43): OpenAI clients initialized
[12:47:58.860] INFO (app/43): Server running on port 5174
[12:47:58.861] INFO (db/43): Administrator initialized: ${administrator account}  ${administrator password}

后台地址:http://localhost:6789/admin

环境变量

本项目中的大部分配置项都是通过环境变量来设置的。

你也可以修改 config.json 文件去设置环境变量。 然后运行 docker run -d --name ais-ninja -v /path/to/config.json:/app/server/config.json jarvis2f/ais-ninja:1.0.0 启动服务.

Environment Variable Description
DATABASE_NAME 数据库名称
DATABASE_PORT 数据库端口
DATABASE_HOST 数据库地址
DATABASE_USER 数据库用户名
DATABASE_PASSWORD 数据库密码
DATABASE_SYNC 项目启动是否自动同步数据库表结构。 true or false
REDIS_URL Redis 地址,格式: redis[s]://[[username][:password]@][host][:port][/db-number]
EMAIL_HOST 邮箱服务地址
EMAIL_PORT 邮箱服务端口
EMAIL_FROM 邮箱服务发送方邮箱地址
EMAIL_AUTH_USER 邮箱服务用户名
EMAIL_AUTH_PASS 邮箱服务密码
SOCIAL_GOOGLE_CLIENT_ID 谷歌登录的client_id

插件

项目启动之后可以到后台 -> 系统配置中填写仓库地址:https://github.com/jarvis2f/ais-ninja.git 导入本仓库 plugins 下的插件。

创建对话插件

可以先看下 OpenAI 的文档。 对话中会将插件中的方法以下方这种格式传递给 ChatGPT 的接口,ChatGPT 会返回需要调用的插件方法名称和参数。

{
  "functions": [
    {
      "name": "search_weather",
      "description": "Query china real time weather information from seniverse.com",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "China Pinyin Location name, e.g. beijing"
          }
        },
        "required": [
          "location"
        ]
      }
    }
  ]
}

系统中一个插件可以有多个 function, 用户安装一个插件之后会把插件中的所有 function 传递给 ChatGPT。 插件使用 JavaScript 编写,可以参考 plugins中的代码。 可以使用的库:

plugins 目录格式:

  • plugins/${plugin_name}/index.js 插件代码
  • plugins/${plugin_name}/desc.md 插件介绍
  • plugins/${plugin_name}/plugin.json 插件信息

插件变量

可以将一些私有的 key 设为插件变量,这样就不会暴露在代码中。在 plugin.json 中的 variables 字段中定义变量。

{
  "name": "weather",
  "description": "Query china real time weather information from seniverse.com",
  "variables": {
    "SENIVERSE_KEY": "Your API Key"
  }
}

在前台插件编辑中编写变量保存,然后就可以在代码中使用 process.env.SENIVERSE_KEY 获取变量。

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余

给TA打赏
共{{data.count}}人
人已打赏
资源杂烩

CacheFly免费CDN服务:每月5T流量,自定义域名,全球Anycast加速

2023-6-29 0:53:08

资源杂烩

为你的网站免签免费接入QQ一键登录,社会化账号聚合登录系统

2023-7-5 2:55:15




重要声明

本站资源来自会员发布以及互联网收集,不代表本站立场,如有侵犯你的权益请联系管理员-车车站内发信联系 我们会第一时间进行审核删除。站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请用户仔细辨认内容的真实性,避免上当受骗!本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请在下载24小时内删除!


如果遇到付费才可观看的文章,建议升级终身VIP。全站所有资源任意下免费看”。本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip,zip、rar解压,建议下载WinRAR

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索