# 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.报表

## 系统架构
### 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