Skip to content

never112/aichatmanager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI聊天管理平台

一个功能完整的AI聊天记录管理平台,采用Vue3 + Golang技术栈开发,支持用户管理、聊天机器人管理、聊天记录管理和统计分析等功能。

🌟 功能特性

后端功能 (Golang)

  • 用户认证和授权 - 基于JWT的安全认证机制
  • 用户管理 - 完整的用户增删改查功能,支持角色权限管理
  • 聊天机器人管理 - AI机器人的创建、配置、管理和监控
  • 聊天会话管理 - 会话的创建、更新、删除和状态管理
  • 聊天记录管理 - 消息记录的存储、已读标记和搜索功能
  • 使用日志记录 - 详细的API调用日志和系统监控
  • 统计分析功能 - 多维度数据统计和图表展示
  • 系统配置管理 - 灵活的系统参数配置

前端功能 (Vue3)

  • 现代化界面设计 - 基于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+

1. 数据库配置

# 创建数据库
mysql -u root -p
CREATE DATABASE aichatmgnt;

# 导入初始化脚本
mysql -u root -p aichatmgnt < database/init.sql

2. 后端启动

cd backend

# 安装依赖
go mod download

# 修改配置文件
cp config/config.yaml.example config/config.yaml
# 编辑config.yaml,配置数据库连接等信息

# 启动服务
go run main.go

后端服务将在 http://localhost:8080 启动

3. 前端启动

cd frontend

# 安装依赖
npm install

# 启动开发服务器
npm run serve

前端服务将在 http://localhost:3000 启动

默认账号

  • 用户名: admin
  • 密码: 123456

API接口

认证接口

  • 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.sh

手动部署

1. 后端部署

cd backend

# 安装依赖
go mod download

# 编译运行
go build -o aichatmgnt main.go
./aichatmgnt

# 或直接运行
go run main.go

2. 前端部署

cd frontend

# 安装依赖
npm install

# 开发环境
npm run serve

# 生产环境构建
npm run build
# 构建文件位于 dist/ 目录,可部署到nginx等Web服务器

3. Docker部署 (可选)

# 后端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.exampleconfig.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响应缓存
  • 分页查询
  • 连接池管理

🤝 贡献指南

我们欢迎所有形式的贡献:

  1. 报告问题 - 在Issues中描述问题或建议
  2. 提交代码 - Fork项目并提交Pull Request
  3. 完善文档 - 改进README或API文档
  4. 功能建议 - 提出新功能的需求和设计

开发规范

  • 遵循现有代码风格
  • 添加必要的测试用例
  • 更新相关文档
  • 提交前进行代码检查

📄 许可证

本项目采用 MIT License - 详情请查看 LICENSE 文件

📞 联系方式

  • 问题反馈: 请提交 GitHub Issues
  • 功能建议: 请在Issues中标注enhancement标签
  • 安全漏洞: 请通过私有渠道联系开发者

⭐ 如果这个项目对你有帮助,请给我们一个Star!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published