项目简介
本项目是基于Golang和Node.js构建的多模型聊天系统。整合了数据库操作、API设计、错误处理、语言本地化等功能,可让用户与多种模型(如OPEN AI、Claude)交互,具备对话快照、分享等特性,同时支持用户管理和限流设置。
项目的主要特性和功能
- 多模型支持:支持OPEN AI、Claude等模型,用户可按需选择。
- 对话管理:首个消息为系统消息,默认附带最新4条消息作为上下文,支持对话快照和分享。
- 用户管理:首个注册用户为管理员,可到指定页面设置用户限流,保障系统安全。
- 限流机制:默认限流100次chatGPT调用/10分钟。
- 语言本地化:支持多语言,通过JSON文件实现不同语言的本地化。
- 静态页面生成:可根据对话生成可分享的静态页面。
安装使用步骤
开发环境搭建
Golang部分
- 复制项目代码:
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.js部分
- 进入前端项目目录:
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
文件进行部署。也可点击 Deploy on Railway 进行快速部署。 - 配置环境变量:
PORT=8080 OPENAI_RATELIMIT=0
若有其他两个API key则填写。 - 部署完成后,注册用户,首个用户为管理员,到 https://$hostname/static/#/admin/user 设置限流,公网部署时仅对信任的email增加限流。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】