AI聊天助手系统
·
项目概述
本项目是一个基于Vue.js + Django的AI聊天助手系统,采用前后端分离架构,集成了阿里云DashScope AI服务,为用户提供智能对话体验。系统支持用户注册登录、会话管理、实时聊天等功能,具备完整的用户权限管理和数据持久化能力。
技术架构
后端技术栈
- 框架: Django 5.2.4
- API框架: Django REST Framework 3.16.0
- 认证系统: JWT (djangorestframework-simplejwt 5.5.0)
- WebSocket: Channels 4.3.0
- 异步HTTP: aiohttp 3.12.15
- 验证码: captcha 0.7.1
- 数据库: Django ORM (支持SQLite/MySQL/PostgreSQL)
前端技术栈
- 框架: Vue.js 3.2.13
- UI组件库: Element Plus 2.10.4
- 路由管理: Vue Router 4.0.3
- 状态管理: Vuex 4.0.2
- HTTP客户端: Axios 1.11.0
- Markdown渲染: vue3-markdown-it 1.0.10
- 样式预处理: Sass 1.89.2
- 构建工具: Vue CLI 5.0.0
系统功能
1. 用户管理
- 用户注册: 支持用户名密码注册,包含验证码验证
- 用户登录: JWT token认证,支持记住登录状态
- 权限管理: 区分管理员和普通用户角色
- 用户信息编辑: 支持修改用户名和密码
2. 聊天功能
- 实时对话: 基于WebSocket的实时消息传输
- AI智能回复: 集成阿里云DashScope AI服务
- 流式输出: 模拟打字机效果的流式消息显示
- Markdown渲染: 支持Markdown格式的消息内容
- 消息历史: 完整的对话记录保存和查看
3. 会话管理
- 会话创建: 支持创建新的对话会话
- 会话列表: 显示用户的所有历史会话
- 会话切换: 在不同会话间自由切换
- 会话删除: 支持删除不需要的会话记录
4. 管理功能
- 用户管理: 管理员可查看和管理所有用户
项目展示
1.登录界面

2.注册界面

3.用户管理页面

4.用户功能页面

项目结构
完整项目/
├── chat/ # Django后端项目
│ └── chat/
│ ├── char_ai/ # 主要应用模块
│ │ ├── models.py # 数据模型
│ │ ├── views.py # API视图
│ │ └── admin.py # 管理后台
│ ├── chat/ # Django项目配置
│ │ ├── settings.py # 项目设置
│ │ ├── urls.py # URL路由
│ │ └── consumers.py # WebSocket消费者
│ ├── ext/ # 扩展模块,主要存放验证、限流、权限、序列化功能代码
│ ├── manage.py # Django管理脚本
│ └── requirements.txt # Python依赖
└── vue-demo/ # Vue.js前端项目
├── src/
│ ├── components/ # 组件目录
│ │ ├── aside.vue # 侧边栏组件
│ │ └── userconmanage.vue
│ ├── views/ # 页面视图
│ │ ├── login.vue # 登录页面
│ │ ├── register.vue # 注册页面
│ │ ├── chat.vue # 聊天页面
│ │ ├── userhome.vue # 用户主页
│ │ └── adminhome.vue # 管理员主页
│ ├── api/ # API接口
│ ├── router/ # 路由配置
│ ├── store/ # Vuex状态管理
│ ├── assets/ # 静态资源
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
├── package.json # 项目配置
└── README.md # 项目说明
数据模型设计
用户模型 (Userinfo)
id: 用户唯一标识username: 用户名(唯一)password: 密码(加密存储)role: 用户角色(admin/user)
会话模型 (Conversation)
id: 会话唯一标识user: 关联用户(外键)title: 会话标题created_at: 创建时间updated_at: 更新时间
消息模型 (Message)
id: 消息唯一标识conversation: 关联会话(外键)role: 消息角色(user/assistant/system)content: 消息内容timestamp: 时间戳
API接口设计
认证相关
POST /api/register/- 用户注册POST /api/login/- 用户登录GET /api/token/- Token验证
用户管理
GET /api/admin/user- 管理员获取所有用户列表POST /api/admin/user/<int:id>- 管理员重置用户密码PUT /api/admin/user/<int:id>- 管理员更新用户信息DELETE /api/admin/user/<int:id>- 管理员删除用户PUT /api/user/user/<int:id>- 用户更新个人信息
会话管理
POST /api/conversation/{id}/- 创建会话GET /api/conversations/- 获取会话列表DELETE /api/conversation/{id}/- 删除会话
消息管理
POST /api/chat/sendrespone- 保存聊天消息记录GET /api/chat/send/{conversation_id}/- 获取会话消息
WebSocket
ws://localhost:8001/ws/chat/- 实时聊天连接,实现发送和回复信息
部署说明
环境要求
- Python 3.8+
- Node.js 16+
- pnpm 或 npm
后端部署
# 进入后端目录
cd chat/chat
# 安装依赖
pip install -r requirements.txt
# 数据库迁移
python manage.py makemigrations
python manage.py migrate
# 启动开发服务器WSGI
python manage.py runserver 8000
# 启动开发服务器ASGI-主要做deepseek的api接口的发送信息和回复信息
daphne -b 0.0.0.0 -p 8001 chat.asgi:application
前端部署
# 进入前端目录
cd vue-demo
# 安装依赖
pnpm install
# 启动开发服务器
pnpm run serve
# 构建生产版本
pnpm run build
特色功能
1. 智能对话体验
- 集成阿里云DashScope AI服务,提供高质量的智能回复
- 支持流式输出,模拟真实对话体验
- Markdown格式支持,丰富消息展示效果
2. 完善的权限管理
- JWT token认证,安全可靠
- 角色权限分离,管理员和普通用户功能区分
- 验证码机制,防止恶意注册
3. 实时通信
- WebSocket技术,实现真正的实时对话
- 消息即时推送,无需刷新页面
- 连接状态管理,自动重连机制
4. 用户友好的界面
- Element Plus组件库,现代化UI设计
- 响应式布局,适配不同设备
- 直观的会话管理界面
技术亮点
- 前后端分离架构: 采用Vue.js + Django REST Framework,实现前后端完全分离
- 实时通信: 基于WebSocket的实时消息传输,提供流畅的聊天体验
- AI集成: 集成阿里云DashScope AI服务,提供智能对话能力
- 安全性: JWT认证、密码加密、验证码等多重安全机制
- 可扩展性: 模块化设计,易于功能扩展和维护
项目总结
本项目成功实现了一个功能完整的AI聊天助手系统,具备用户管理、实时聊天、会话管理、权限控制等核心功能。采用现代化的技术栈和架构设计,具有良好的用户体验和系统性能。项目代码结构清晰,注释完善,便于后续维护和功能扩展。
通过本项目的开发,深入理解了前后端分离架构、WebSocket实时通信、AI服务集成、用户认证授权等关键技术,为后续类似项目的开发积累了宝贵经验。
更多推荐



所有评论(0)