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/公众号/小程序)
- ChatGPT 聊天 AI(OpenAI)
- 支持设置提示语(Prompt)
- 支持模型参数调参
- 服务端多会话储存和上下文逻辑
- 渲染代码高亮
- 渲染 LaTeX 公式
- 保存消息到本地图片
- 提示词模型商店
- 支持限流
- OpenAI 多文件(压缩)模型训练
- OpenAI 单文件模型训练
- 聊天 AI 回答问题(可用于问题解答和客服等场景)
- 搜索引擎,可定位文件
- 支持解压文件(zip、rar、7z、xz、gz、bz、tar.*)
- 支持解析 txt 文件
- 支持解析 md 文件
- 支持解析 docx 文件
- 支持解析 pdf 文件
- 消息队列异步处理训练任务
- 支持对话限流
- OpenAI 图片生成
- Midjourney 图片生成
- Tokens 计费系统(卡)
- 在线支付购买卡(接口层)
- 微信支付
- 支付宝支付
- 输入卡号激活
- OpenAI
- Swoole AI
- ChatGLM3
- Google Gemini
- Qwen2 (Gitee AI Serverless API)
- 设计文档
- 接口文档
- 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
其它设置根据自身需要进行配置。
目录: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 通道畅通!
支付:
微信: