项目简介
本项目是基于Golang和Node.js构建的智能聊天系统,支持OPEN AI、Claude等模型。该系统拥有用户对话交互、限流管理、对话快照分享以及提示词管理等功能,还支持生成可分享的静态页面,方便用户整理和搜索会话记录。
项目的主要特性和功能
- 消息规则:首个消息为系统消息,上下文默认附带最新的4条消息。
- 用户管理:首个注册用户为管理员,可进行限流设置,公网部署时能对信任的邮箱增加限流保障系统安全。
- 限流机制:默认限流为100次ChatGPT调用/10分钟。
- 静态页面分享:能根据对话生成可分享的静态页面,也可继续会话。
- 对话管理:具备对话快照目录,支持英文全文查找,便于整理和搜索会话记录。
- 模型支持:支持OPEN AI、Claude模型。
- 提示词管理:拥有提示词管理功能,可通过快捷键'/'使用提示词。
安装使用步骤
前提条件
假设用户已经下载了本项目的源码文件。
后端(Golang)
- 进入项目目录:
bash cd chat; cd api
- 安装热加载工具:
bash
- 下载依赖:
bash 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
- 启动服务:
bash make serve
前端(Node.js)
- 进入前端目录:
bash cd ..; cd web
- 安装依赖:
bash npm install
- 启动开发服务器:
bash npm run dev
端到端测试(E2E)
- 进入测试目录:
bash 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
- 安装依赖:
bash npm install
- 运行测试:
bash npx playwright test # --ui
部署
参考 docker-compose.yaml
文件进行部署,也可点击 Deploy on Railway 进行一键部署。部署后需配置环境变量:
PORT=8080
OPENAI_RATELIMIT=0
若有其他两个API密钥,也需填写。部署完成后,注册首个用户为管理员,然后访问 https://$hostname/static/#/admin/user 设置限流。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】