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

【源码】基于Go语言框架的聊天系统

项目简介

本项目是基于Go语言框架开发的聊天系统,具备用户注册、登录、会话管理、消息收发等功能。系统利用数据库存储各类信息,集成了OpenAI和Claude等聊天模型以生成回复,还提供了API文档与示例代码,方便开发者进行交互与二次开发。

项目的主要特性和功能

  1. 用户认证:支持用户注册、登录,采用JWT进行身份验证和会话管理。
  2. 聊天会话:可创建和加入会话,通过HTTP接口实现消息的发送与接收。
  3. 聊天模型集成:集成OpenAI和Claude等模型,能生成回复内容。
  4. 会话快照:支持保存和查看会话快照,记录会话详细内容。
  5. 用户权限管理:对用户权限进行管理,如会话的创建、删除、更新以及消息的收发等操作。
  6. 数据库操作:运用Go语言数据库操作库,实现对数据库的增删改查。
  7. API文档:提供API文档和示例代码,便于开发者使用。

安装使用步骤

开发环境

  1. 复制项目代码到本地。
  2. 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
  3. Node环境
    • 进入web目录。
    • 安装依赖:npm install
    • 启动开发服务器:npm run dev
  4. 端到端测试
    • 进入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

部署

  1. 参考docker-compose.yaml文件进行部署。
  2. 点击 Deploy on Railway 进行部署。
  3. 配置环境变量: PORT=8080 OPENAI_RATELIMIT=0 若有其他两个API key则进行填写。
  4. 部署完成后,注册用户,首个注册用户为管理员。访问 https://$hostname/static/#/admin/user 设置速率限制,公网部署时仅对信任的邮箱添加速率限制,确保系统安全性。

下载地址

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