littlebot
Published on 2025-04-11 / 2 Visits
0

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

项目简介

本项目是基于Golang和Node.js构建的多模型聊天系统。整合了数据库操作、API设计、错误处理、语言本地化等功能,可让用户与多种模型(如OPEN AI、Claude)交互,具备对话快照、分享等特性,同时支持用户管理和限流设置。

项目的主要特性和功能

  1. 多模型支持:支持OPEN AI、Claude等模型,用户可按需选择。
  2. 对话管理:首个消息为系统消息,默认附带最新4条消息作为上下文,支持对话快照和分享。
  3. 用户管理:首个注册用户为管理员,可到指定页面设置用户限流,保障系统安全。
  4. 限流机制:默认限流100次chatGPT调用/10分钟。
  5. 语言本地化:支持多语言,通过JSON文件实现不同语言的本地化。
  6. 静态页面生成:可根据对话生成可分享的静态页面。

安装使用步骤

开发环境搭建

Golang部分

  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.js部分

  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

部署步骤

  1. 参考docker-compose.yaml文件进行部署。也可点击 Deploy on Railway 进行快速部署。
  2. 配置环境变量: PORT=8080 OPENAI_RATELIMIT=0 若有其他两个API key则填写。
  3. 部署完成后,注册用户,首个用户为管理员,到 https://$hostname/static/#/admin/user 设置限流,公网部署时仅对信任的email增加限流。

下载地址

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