项目简介
本项目是基于Go和Node.js构建的多模型聊天系统。它支持OPEN AI、Claude等模型,可根据对话生成可分享的静态页面,还具备对话快照目录及全文查找功能,方便用户整理和搜索会话记录。此外,系统对用户进行权限管理,首个注册用户为管理员。
项目的主要特性和功能
- 多模型支持:支持OPEN AI、Claude等模型,用户能免费申请Claude模型使用权限。
- 对话分享与管理:可生成可分享的静态页面,提供对话快照目录,支持英文全文查找,便于会话记录的整理与搜索。
- 用户权限管理:首个注册用户为管理员,可在管理页面设置用户的ratelimit,公网部署时能对信任的email增加ratelimit保障安全。
- 限流机制:默认限流100次chatGPT调用/10分钟,可通过环境变量
OPENAI_RATELIMIT
设置。 - 提示词管理:支持提示词管理,有提示词快捷键 '/'。
安装使用步骤
开发环境搭建
Go环境
- 复制项目代码:
git clone
。 - 进入项目目录:
cd chat; cd api
。 - 整理依赖:
go mod tidy
。 - 设置环境变量(根据实际情况修改):
bash export PG_HOST=192.168.0.135 export PG_DB=hwu export PG_USER=hwu export PG_PASS=pass export PG_PORT=5432
- 启动服务:
make serve
。
Node环境
- 进入前端项目目录:
cd ..; cd web
。 - 安装依赖:
npm install
。 - 启动开发服务器:
npm run dev
。
端到端测试
- 进入测试目录:
cd ..; cd e2e
。 - 设置环境变量(根据实际情况修改):
bash export PG_HOST=192.168.0.135 export PG_DB=hwu export PG_USER=hwu export PG_PASS=pass export PG_PORT=5432
- 安装依赖:
npm install
。 - 运行测试:
npx playwright test # --ui
。
部署
参考docker-compose.yaml
文件进行部署,也可点击 进行部署。部署后配置以下环境变量:
PORT=8080
OPENAI_RATELIMIT=0
如有其他两个api key则进行填写。部署完成后,注册用户,首个用户为管理员,可到 https://$hostname/static/#/admin/user 设置ratelimit。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】