不改动原有流程的基础上,新增了支持动态工具调用的MCP版本:
## 主要变更
### 1. 核心MCP组件
- 新增 MCPServer: 提供MCP工具的注册、管理和执行
- 新增 MCPTool: MCP工具定义数据结构
- 新增 MCPResponse: MCP响应统一格式
- 新增 AIAnswerServiceMCP: 基于MCP的AI回答生成服务
- 新增 AIAnswerMCPController: MCP版本REST API控制器
### 2. MCP工具支持
- repair_query: 根据工单ID查询工单详细信息
- repair_feedback_query: 查询工单feedback处理结果
- similarity_search: 基于文本相似度检索相似案例
- knowledge_query: 知识库精确匹配查询
### 3. LLM集成扩展
- QwenChatService: 增加MCP工具调用支持
- ChatRequest/ChatResponse: 添加MCP相关字段
- 实现动态工具调用和结果整合逻辑
### 4. API端点
- GET /api/ai/mcp/tools: 获取可用MCP工具列表
- POST /api/ai/mcp/answer: MCP版本AI回答生成
- POST /api/ai/mcp/answer/stream: MCP版本流式回答
- POST /api/ai/mcp/compare: 对比MCP与原版本结果
- GET /api/ai/mcp/test/{toolName}: 测试特定MCP工具
### 5. 配置支持
- application.yml: 添加完整的MCP配置项
- 支持工具启用/禁用、缓存、超时等配置
## 技术特点
1. **动态工具调用**: LLM可根据需要动态选择和调用工具
2. **数据源一致**: 使用与原版本完全相同的数据库查询
3. **优先级保持**: 维持feedback > 相似案例 > 通用建议的优先级
4. **完整监控**: 记录工具调用日志、执行时间、成功率等
5. **降级机制**: 工具调用失败时自动降级处理
6. **无侵入性**: 原有功能完全不受影响,通过配置控制启用
## 架构对比
- 原版本: 硬编码数据库查询 → 预处理prompt → LLM
- MCP版本: LLM动态调用MCP工具 → 实时数据获取 → 智能回答生成
## 文档
- 新增 MCP_IMPLEMENTATION.md: 详细的实现文档和使用指南
这个实现确保了结果的一致性,同时为未来的功能扩展提供了更灵活的架构基础。
|
||
|---|---|---|
| .vscode | ||
| db | ||
| src | ||
| .gitignore | ||
| COMPILATION_FIXES_SECURITY_REVIEW.md | ||
| ERROR_CAPTURE_GUIDE.md | ||
| LLM_STREAMING_SUMMARY.md | ||
| MCP_IMPLEMENTATION.md | ||
| README.md | ||
| frontend-api-documentation.md | ||
| pom.xml | ||
README.md
YouFool DevOps 广东运维管理系统 (CW)
🎯 项目概览
YouFool DevOps 运维管理系统(广东)是基于 Spring Boot 框架开发的企业级运维管理平台。
核心特性
- 🔧 运维报障管理: 完整的故障报告、处理流程和状态跟踪
- 👥 组织架构管理: 用户、工程师信息管理和权限控制
- 📋 任务分配系统: 领导任务分配和工作流管理
- 📊 数据统计分析: 多维度数据统计和报表生成
- 🔄 实时通信: WebSocket 支持的实时消息推送
- 📝 错误日志管理: 可配置的错误捕获和日志管理系统
🏗️ 技术架构
运行环境
- Java: JDK 21 (OpenJDK)
- 框架: Spring Boot 2.7.18
- 构建工具: Maven 3.x
- 容器: Apache Tomcat 9.0.83
数据层
- 数据库: PostgreSQL 11.7
- 连接池: Druid 1.2.23
- ORM: MyBatis-Plus 3.5.7
- 数据源: 双数据源架构 (devops + youfool)
核心依赖
- 企业框架: youfool-framework-springboot 1.1.1-SNAPSHOT
- 安全框架: Apache Shiro 1.12.0
- API文档: SpringDoc OpenAPI 1.8.0
- HTTP客户端: Forest 1.5.16
- Excel处理: EasyExcel 2.2.6 + Spire.XLS 3.9.1
技术亮点
- ✅ JDK 21 现代化升级: 从 JDK 1.8 升级至 JDK 21,支持最新 Java 特性
- ✅ SpringDoc OpenAPI: 从 SpringFox 迁移至现代化 API 文档解决方案
- ✅ 双数据源架构: 支持 devops 和 youfool 两个数据源的事务管理
- ✅ 异步错误日志: 高性能的错误日志捕获和管理系统
📂 项目结构
src/main/java/com/chinaweal/youfool/devops/
├── base/ # 基础环境模块
│ ├── controller/ # 基础数据控制器 (字典、任务、错误日志等)
│ ├── entity/ # 基础实体类
│ └── service/ # 基础服务层
├── repair/ # 运维报障模块 (核心业务)
│ ├── controller/ # 报障管理控制器
│ ├── entity/ # 报障相关实体类
│ ├── excel/ # Excel 导入导出
│ ├── scheduled/ # 定时任务
│ └── service/ # 业务服务层
├── org/ # 组织架构模块
│ ├── controller/ # 用户和工程师管理
│ ├── entity/ # 用户实体类
│ └── business/ # 业务系统集成
├── leaderassign/ # 领导分配模块
│ ├── controller/ # 任务分配控制器
│ └── entity/ # 分配任务实体
├── websocket/ # WebSocket 模块
│ └── server/ # 实时通信服务
├── config/ # 配置类
├── util/ # 工具类
└── DevOpsApplication.java # 应用主类
🚀 快速开始
环境要求
- JDK 21+
- PostgreSQL 11+
- Maven 3.6+
启动应用
# 开发环境启动
mvn clean package -DskipTests=true
mvn spring-boot:run -Dspring-boot.run.profiles=dev
访问地址
- 应用主页: http://localhost:8080
- API文档: http://localhost:8080/swagger-ui.html
- Druid监控: http://localhost:8080/druid (admin/123456)
- 错误日志管理: http://localhost:8080/api/error-logs/
API文档分组
- 组织架构: 用户和工程师管理接口
- 运维报障: 核心业务功能接口
- 基础环境: 字典和基础数据接口
- WebSocket测试环境: 实时通信测试接口
- 领导分配: 任务分配相关接口
📊 配置说明
环境配置
application-dev.yml: 开发环境配置application-prod.yml: 生产环境配置application-local.yml: 本地开发配置
错误日志配置
系统支持完整的错误日志管理,可通过 error-log.* 配置项控制:
error-log:
enabled: true # 全局开关
startup-enabled: true # 启动错误日志
runtime-enabled: true # 运行时错误日志
database-enabled: true # 数据库错误日志
business-enabled: true # 业务错误日志
log-directory: logs/errors # 日志目录
async-write: true # 异步写入
🛡️ 系统监控
错误日志管理
- Web界面:
/api/error-logs/提供完整的日志管理功能 - 日志分类: 启动、运行时、数据库、业务错误分类存储
- 自动清理: 支持按天数自动清理历史日志
- 性能优化: 异步写入,不影响业务性能
数据库健康检查
- 双数据源监控: devops 和 youfool 数据源健康状态检查
- 连接信息展示: 启动时显示数据库连接详情
- 表访问测试: ENGINEER 表数据访问验证
Druid 连接池监控
- 访问地址: http://localhost:8080/druid
- 监控内容: SQL执行统计、连接池状态、慢SQL分析
- 登录信息: admin / 123456
🔒 安全特性
- Apache Shiro: 基于角色的访问控制 (RBAC)
- JWT Token: 10小时后端令牌生命周期
- RSA 加密: 敏感数据加密传输
- SM3 哈希: 密码安全哈希存储
- 请求拦截: 全局登录状态验证