一个功能完整的AI聊天记录管理平台,采用Vue3 + Golang技术栈开发,支持用户管理、聊天机器人管理、聊天记录管理和统计分析等功能。
- ✅ 用户认证和授权 - 基于JWT的安全认证机制
- ✅ 用户管理 - 完整的用户增删改查功能,支持角色权限管理
- ✅ 聊天机器人管理 - AI机器人的创建、配置、管理和监控
- ✅ 聊天会话管理 - 会话的创建、更新、删除和状态管理
- ✅ 聊天记录管理 - 消息记录的存储、已读标记和搜索功能
- ✅ 使用日志记录 - 详细的API调用日志和系统监控
- ✅ 统计分析功能 - 多维度数据统计和图表展示
- ✅ 系统配置管理 - 灵活的系统参数配置
- ✅ 现代化界面设计 - 基于Element Plus的响应式UI组件
- ✅ 用户认证系统 - 登录/注册界面,支持Token自动刷新
- ✅ 仪表盘数据可视化 - 实时数据展示和图表分析
- ✅ 聊天机器人管理界面 - 机器人配置、模型选择、参数调整
- ✅ 实时聊天界面 - 支持多会话的聊天交互
- ✅ 聊天记录查看 - 消息历史、搜索筛选、已读状态管理
- ✅ 统计图表展示 - 基于ECharts的数据可视化
- ✅ 管理员后台 - 用户管理、系统监控、配置管理
- 语言: Go 1.21+
- 框架: Gin
- 数据库: MySQL
- ORM: GORM
- 认证: JWT
- 配置: Viper
- 框架: Vue 3
- 路由: Vue Router 4
- 状态管理: Vuex 4
- UI组件: Element Plus
- HTTP客户端: Axios
- 图表: ECharts
- 构建工具: Vite
aichatmgnt/
├── database/ # 数据库相关
│ └── init.sql # 数据库初始化脚本
├── backend/ # 后端Go代码
│ ├── config/ # 配置文件
│ ├── internal/ # 内部代码
│ │ ├── handler/ # HTTP处理器
│ │ ├── middleware/ # 中间件
│ │ ├── models/ # 数据模型
│ │ ├── repository/ # 数据访问层
│ │ └── service/ # 业务逻辑层
│ ├── pkg/ # 公共包
│ │ ├── database/ # 数据库连接
│ │ ├── logger/ # 日志
│ │ └── utils/ # 工具函数
│ ├── routes/ # 路由配置
│ ├── go.mod # Go模块文件
│ └── main.go # 主程序入口
└── frontend/ # 前端Vue代码
├── public/ # 静态资源
├── src/ # 源代码
│ ├── api/ # API接口
│ ├── assets/ # 资源文件
│ ├── components/ # 公共组件
│ ├── layout/ # 布局组件
│ ├── router/ # 路由配置
│ ├── store/ # 状态管理
│ ├── utils/ # 工具函数
│ ├── views/ # 页面组件
│ ├── App.vue # 根组件
│ └── main.js # 主程序入口
├── package.json # 依赖配置
└── vite.config.js # Vite配置
- Go 1.21+
- Node.js 16+
- MySQL 8.0+
# 创建数据库
mysql -u root -p
CREATE DATABASE aichatmgnt;
# 导入初始化脚本
mysql -u root -p aichatmgnt < database/init.sqlcd backend
# 安装依赖
go mod download
# 修改配置文件
cp config/config.yaml.example config/config.yaml
# 编辑config.yaml,配置数据库连接等信息
# 启动服务
go run main.go后端服务将在 http://localhost:8080 启动
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run serve前端服务将在 http://localhost:3000 启动
- 用户名:
admin - 密码:
123456
- POST
/api/v1/auth/login- 用户登录 - POST
/api/v1/auth/register- 用户注册
- GET
/api/v1/user/profile- 获取用户信息 - PUT
/api/v1/user/profile- 更新用户信息 - PUT
/api/v1/user/password- 修改密码
- GET
/api/v1/chatbots- 获取机器人列表 - POST
/api/v1/chatbots- 创建机器人 - PUT
/api/v1/chatbots/:id- 更新机器人 - DELETE
/api/v1/chatbots/:id- 删除机器人
- GET
/api/v1/sessions- 获取会话列表 - POST
/api/v1/sessions- 创建会话 - GET
/api/v1/sessions/my- 获取用户会话 - GET
/api/v1/sessions/:id/messages- 获取会话消息
- GET
/api/v1/messages- 获取消息列表 - POST
/api/v1/messages- 创建消息 - PUT
/api/v1/messages/:id/read- 标记消息已读
使用项目提供的启动脚本进行一键部署:
# 启动所有服务
./start.sh
# 停止所有服务
./stop.shcd backend
# 安装依赖
go mod download
# 编译运行
go build -o aichatmgnt main.go
./aichatmgnt
# 或直接运行
go run main.gocd frontend
# 安装依赖
npm install
# 开发环境
npm run serve
# 生产环境构建
npm run build
# 构建文件位于 dist/ 目录,可部署到nginx等Web服务器# 后端Dockerfile示例
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o aichatmgnt main.go
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/aichatmgnt .
CMD ["./aichatmgnt"]# 创建数据库
mysql -u root -p
CREATE DATABASE aichatmgnt;
# 导入初始化脚本
mysql -u root -p aichatmgnt < database/init.sql复制 backend/config/config.yaml.example 为 config.yaml 并修改相应配置:
server:
port: 8080
mode: debug # debug/release
database:
host: localhost
port: 3306
username: root
password: "your_password"
database: aichatmgnt
charset: utf8mb4
jwt:
secret: "your-secret-key"
expire_hours: 24
cors:
allow_origins: ["*"]
allow_methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"]项目采用分层架构:
handler: 处理HTTP请求service: 业务逻辑层repository: 数据访问层models: 数据模型定义
使用Vue 3 Composition API开发,主要特性:
- 基于Element Plus的UI组件
- Vuex状态管理
- Vue Router路由管理
- Axios HTTP请求
注:由于项目中暂无截图文件,以下为系统界面描述
- 🎨 现代化的登录设计,支持渐变背景
- 👤 用户名/密码登录,默认账号 admin/123456
- 📱 响应式设计,适配各种设备
- 📊 仪表盘 - 数据统计、图表展示、实时监控
- 🤖 聊天机器人管理 - 机器人创建、配置、参数调整
- 💬 聊天会话 - 会话列表、实时聊天、消息管理
- 📝 聊天记录 - 历史消息、搜索筛选、已读状态
- 📈 统计分析 - 使用统计、活跃度分析、成本统计
- ⚙️ 系统管理 - 用户管理、权限配置、系统设置
- 机器人配置界面 - 支持GPT、Claude等模型配置
- 实时聊天界面 - 支持多机器人、多会话切换
- 数据统计图表 - 基于ECharts的丰富可视化组件
- 用户管理后台 - 完整的用户权限管理系统
项目采用分层架构设计:
- Handler层: 处理HTTP请求,参数验证和响应格式化
- Service层: 业务逻辑处理,事务管理
- Repository层: 数据访问层,数据库操作封装
- Models层: 数据模型定义,数据库映射
基于Vue3的现代化开发:
- Composition API: 更好的逻辑复用和代码组织
- 状态管理: Vuex 4进行全局状态管理
- 路由管理: Vue Router 4处理页面路由
- 组件化开发: 可复用的UI组件设计
- 响应式设计: 基于Element Plus的适配性UI
- Go: 1.21+
- Node.js: 16+
- MySQL: 8.0+
- Git: 版本控制
- 服务器: Linux/Windows Server
- 内存: 最小2GB,推荐4GB+
- 存储: 最小10GB可用空间
- 网络: 支持HTTPS的域名推荐
- JWT Token认证机制
- 密码加密存储
- CORS跨域保护
- SQL注入防护
- XSS攻击防护
- 请求频率限制
- 敏感信息脱敏
- 数据库索引优化
- 前端代码分割
- 图片懒加载
- API响应缓存
- 分页查询
- 连接池管理
我们欢迎所有形式的贡献:
- 报告问题 - 在Issues中描述问题或建议
- 提交代码 - Fork项目并提交Pull Request
- 完善文档 - 改进README或API文档
- 功能建议 - 提出新功能的需求和设计
- 遵循现有代码风格
- 添加必要的测试用例
- 更新相关文档
- 提交前进行代码检查
本项目采用 MIT License - 详情请查看 LICENSE 文件
- 问题反馈: 请提交 GitHub Issues
- 功能建议: 请在Issues中标注enhancement标签
- 安全漏洞: 请通过私有渠道联系开发者
⭐ 如果这个项目对你有帮助,请给我们一个Star!