5 Star 73 Fork 31

imi 开发组 / imi-ai

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

imi-ai

imi

Server test Web test Php Version Swoole Version License

介绍

imi-ai 是一个 ChatGPT 开源项目,支持聊天、问答、写代码、写文章、做作业等功能。

项目架构合理,代码编写优雅,简单快速部署。前后端代码完全开源,不管是学习自用还是商用二开都很适合。

本项目现已支持 ChatGPT 聊天 AI 和 Embedding 模型训练对话。

项目采用 MIT 协议开源,你可以方便地进行二次开发,并且可以用于商业用途。

演示

公益演示地址:https://ai.imiphp.com/ (注册送额度,付费可用 gpt-4、gpt-3.5-turbo-16k)

演示 演示 演示 演示

技术栈

后端基于 imi (PHP+Swoole)

前端基于 Chanzhaoyu/chatgpt-web (TypeScript+Vue3+Vite3+NaiveUI)

后台基于 honghuangdc/soybean-admin (TypeScript+Vue3+Vite3+NaiveUI)

功能列表

用户

  • 用户邮箱注册和登录
  • 用户手机号注册和登录
  • 微信登录(PC/公众号/小程序)

聊天 AI

  • ChatGPT 聊天 AI(OpenAI)
  • 支持设置提示语(Prompt)
  • 支持模型参数调参
  • 服务端多会话储存和上下文逻辑
  • 渲染代码高亮
  • 渲染 LaTeX 公式
  • 保存消息到本地图片
  • 提示词模型商店
  • 支持限流

模型训练

  • OpenAI 多文件(压缩)模型训练
  • OpenAI 单文件模型训练
  • 聊天 AI 回答问题(可用于问题解答和客服等场景)
  • 搜索引擎,可定位文件
  • 支持解压文件(zip、rar、7z、xz、gz、bz、tar.*)
  • 支持解析 txt 文件
  • 支持解析 md 文件
  • 支持解析 docx 文件
  • 支持解析 pdf 文件
  • 消息队列异步处理训练任务
  • 支持对话限流

AI 生图

  • OpenAI 图片生成
  • Midjourney 图片生成

计费系统

  • Tokens 计费系统(卡)
  • 在线支付购买卡(接口层)
  • 微信支付
  • 支付宝支付
  • 输入卡号激活

支持的模型厂商

其它

  • 设计文档
  • 接口文档
  • Docker 支持
  • 视频讲解教程

更多功能计划中……

项目正在持续迭代中,欢迎所有人来贡献代码

安装

服务端

目录:server

环境要求:

  • Linux / MacOS,可用内存至少1G

  • PHP >= 8.1(扩展:curl、gd、mbstring、pdo_mysql、redis、swoole)

  • Swoole >= v5.0.3(必须启用 --enable-openssl --enable-swoole-curl 编译,模型训练需启用 --enable-swoole-pgsql 编译)

