项目简介
本项目是基于Go语言框架开发的聊天系统,具备用户注册、登录、会话管理、消息收发等功能。系统利用数据库存储各类信息,集成了OpenAI和Claude等聊天模型以生成回复,还提供了API文档与示例代码,方便开发者进行交互与二次开发。
项目的主要特性和功能
- 用户认证:支持用户注册、登录,采用JWT进行身份验证和会话管理。
- 聊天会话:可创建和加入会话,通过HTTP接口实现消息的发送与接收。
- 聊天模型集成:集成OpenAI和Claude等模型,能生成回复内容。
- 会话快照:支持保存和查看会话快照,记录会话详细内容。
- 用户权限管理:对用户权限进行管理,如会话的创建、删除、更新以及消息的收发等操作。
- 数据库操作:运用Go语言数据库操作库,实现对数据库的增删改查。
- API文档:提供API文档和示例代码,便于开发者使用。
安装使用步骤
开发环境
- 复制项目代码到本地。
- Golang环境
- 进入
chat/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环境
- 进入
web
目录。 - 安装依赖:
npm install
。 - 启动开发服务器:
npm run dev
。
- 进入
- 端到端测试
- 进入
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 设置速率限制,公网部署时仅对信任的邮箱添加速率限制,确保系统安全性。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】