# elevator-agent **Repository Path**: kaigee/elevator-agent ## Basic Information - **Project Name**: elevator-agent - **Description**: 基于 LangChain + LangGraph + LLM + RAG 的电梯智能维保系统 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-30 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Elevator Agent - 电梯智能维保系统 基于 LangChain + LangGraph + LLM + RAG 的电梯智能维保对话系统。 ## 项目简介 Elevator AI 是一个智能电梯维保助手,利用大语言模型和向量检索技术,为电梯维保人员提供智能化的保养和维修支持。 - **智能对话**:基于 LangGraph Agent 的自然语言交互 - **意图识别**:自动识别维保、报修、查询等用户意图 - **电梯管理**:查询电梯信息、选择目标电梯 - **故障维修**:故障码解析、智能推荐维修方案 - **维保任务**:根据电梯型号获取对应保养任务清单 - **知识库**:基于向量检索的 RAG 知识问答 - **智能报表**:自然语言生成图表,自动 SQL 解析与可视化 ## 系统演示 ### 1.基础功能 > gitee 不支持加载mp4,请查看 assets 文件夹下的demo.mp4 ### 2.报表 ![report](./assets/report.png) ## 系统架构 ### Agent 工作流 ``` mermaid flowchart TD START([__start__]) --> intent intent -->|query| query_elevators intent -->|unknown| llm intent -->|report| report query_elevators --> |human in loop| select_elevator select_elevator -->|repair| parse_fault select_elevator -->|maintain| maintain select_elevator -->|reselect| select_elevator parse_fault --> query_rag report --> generate_chart query_rag --> END([__end__]) maintain --> END llm --> END generate_chart --> END ``` ## 技术栈 ### 前端 - Vue 3 - Vite - TypeScript ### 后端 - FastAPI - Python 3.11+ - LangChain + LangGraph - LLM - MySQL + SQLAlchemy - Chroma 向量数据库 - QWenEmbedding ### AI 能力 - LLM - 向量嵌入 - RAG 检索增强 ## 项目结构 ``` elevator-ai/ ├── backend/ # 后端服务 │ ├── src/ │ │ └── elevator_ai/ │ │ ├── agent/ # AI Agent 核心 │ │ │ ├── graph.py # LangGraph 工作流 │ │ │ ├── nodes.py # 节点定义 │ │ │ ├── state.py # 状态管理 │ │ │ ├── tools.py # 工具函数 │ │ │ └── condition.py # 条件判断 │ │ ├── api/ # REST API │ │ │ ├── chat.py # 对话接口 │ │ │ ├── knowledge.py # 知识库接口 │ │ │ └── data.py # 数据接口 │ │ ├── db/ # 数据库层 │ │ │ ├── models.py # ORM 模型 │ │ │ └── repository.py # 仓储 │ │ ├── rag/ # 向量检索 │ │ │ ├── vector_store.py │ │ │ └── retriever.py │ │ └── config/ # 配置 │ │ ├── llm.py │ │ ├── mysql.py │ │ └── logging.py │ ├── tests/ # 单元测试 │ ├── sql/ # SQL 脚本 │ └── pyproject.toml │ ├── frontend/ # 前端服务 │ ├── src/ │ │ ├── api/ # API 调用 │ │ ├── components/ # Vue 组件 │ │ ├── types/ # TypeScript 类型 │ │ ├── App.vue │ │ └── main.ts │ └── package.json │ └── README.md ``` ## 核心功能 ### 1. 智能对话 系统通过 LangGraph 构建了灵活的工作流: ``` 报表查询 → 生成sql → 图表转换 → 返回结果 ↑ 用户输入 → 意图检测 → [电梯维保/直接对话/报表查询] → 直接对话 → 返回结果 ↓ 电梯维保 → 选择电梯 → 任务处理(数据库查询/RAG检索知识库) → 返回结果 ``` 支持的意图类型: - `maintain`:维保查询 - `repair`:故障报修 - `reselect`:重新选择电梯 - `unknown`:通用对话 - `report`:智能报表(自然语言生成图表) ### 2. 智能报表 1. 用户使用自然语言描述想要查看的报表(如"显示上个月的故障统计") 2. 系统通过 LLM 自动生成 SQL 查询语句 3. 自动识别维度、指标和图表类型 4. 执行 SQL 获取数据并渲染 ECharts 图表 ### 3. 故障维修流程 1. 用户描述故障 2. 系统解析故障码 3. 检索知识库获取维修建议 ### 4. 维保任务查询 根据电梯型号,从数据库获取对应的保养任务清单。 ### 5. 知识库管理 - 支持多种数据类型 - 向量检索(RAG)实现智能问答 - 支持实时添加文本数据 ## 快速开始 ### 环境要求 - Node.js 18+ - Python 3.11+ - MySQL 8.0+ - Redis ### 1. 克隆项目 ```bash git clone cd elevator-ai ``` ### 2. 启动后端 ```bash cd backend # 创建虚拟环境 uv sync # 配置环境变量 cp .env.example .env # 编辑 .env 文件,配置数据库和 AI API ``` 配置 `.env` 文件: ```env # LLM 配置 OPENAI_API_URL=https://ark.cn-beijing.volces.com/api/v3 OPENAI_API_MODEL=your-model-name OPENAI_API_KEY=your-api-key # Embedding 配置 EMBEDDING_MODEL=text-embedding-v4 EMBEDDING_KEY=your-embedding-key ``` 初始化数据库: ```bash # 创建数据库并导入数据 mysql -u root -p < sql/init.sql ``` 启动服务: ```bash uvicorn elevator_ai.main:app --reload --port 8000 ``` 后端服务运行在 http://localhost:8000 ### 3. 启动前端 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` 前端运行在 http://localhost:5173 ## API 文档 启动后端后,访问以下地址查看 API 文档: - Swagger UI: http://localhost:8000/docs ### 主要接口 | 接口 | 方法 | 说明 | |------|------|------| | `/api/chat` | POST | 发送对话消息 | | `/api/confirm` | POST | 确认选择 | | `/api/knowledge/search` | GET/POST | 搜索知识库 | | `/api/knowledge/add` | POST | 添加知识条目 | ## 许可证 Apache License