littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于Go和Node.js的多模型聊天系统

项目简介

本项目是基于Go和Node.js构建的多模型聊天系统。它支持OPEN AI、Claude等模型,可根据对话生成可分享的静态页面,还具备对话快照目录及全文查找功能,方便用户整理和搜索会话记录。此外,系统对用户进行权限管理,首个注册用户为管理员。

项目的主要特性和功能

  1. 多模型支持:支持OPEN AI、Claude等模型,用户能免费申请Claude模型使用权限。
  2. 对话分享与管理:可生成可分享的静态页面,提供对话快照目录,支持英文全文查找,便于会话记录的整理与搜索。
  3. 用户权限管理:首个注册用户为管理员,可在管理页面设置用户的ratelimit,公网部署时能对信任的email增加ratelimit保障安全。
  4. 限流机制:默认限流100次chatGPT调用/10分钟,可通过环境变量OPENAI_RATELIMIT设置。
  5. 提示词管理:支持提示词管理,有提示词快捷键 '/'。

安装使用步骤

开发环境搭建

Go环境

  1. 复制项目代码:git clone
  2. 进入项目目录:cd chat; cd api
  3. 整理依赖:go mod tidy
  4. 设置环境变量(根据实际情况修改): bash export PG_HOST=192.168.0.135 export PG_DB=hwu export PG_USER=hwu export PG_PASS=pass export PG_PORT=5432
  5. 启动服务:make serve

Node环境

  1. 进入前端项目目录:cd ..; cd web
  2. 安装依赖:npm install
  3. 启动开发服务器:npm run dev

端到端测试

  1. 进入测试目录:cd ..; cd e2e
  2. 设置环境变量(根据实际情况修改): bash export PG_HOST=192.168.0.135 export PG_DB=hwu export PG_USER=hwu export PG_PASS=pass export PG_PORT=5432
  3. 安装依赖:npm install
  4. 运行测试:npx playwright test # --ui

部署

参考docker-compose.yaml文件进行部署,也可点击 Deploy on Railway 进行部署。部署后配置以下环境变量: PORT=8080 OPENAI_RATELIMIT=0 如有其他两个api key则进行填写。部署完成后,注册用户,首个用户为管理员,可到 https://$hostname/static/#/admin/user 设置ratelimit。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】