建议直接使用 swoole-cli,可在 Swoole Release 下载

  • MySQL >= 8.0.17

  • Redis

  • PostgreSQL + pgvector (可选,使用模型训练必选,需为项目数据库启用扩展 CREATE EXTENSION vector;

  • 7-Zip,可选,但使用模型训练必选,用于解压文件。下载 并将 7zz / 7zzs 解压到 /usr/bin/7z/usr/local/bin/7z 目录

  • Pandoc,可选,安装后可支持 docx 文件模型训练。下载

  • poppler-utils,可选,安装后可支持 pdf 文件模型训练。

安装:

# Debian/Ubuntu
apt install poppler-utils
# CentOS
yum install poppler-utils
# Alpine
apk add poppler-utils

安装依赖:

composer update

生成证书:

jwt 签名需要,必须生成自己的证书!

cd server/resource/jwt
openssl genrsa -out pri_key.pem 2048
openssl rsa -in pri_key.pem -pubout -out pub_key.pem
openssl genrsa -out admin_pri_key.pem 2048
openssl rsa -in admin_pri_key.pem -pubout -out admin_pub_key.pem

配置文件:

复制 .env.tpl 改名为 .env 文件。

根据文件内注释修改对应的配置。

应用配置:

后台-系统管理-系统设置

导入 MySQL:

首先创建 db_imi_ai 数据库,如果使用其它名称,需要在 .env 中修改。

执行生成表结构命令:

vendor/bin/imi-swoole generate/table

导入 PostgreSQL:

首先创建 db_imi_ai 数据库,如果使用其它名称,需要在 .env 中修改。

db_imi_ai 或你使用的数据库启用 pgvector 扩展:

CREATE EXTENSION vector;

导入 pgsql.sql 文件,创建表。

不使用模型训练功能,可以不配置 PostgreSQL。

运行服务:

vendor/bin/imi-swoole swoole/start

生产环境:

编辑 .env 文件。

必须的设置:

# 生产环境禁用热更新
@app.beans.hotUpdate.status=0
# 生产环境禁用调试
APP_DEBUG=false

其它设置根据自身需要进行配置。

用户端H5

目录:web

环境要求:

node 需要 ^16 || ^18 || ^19 版本(node >= 14 需要安装 fetch polyfill),使用 nvm 可管理本地多个 node 版本

node -v

安装依赖:

npm install

也可以使用 yarn、pnpm 等。

配置:

复制 .env.tpl 改名为 .env 文件。

编辑 .env 文件。

  • VITE_GLOB_API_URL,服务端接口地址,如:http://127.0.0.1:12333/

  • VITE_APP_API_BASE_URL 前端调试访问地址,如:http://127.0.0.1:3100/

开发调试:

npm run dev

生产环境:

编译

npm run build-only

npm run build 也可以,但会执行类型检查,不规范的代码编译不通过。

编译结果

所有文件都在 dist 目录,内部文件放到站点根目录。

管理后台

后台默认账号密码都是 admin

目录:admin

环境要求:

node 需要 ^16 || ^18 || ^19 版本(node >= 14 需要安装 fetch polyfill),使用 nvm 可管理本地多个 node 版本

node -v

安装依赖:

npm install

也可以使用 yarn、pnpm 等。

配置:

复制 .env.tpl 改名为 .env 文件。

编辑 .env 文件。

  • VITE_API_URL,服务端接口地址,如:http://127.0.0.1:12333

开发调试:

npm run dev

生产环境:

编译

npm run build

npm run build 也可以,但会执行类型检查,不规范的代码编译不通过。

编译结果

所有文件都在 dist 目录,内部文件放到站点根目录。

技术支持

可提供以下服务:项目搭建部署、技术咨询、定制开发等

QQ群: 17916227

微信群:

微信

赞助开发

imi-ai 是基于 MIT 协议完全开源的项目,为了能够更好地可持续发展,特推出赞助权益。

赞助等级

等级 价格 说明
白嫖用户 0 完整项目代码,免费用于商业用途,Github/QQ群/微信群交流提问
白银赞助 ¥9.9 可获得设计文档,接口文档
黄金赞助 ¥499/年 一对一问题咨询
铂金赞助 ¥888/年 支持私有化部署模型,1次免费项目搭建部署,一对一问题咨询

权益

权益 白嫖用户 白银赞助 黄金赞助 铂金赞助 备注
完整项目代码
免费用于商业用途
Github/QQ群/微信群交流提问 回复时长不确定
设计文档 在线浏览
接口文档(后台+前台) 在线浏览/Swagger 格式导出/Markdown
一对一问题咨询 回复及时,隐私更好
项目搭建部署(1次) 建议提供干净的服务器,可用内存至少1G。后续升级请自行操作,或另外付费。
私有化部署模型(ChatGLM3) 支持部署 ChatGLM3 模型在自己的 GPU 服务器,提供部署说明

2024-02-24 之前赞助的黄金级别,仍可享受 1 次免费项目搭建部署

私有化部署模型

用户需自行准备好带 16G 及以上显存显卡的机器(支持多显卡),可以没有公网IP,可以是家里的电脑,但必须能联网(建议境外IP)。

Windows 需提前准备好:远程连接工具(向日葵、RustDesk 等)、 WSL2、Docker。

Linux 需提前准备好:SSH连接参数(请勿使用桌面系统远程)。

部署完全前,请保证远程连接或 SSH 通道畅通!

支付:

赞助

微信:

微信

MIT License Copyright (c) 2023 imi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

imi-ai 是一个基于 PHP+Swoole+Vue 的 ChatGPT 开源项目,可以简单快速部署。 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/imiphp/imi-ai.git
git@gitee.com:imiphp/imi-ai.git
imiphp
imi-ai
imi-ai
master

搜索帮助