项目简介
本项目是基于Go语言和Node.js构建的智能聊天系统,支持OpenAI和Claude模型。具备用户认证、聊天会话管理、消息处理、模型管理、快照生成等功能,且支持多语言环境。通过API接口,前端应用能与后端服务通信,实现用户管理、会话管理、消息发送等操作。同时,系统支持HTTP请求压缩、速率限制和日志记录,保障系统安全性与性能。
项目的主要特性和功能
- 用户认证与授权:利用JWT进行用户身份验证和授权,保证仅授权用户可访问特定功能。
- 聊天会话管理:用户可创建、更新、删除聊天会话,查看会话统计信息并生成会话快照。
- 消息处理:支持发送和接收聊天消息,消息内容含角色(用户或AI)和令牌计数。
- 模型管理:用户能创建、更新和删除聊天模型,设置模型权限和速率限制。
- 快照生成:可生成聊天会话的快照,包含会话标题、摘要和标签等信息。
- 多语言支持:系统支持多语言本地化,用户可按需选择语言。
- API接口:提供丰富API接口,支持前端与后端通信,涵盖用户管理、会话管理、模型管理、消息发送等功能。
- HTTP请求压缩:支持gzip压缩,提升数据传输效率。
- 速率限制:支持API请求频率限制,防止滥用和服务器过载。
- 日志记录:记录详细的HTTP请求日志,便于问题排查和性能监控。
安装使用步骤
1. 复制项目
bash
git clone <项目地址>
2. 配置后端环境
进入后端目录并安装依赖:
bash
cd 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
export OPENAI_API_KEY=sk-xxx # 如果使用debug模式,此项非必需
export OPENAI_RATELIMIT=100
启动后端服务:
bash
make serve
3. 配置前端环境
进入前端目录并安装依赖:
bash
cd ../web
npm install
npm run dev
4. 运行端到端测试
进入测试目录并安装依赖:
bash
cd ../e2e
npm install
npx playwright test
5. 部署
参考docker-compose.yaml
文件进行部署。可以通过Railway一键部署:
配置环境变量:
bash
PORT=8080
OPENAI_RATELIMIT=0
部署完成后,注册用户,第一个用户将自动成为管理员。管理员可以设置速率限制,确保只有受信任的用户可以使用系统。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】