# Hertz Admin

Hertz Admin 是一个基于 Spring Boot 3 和 Vue 3 的前后端分离架构的轻量级权限管理平台。系统集成了用户管理、角色管理、菜单管理等核心功能，采用 RBAC（Role-Based Access Control）模型实现细粒度的权限控制。

## 🛠 技术栈

### 后端 (Backend)

- **核心框架**: Spring Boot 3.4.1
- **持久层**: MyBatis-Plus 3.5.8
- **安全认证**: Spring Security + JJWT 0.12.6 (Stateless JWT)
- **数据库**: MySQL 8.0+
- **构建工具**: Maven
- **运行环境**: JDK 21

### 前端 (Frontend)

- **核心框架**: Vue 3.5.24
- **构建工具**: Vite 7.2.4
- **UI 组件库**: Element Plus 2.13.1
- **状态管理**: Pinia 3.0.4
- **路由管理**: Vue Router 4.6.4
- **HTTP 客户端**: Axios 1.13.2

## ✨ 主要功能

- **用户管理**: 用户增删改查、角色分配、状态控制。
- **角色管理**: 角色创建与权限分配（菜单/按钮级）。
- **菜单管理**: 动态路由配置，支持目录、菜单、按钮三种类型。
- **个人中心**: 用户资料更新、密码修改。
- **文件上传**: 头像上传与静态资源访问（默认存放在项目 `./uploads`）。
- **监控模块**: 系统资源（CPU、内存、磁盘、JVM）实时监控。
- **AI 助手**: 集成 Spring AI，支持智能对话、历史记录与知识库（RAG）。

## 🚀 快速开始

### 环境要求

- JDK 21+
- Node.js 18+
- MySQL 8.0+
- Ollama（本地大模型运行时，用于 AI 对话与知识库向量化）

### 后端启动

1.  数据库配置：
    - 创建数据库 `hertz_springboot`。
    - 导入初始化脚本 `db/init.sql`。
    - ~~额外导入以下脚本以启用监控与知识库功能：~~
      - ~~`src/main/resources/schema/monitor_schema.sql`~~
      - ~~`src/main/resources/schema/knowledge_schema.sql`~~
    - 修改 `src/main/resources/application.yml` 中的数据库连接配置。
2.  启动服务：
    ```bash
    mvn spring-boot:run
    ```
    服务默认运行在 `http://localhost:8088`。

### AI（Ollama）准备

本项目的 AI 模块依赖 Ollama：

- **聊天模型**：由 `spring.ai.ollama.chat.model` 指定（例如 `deepseek-llm:7b`）
- **向量化模型（Embedding）**：由 `spring.ai.ollama.embedding.model` 指定（默认 `nomic-embed-text`）

首次使用知识库（RAG）前，请在运行后端的机器上拉取向量化模型：

```bash
ollama pull nomic-embed-text
```

如需拉取聊天模型（根据你的配置决定）：

```bash
ollama pull deepseek-llm:7b
```

### 前端启动

1.  进入前端目录：
    ```bash
    cd ui
    ```
2.  安装依赖：
    ```bash
    npm install
    ```
3.  启动开发服务：
    ```bash
    npm run dev
    ```
    服务默认运行在 `http://localhost:5173`。

## 👤 初始账号

| 角色 | 用户名 | 密码 | 权限 |
| :--- | :--- | :--- | :--- |
| **管理员** | `hertz` | `hertz` | 拥有所有系统权限 |
| **普通用户** | `demo` | `123456` | 仅拥有基本查看权限 |

## 📂 项目结构

```text
HertzAdmin-SpringBoot/
├── db/                     # 数据库初始化脚本
├── src/                    # 后端源码 (Spring Boot)
├── ui/                     # 前端源码 (Vue 3 + Vite)
├── pom.xml                 # Maven 依赖配置
├── 项目说明文档.md          # 详细项目文档
├── 数据库说明文档.md        # 数据库设计文档
└── README.md               # 项目概览 (本文档)
```

## 📄 许可证

本项目采用 MIT 许可证。
