Appearance
项目介绍
Hertz System 是由重庆瀚驰网络科技有限公司旗下赫兹工作室打造的智能管理与 AI 应用平台,采用前后端分离架构:
- 后端:Hertz Server Django(Django + DRF + Channels)
- 前端:hertz_server_diango_ui_2(Vue 3 + Ant Design Vue + Vite + Pinia)
- AI / YOLO 子系统:集成 Ollama、YOLO 检测与训练、系统监控等能力
本页作为「总览」,帮助你从整体上理解项目结构和功能模块。更细节的前后端说明分别见:
整体架构
项目整体可以概括为三层:
- 前端层(Web UI):Vue3 管理端 + 检测端 + AI 端
- 后端服务层(Django):REST API + WebSocket + YOLO/AI 服务
- 基础设施层:数据库(MySQL/SQLite)、缓存(Redis)、文件与模型存储
一个典型的调用链路如下:
text
浏览器(用户)
└─ 前端 hertz_server_diango_ui_2(Vue3)
└─ Axios 请求后端 /api/... 接口
└─ Django + DRF 业务处理
├─ 访问数据库 / Redis
├─ 调用 YOLO / AI 模块
└─ 通过 HertzResponse 统一返回结果业务功能地图
- 仪表盘:统一概览检测次数、告警数量、趋势统计及快捷入口
- 用户 / 组织与权限:用户、部门、角色、菜单管理与权限分配
- 文章 / 知识库管理:文章分类、内容发布、审核与版本管理
- 通知与日志:系统通知发布、站内消息,以及操作日志审计
- YOLO 模块:模型管理、数据集管理、训练任务、实时/离线检测与告警处理
- 系统监控:CPU / 内存 / 磁盘 / 网络等实时监控视图
- AI 助手:基于 Ollama 的多会话对话与知识问答
- 知识库 / 文档中心:面向终端用户的知识文档浏览
- 个人中心 / 消息中心:个人资料、密码修改与消息通知
🎨 前端项目结构 (hertz_server_diango_ui_2)
text
hertz_server_diango_ui_2/
├── public/ // 静态资源目录
│ └── vite.svg // 应用图标
├── src/ // 源代码目录
│ ├── api/ // API接口定义
│ │ ├── auth.ts // 认证相关API
│ │ ├── user.ts // 用户管理API
│ │ ├── ai.ts // AI助手API
│ │ ├── captcha.ts // 验证码API
│ │ ├── dashboard.ts // 仪表板API
│ │ ├── department.ts // 部门管理API
│ │ ├── knowledge.ts // 知识库API
│ │ ├── log.ts // 日志管理API
│ │ ├── menu.ts // 菜单管理API
│ │ ├── notice_user.ts // 通知API
│ │ ├── password.ts // 密码管理API
│ │ ├── role.ts // 角色管理API
│ │ ├── System_monitor.ts // 系统监控API
│ │ └── index.ts // API统一导出
│ ├── components/ // 公共组件
│ │ └── HelloWorld.vue // 示例组件
│ ├── views/ // 页面组件
│ │ ├── Home.vue // 首页
│ │ ├── Login.vue // 登录页
│ │ ├── NotFound.vue // 404页面
│ │ ├── admin_page/ // 管理员页面
│ │ ├── user_pages/ // 用户页面
│ │ └── demo/ // 演示页面
│ ├── router/ // 路由配置
│ │ ├── index.ts // 主路由配置
│ │ ├── admin_menu.ts // 管理员菜单路由
│ │ ├── user_menu.ts // 用户菜单路由
│ │ └── user_menu_ai.ts // AI功能路由
│ ├── stores/ // 状态管理 (Pinia)
│ │ ├── Hertz_app.ts // 应用状态
│ │ └── Hertz_user.ts // 用户状态
│ ├── utils/ // 工具函数
│ │ ├── Hertz_request.ts // HTTP请求封装
│ │ ├── Hertz_captcha.ts // 验证码工具
│ │ ├── Hertz_env.ts // 环境变量管理
│ │ ├── Hertz_error_handler.ts // 错误处理
│ │ ├── Hertz_permission.ts // 权限控制
│ │ ├── Hertz_router_utils.ts // 路由工具
│ │ ├── Hertz_utils.ts // 通用工具
│ │ └── menu_mapping.ts // 菜单映射
│ ├── types/ // TypeScript类型定义
│ │ ├── env.d.ts // 环境变量类型
│ │ └── Hertz_types.ts // 业务类型定义
│ ├── locales/ // 国际化文件
│ │ ├── index.ts // 国际化配置
│ │ ├── zh-CN.ts // 中文语言包
│ │ └── en-US.ts // 英文语言包
│ ├── styles/ // 样式文件
│ │ ├── index.scss // 全局样式
│ │ └── variables.scss // 样式变量
│ ├── assets/ // 静态资源
│ │ └── vue.svg // Vue图标
│ ├── App.vue // 根组件
│ ├── main.ts // 应用入口
│ ├── style.css // 全局CSS
│ └── vite-env.d.ts // Vite类型声明
├── .vscode/ // VSCode配置
│ └── extensions.json // 推荐扩展
├── package.json // 项目依赖配置
├── package-lock.json // 依赖锁定文件
├── vite.config.ts // Vite构建配置
├── tsconfig.json // TypeScript配置
├── tsconfig.app.json // 应用TS配置
├── tsconfig.node.json // Node.js TS配置
├── eslint.config.js // ESLint配置
├── components.d.ts // 组件类型声明
├── .editorconfig // 编辑器配置
├── .env // 环境变量文件
├── .gitignore // Git忽略文件
├── index.html // HTML入口文件
└── README.md // 前端项目说明⚙️ 技术栈说明
后端技术栈
- Django 5.2.6: Python Web框架,提供强大的ORM和管理后台
- Django REST Framework: 构建RESTful API的强大工具
- Redis: 高性能缓存和会话存储
- MySQL/SQLite: 关系型数据库支持
- Ollama: 本地大语言模型集成
- WebSocket: 实时通信支持
前端技术栈
- Vue 3.5.21: 渐进式JavaScript框架,使用组合式API
- TypeScript 5.8.3: 提供类型安全的JavaScript开发
- Vite 7.1.6: 快速的前端构建工具
- Pinia 3.0.3: Vue的现代状态管理库
- Vue Router 4.5.1: Vue官方路由管理器
- Ant Design Vue: UI 组件库
- ECharts 6.0.0: 数据可视化图表库
- Axios 1.12.2: HTTP客户端请求库
- Vue I18n: 国际化支持
- Socket.IO: 实时双向通信
模块路径对照
| 模块/服务 | 目录路径 | API 前缀 / 入口 | 核心能力 |
|---|---|---|---|
| 核心配置 | hertz_server_django/ | settings.py, urls.py | 全局配置、路由、ASGI/WSGI 入口 |
| 启动器 | start_server.py | CLI | 自动迁移、数据初始化、菜单同步、Daphne 启动 |
| 权限体系 | hertz_studio_django_auth/ | /api/auth/ | 用户、角色、菜单、JWT、部门 |
| 验证码 | hertz_studio_django_captcha/ | /api/captcha/ | 图形验证码生成与校验 |
| AI 对话 | hertz_studio_django_ai/ | /api/ai/ | Ollama 对话、历史记录 |
| 系统监控 | hertz_studio_django_system_monitor/ | /api/system/ | 主机资源、进程监控 |
| 通知公告 | hertz_studio_django_notice/ | /api/notice/ | 公告发布、用户通知 |
| 日志审计 | hertz_studio_django_log/ | /api/log/ | 操作日志记录、查询、导出 |
| 知识库 | hertz_studio_django_wiki/ | /api/wiki/ | 分类树、文章管理、发布审核 |
| 代码生成 | hertz_studio_django_codegen/ | /api/codegen/ | CRUD 代码 & 菜单自动生成 |
| YOLO 检测 | hertz_studio_django_yolo/ | /api/yolo/ + WebSocket | 模型配置、告警、检测历史 |
| Demo 演示 | hertz_demo/ | /demo/、/ws/demo/ | 验证码、邮件、WebSocket 示例 |
| 工具库 | hertz_studio_django_utils/ | - | 菜单/部门配置、加密、邮件、校验、YOLO 工具 |
| 前端工程 | hertz_server_diango_ui_2/ | npm run dev | Vue3 管理端、权限菜单、主题系统 |
| 静态资源 | static/ | /static/ | FFmpeg 工具、YOLO 模型权重与训练结果 |
模块深度解析
hertz_server_django(主配置层)
- 关键文件:
settings.py、urls.py、asgi.py - 注意事项:
USE_REDIS_AS_DB控制数据库配置分支,生产通常为 False + MySQL
start_server.py(自动化启动器)
- 流程:注册应用 → 迁移 → 初始化数据 → 同步菜单 → 启动 Daphne + 热重启
hertz_studio_django_auth
- 模型:用户、角色、菜单、部门、角色菜单映射
- 接口:登录、注册、菜单树、角色分配、部门树
hertz_studio_django_ai
- 能力:Ollama 模型对话、模型列表、历史、流式回复
hertz_studio_django_yolo
- 能力:模型管理、类别/告警、图像/视频检测、告警推送、历史查询
- 默认:初始化 YOLOv12 示例模型
更多模块
- 验证码、通知公告、系统监控、日志、知识库、代码生成、工具库、Demo 等,详见 README 对应条目