# AutoOPS **Repository Path**: cai-jingchuang/AutoOPS ## Basic Information - **Project Name**: AutoOPS - **Description**: 一个基于 FastAPI 和 Vue 3 的智能设备运维系统 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-01-25 - **Last Updated**: 2026-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoOPS 智慧运维系统 一个基于 FastAPI 和 Vue 3 的智能设备运维系统,集成 MCP 协议,提供智能对话、知识库管理和Agent调节设备参数等功能。 > 这个是个人项目,没有经过落地验证效果,只是实现了Agent+工作智慧化的一个想法,可用于学习和参考。 ## 功能特性 ### 核心功能 - **智能对话系统**:基于 LangChain 和 LangGraph 的 AI 智能助手,支持流式响应 - **知识库管理**:支持单个添加和批量导入设备故障问答知识 - **会话管理**:支持创建新会话,自动保存历史记录 - **主题切换**:支持白色/深色主题切换,自动保存用户偏好 - **用户认证**:完整的用户注册和登录系统 ### MCP 设备控制 系统集成了 MCP 协议,提供以下设备参数调节工具: - 真空值调节 - 温度设定值调节 - 压力设定值调节 - 运行速度调节 - 液压系统压力调节 - 气动系统压力调节 - 伺服电机 PID 参数调节 - 电机运行参数调节 - 传感器参数调节 - 控制系统 PID 参数调节 - 冷却系统温度调节 - 送料速度调节 - 制动器参数调节 - 电机扭矩调节 - 原点位置调节 - 同步参数调节 - 过载保护参数调节 - 变频器频率调节 ### 知识库功能 - 支持单个问答添加 - 支持 JSON 文件批量导入 - 基于向量数据库(Milvus)的语义检索 - 结合 BM25 和稠密向量的混合检索算法 - 使用 RRF (Reciprocal Rank Fusion) 合并检索结果 ## 技术栈 ### 后端 - **FastAPI**:高性能 Python Web 框架 - **LangChain**:AI 应用开发框架 - **LangGraph**:构建有状态的 AI 应用 - **FastMCP**:MCP 协议实现 - **PyMySQL**:MySQL 数据库连接 - **Pymilvus**:向量数据库客户端 - **Zhipu AI**:智谱 AI Embedding 模型 - **LangChain MCP Adapters**:MCP 工具集成 ### 前端 - **Vue 3**:渐进式 JavaScript 框架 - **Vue Router**:路由管理 - **Vite**:前端构建工具 - **Markdown-it**:Markdown 渲染 ### 数据库 - **MySQL**:用户和会话数据存储 - **Milvus**:知识库向量存储 ## 项目结构 ``` AutoOPS/ ├── asset/ # 资源文件 │ ├── auto_ops.sql # 数据库初始化脚本 │ └── machine_qa.json # 设备故障问答知识库 ├── mcp/ # MCP 服务器 │ └── mcp_server.py # 设备操作 MCP 服务 ├── src/ # 后端源码 │ ├── agent_helper.py # AI 助手核心逻辑 │ ├── api.py # FastAPI 路由定义 │ ├── api_model.py # Pydantic 数据模型 │ ├── db_helper.py # 数据库操作封装 │ ├── middlewares.py # 中间件 │ ├── prompts.py # AI 提示词 │ └── tools.py # 工具函数 ├── web/ # 前端源码 │ ├── src/ │ │ ├── components/ │ │ │ ├── Chat.vue # 聊天界面 │ │ │ ├── KnowledgeBase.vue # 知识库管理 │ │ │ └── Login.vue # 登录界面 │ │ ├── styles/ │ │ │ └── main.css # 全局样式 │ │ ├── App.vue # 根组件 │ │ └── main.js # 应用入口 │ ├── index.html │ └── package.json ├── pyproject.toml # Python 项目配置 └── README.md # 项目文档 ``` ## 安装部署 ### 环境要求 - Python >= 3.12 - Node.js >= 16 - MySQL >= 8.0 - Milvus >= 2.6 ### 后端安装 1. 克隆项目 ```bash git clone cd AutoOPS ``` 2. 安装 Python 依赖 ```bash # 使用 uv 安装(推荐) pip install uv uv sync 3. 配置环境变量 创建 `.env` 文件: ```env # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=your_password # Milvus 配置 MILVUS_URI=http://localhost:19530 MILVUS_TOKEN=your_milvus_token # 智谱 AI 配置 ZHIPU_API_KEY=your_zhipu_api_key # OpenAI 兼容 API 配置 OPENAI_API_KEY=your_openai_api_key BASE_URL=https://api.openai.com/v1 MODEL_NAME=gpt-4 # MCP 服务器配置 MCP_SERVER_URL=http://localhost:8300/sse ``` 4. 初始化数据库 ```bash mysql -u root -p < asset/auto_ops.sql ``` 5. 启动后端服务 ```bash cd src python -m uvicorn api:app --host 0.0.0.0 --port 8000 ``` ### 前端安装 1. 安装依赖 ```bash cd web npm install ``` 2. 启动开发服务器 ```bash npm run dev ``` 3. 构建生产版本 ```bash npm run build ``` ### MCP 服务器启动 ```bash cd mcp python mcp_server.py ``` ## 使用说明 ### 用户注册与登录 1. 访问系统首页 2. 点击"注册新账号"创建账户 3. 使用用户名和密码登录系统 ### 智能对话 1. 进入"聊天中心" 2. 输入设备问题或指令 3. AI 助手会自动分析并执行相应操作 4. 支持创建新会话,清空当前对话 ### 知识库管理 1. 进入"知识库管理" 2. 单个添加:输入问题和答案,点击"添加到知识库" 3. 批量导入:上传 JSON 格式的问答文件,点击"批量导入" 4. 搜索功能:输入关键词检索相关问答 ### 主题切换 点击侧边栏左下角的主题切换按钮(🌙/☀️)在白色和深色主题之间切换。 ### MCP 工具调用 当用户提出设备参数调节需求时,AI 助手会自动调用相应的 MCP 工具: - 示例:"帮我把 翻转真空 调成 35" - 系统会调用 `adjust_vacuum` 工具执行调节 ## API 接口文档 ### 认证接口 - `POST /login` - 用户登录 - `POST /register` - 用户注册 ### 对话接口 - `POST /chat` - 发送消息(流式响应) - `POST /create_session` - 创建新会话 ### 知识库接口 - `POST /add_knowledge_qa` - 添加单个问答 - `POST /search_knowledge_qa` - 搜索知识库 - `POST /batch_import_knowledge` - 批量导入问答 ## 知识库 JSON 格式 批量导入的 JSON 文件格式示例: ```json [ { "question": "设备真空值过高怎么办?", "answer": "检查真空泵是否正常工作,调整真空值至35左右,确保真空系统密封性良好。" }, { "question": "设备温度异常升高怎么办?", "answer": "检查冷却系统是否正常,调整温度设定值至标准范围,检查散热风扇是否运转。" } ] ``` 要求: - `question` 字段最多 200 字 - `answer` 字段最多 500 字 - 文件必须包含至少一条问答 ## 开发说明 ### 添加新的 MCP 工具 1. 在 `mcp/mcp_server.py` 中定义工具函数 2. 使用 `@mcp.tool` 装饰器注册 3. 在 `src/prompts.py` 中更新提示词 ### 添加新的知识库问答 1. 准备 JSON 格式的问答数据 2. 在前端"知识库管理"中批量导入 3. 或直接添加到数据库 ## 常见问题 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request! ## 联系方式 如有问题,请联系项目维护者。