# java第17组电力安全工器具Agent **Repository Path**: LittleSogo/java-group-17 ## Basic Information - **Project Name**: java第17组电力安全工器具Agent - **Description**: 电力安全工器具全生命周期管理Agent——成群结队 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-09-06 - **Last Updated**: 2026-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电力安全工器具全生命周期管理 Agent 本项目是一个基于 **SpringBoot 3.x (JDK 21)** 后端和 **Vue 3** 前端构建的电力工器具管理系统,采用前后端分离架构。系统深度集成了 **DeepSeek 大模型** 能力,旨在通过 AI Agent 实现智能对话、工具查询、风险预警及知识库问答,助力电力企业实现工器具的精细化、智能化管理。 ## 🧠 AI 智能助手 (Agent) 系统内置 AI 智能助手,不仅支持自然语言交互,还具备通过意图识别自动调用后端业务工具的能力(RAG + Function Calling)。 ### Agent Chat (智能对话) - **自然语言交互**:用户可通过口语化描述查询工具信息,如 "查一下编号 A-001 的工具状态"。 - **工具调用 (Function Calling)**:Agent 会在对话中自动识别意图,调用后端 API 查询库存、借用状态或过期信息。 - **RAG 知识库问答**:支持上传电力安全规程、操作手册等文档,Agent 将基于文档内容回答专业问题。 - **多轮对话**:支持上下文记忆,可根据聊天历史进行追问。 ### Smart Reminders (智能提醒) - **过期预警**:自动检测并推送即将过期(3天/7天/30天)的工器具。 - **库存告警**:当某类型工器具库存低于安全阈值时主动提醒。 - **借用异常监控**:实时监控超期未还的工器具。 - **报废建议**:基于使用次数和健康评分,智能推荐需要报废的老旧工器具。 ### Tool Call (工具调用清单) Agent 可自动调用以下核心系统功能: | 工具名称 | 功能描述 | | :--- | :--- | | `get_tool_by_code` | 根据唯一编号查询工器具详细信息(型号、位置、健康状态等) | | `list_expiring` | 分级查询指定时间段内即将过期的工器具 | | `check_borrow_status` | 检查工器具当前的借用/归还状态及历史记录 | | `list_scrap_suggestions` | 获取系统建议报废的工器具列表 | | `list_stock_alerts` | 获取当前库存不足的工器具类型列表 | | `dashboard_summary` | 获取仪表盘核心统计数据(总数、在库、借用率等) | | `query_rag_docs` | 基于上传的文档知识库回答专业问题 | ## ⚙️ 技术栈 ### 后端 * **核心框架**:Spring Boot 3.x (JDK 21) * **ORM 框架**:MyBatis-Plus * **数据库**:MySQL 8.0 * **AI 集成**:DeepSeek API (Function Calling & RAG) * **定时任务**:Spring Schedule (用于自动巡检过期/库存) * **向量库**:In-Memory Embedding (RAG 文档检索) ### 前端 * **框架**:Vue 3 (Composition API) * **构建工具**:Vite * **UI 组件库**:Element Plus * **状态管理**:Pinia * **样式方案**:CSS3 + Element Plus 主题定制 ## 📦 功能特性 ### 1. 认证与安全 * **用户体系**:支持管理员与普通用户角色分离(RBAC)。 * **会话管理**:基于 Session 的登录态保持,支持登录拦截。 * **权限控制**:接口级别的登录拦截与越权访问保护。 ### 2. 工器具全生命周期管理 * **入库 (In):** 录入工器具基础信息(编号、类型、型号、生产厂商)。 * **检测 (Test):** 登记检测日期与结果,系统自动计算并生成下次检测日期。 * **借用/归还 (Borrow/Return):** 扫码快速借还,记录借用人与时间,支持管理员代还。 * **状态流转 (Status):** 严格的状态机控制(`在库` -> `借用中` -> `检测中` -> `报废`)。 * **过期管理 (Expire):** 自动计算剩余有效期,支持分级预警推送。 * **报废处理 (Scrap):** 支持手动报废,附带报废原因记录与通知。 ### 3. 数据可视化仪表盘 * **全局概览**:展示工器具总数、在库率、借用率、过期率等关键指标。 * **多维统计**:支持按 `团队`、 `变电站`、 `项目` 维度查看资产分布情况。 * **健康度分析**:根据使用次数自动计算工器具健康评分,低健康工具自动降级。 ### 4. 知识库管理 (RAG) * **文档上传**:支持上传 Word/Excel 格式的电力安全规程。 * **智能问答**:用户可向 Agent 提问手册中的具体条款,Agent 会引用文档段落进行回答。 ## 📂 项目结构 ``` . ├── springboot/ # Spring Boot 后端项目 │ ├── src/main/java/com/base/ │ │ ├── agent/ # AI 核心模块 (Chat, Tool definitions, DeepSeek Client) │ │ ├── config/ # 配置类 (AI, Schedule, Stock properties) │ │ ├── controller/ # REST API 控制器 │ │ ├── entity/ # 实体类 (SafetyTool, User, Record...) │ │ ├── mapper/ # MyBatis Mapper 接口 │ │ ├── rag/ # 知识库服务 (Document process, Embedding) │ │ ├── service/ # 业务逻辑层与实现 │ │ └── common/ # 常量、工具类、拦截器 │ └── resources/ │ └── application.yml # 核心配置 │ ├── vue/ # Vue 3 前端项目 │ ├── src/ │ │ ├── api/ # Axios 请求封装与 API 方法 │ │ ├── components/ # 通用组件 (AvatarUpload, ToolQrDialog) │ │ ├── layout/ # 布局组件 (AdminLayout) │ │ ├── router/ # Vue Router 配置 │ │ ├── store/ # Pinia 状态管理 (User, Global) │ │ ├── utils/ # 请求封装、格式化工具 │ │ └── views/ # 页面视图 (Dashboard, AgentChat, ToolList...) │ └── vite.config.js │ └── sql/ └── base.sql # MySQL 数据库初始化脚本 ``` ## 🚀 快速开始 ### 环境要求 - JDK 21+ - Node.js 18+ - MySQL 8.0+ - Maven 3.9+ ### 1. 后端配置与启动 **a. 数据库初始化** ```bash # 登录 MySQL 并执行初始化脚本 mysql -u root -p < sql/base.sql ``` **b. 配置 DeepSeek API** 在 `springboot/src/main/resources` 目录下,复制 `application-local.yml.template` 为 `application-local.yml`(如无模板可直接在 application.yml 中修改对应配置): ```yaml deepseek: api-key: your-deepseek-api-key base-url: https://api.deepseek.com model: deepseek-chat max-tool-rounds: 5 ``` **c. 启动服务** ```bash cd springboot mvn spring-boot:run ``` 服务默认运行地址: `http://localhost:8080` ### 2. 前端配置与启动 **a. 安装依赖** ```bash cd vue npm install ``` **b. 启动开发服务器** ```bash npm run dev ``` 访问地址: `http://localhost:5173` ## 📡 API 接口概览 | 模块 | 主要接口 | 描述 | | :--- | :--- | :--- | | **AI Agent** | `POST /api/agent/chat` | 核心对话接口,处理自然语言与工具调用 | | | `POST /api/rag/query` | 基于知识库进行问答 | | | `GET /api/agent/remind` | 获取 AI 生成的智能风险提醒摘要 | | **工器具** | `GET /api/tools` | 分页查询工具列表 | | | `POST /api/tools` | 创建新工具 | | | `GET /api/tools/expiring` | 查询即将过期工具 | | | `GET /api/tools/scrap-suggestions` | 获取报废建议 | | **借用管理** | `POST /api/borrows` | 借用工具 | | | `POST /api/borrows/{id}/return` | 归还工具 | | **仪表盘** | `GET /api/dashboard/stats` | 获取统计数据 | | | `GET /api/dashboard/report/export` | 导出 Excel 统计报表 | | **公共查询** | `GET /api/public/tools/{code}` | 扫码查询工具状态(无需登录) | ## 🔑 默认账号 项目启动后,可使用以下内置账号登录体验: | 角色 | 用户名 | 密码 | | :--- | :--- | :--- | | 管理员 | `admin` | `admin` | | 普通用户 | `user` | `user` | ## ⚖️ 许可证 本项目基于 **GPL-3.0** 开源协议(代码中未明确声明具体协议,本文案遵循原项目 README 声明)。 **声明:** 本项目仅供学习、参考及个人练习使用。禁止用于任何商业用途。