kangda-robot-backend/ruoyi-fastapi-backend/doc/architecture_documentation.md
2025-12-12 11:16:28 +08:00

345 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 康达机器人系统架构文档
## 1. 系统概述
康达机器人系统是一个集机器人控制、人脸识别、门禁管理、文档检索和智能对话于一体的综合性管理平台。系统采用前后端分离架构集成了多种外部服务和AI能力为用户提供全面的机器人管理和控制解决方案。
## 2. 系统架构图
```mermaid
flowchart TD
subgraph 客户端层
Web控制台["Web控制台\n(管理界面)"]
Pad控制端["Pad控制端\n(现场操作)"]
end
subgraph 后端服务层
FastAPI["FastAPI后端服务\n(核心业务逻辑)"]
Redis["Redis缓存\n(会话、数据缓存)"]
Database[("数据库\n(MySQL/PostgreSQL)")]
end
subgraph 外部服务层
RAGFlow["RAGFlow\n(文档检索与智能对话)"]
SearchAPI["搜索API\n(SerpAPI)"]
Compreface["Compreface\n(人脸识别)"]
HaiKang["海康平台\n(门禁控制)"]
end
subgraph 设备层
Robot["机器人\n(执行动作、采集数据)"]
Door["门禁设备\n(开关控制)"]
Camera["摄像头\n(图像采集)"]
end
%% 连接关系
Web控制台 -->|HTTP请求| FastAPI
Pad控制端 -->|HTTP请求| FastAPI
FastAPI -->|读写数据| Database
FastAPI -->|缓存操作| Redis
FastAPI -->|调用接口| RAGFlow
FastAPI -->|搜索增强| SearchAPI
FastAPI -->|人脸识别| Compreface
FastAPI -->|门禁控制| HaiKang
FastAPI -->|控制指令| Robot
HaiKang -->|控制| Door
Camera -->|图像数据| Compreface
Robot -->|状态反馈| FastAPI
Door -->|状态反馈| HaiKang
HaiKang -->|状态更新| FastAPI
%% 大模型服务
RAGFlow -->|调用| LLM["大语言模型\n(云上服务)"]
SearchAPI -->|调用| SearchEngine["搜索引擎\n(第三方)"]
```
## 3. 系统组件说明
### 3.1 客户端层
#### Web控制台
- **功能**:提供系统管理、用户管理、角色管理、机器人配置、讲解内容管理等功能
- **技术**Vue.js + Element Plus
- **访问方式**:浏览器访问
#### Pad控制端
- **功能**:现场控制机器人、查看实时状态、处理识别记录
- **技术**Web应用适配Pad设备
- **访问方式**Pad浏览器或专用应用
### 3.2 后端服务层
#### FastAPI后端服务
- **核心功能**
- 提供RESTful API接口
- 处理业务逻辑
- 集成各种外部服务
- 权限管理与认证
- 系统监控与日志
- **主要模块**
- 用户管理模块
- 角色管理模块
- 机器人信息管理模块
- 机器人动作管理模块
- 门禁设备管理模块
- 识别记录管理模块
- RAGFlow文档管理模块
- 人脸识别管理模块
- 系统统计模块
#### Redis缓存
- **功能**
- 会话管理
- 数据缓存
- 分布式锁
- 消息队列(可选)
#### 数据库
- **功能**:存储系统配置、用户信息、机器人数据、识别记录等持久化数据
- **支持类型**MySQL、PostgreSQL
### 3.3 外部服务层
#### RAGFlow
- **功能**
- 文档检索与管理
- 智能对话(基于大语言模型)
- 知识库管理
- **集成方式**API调用
#### 搜索API
- **功能**
- 增强智能对话的搜索能力
- 提供实时信息查询
- **技术**SerpAPI
#### Compreface
- **功能**
- 人脸识别
- 人脸比对
- 人脸检测
- **集成方式**API调用
#### 海康平台
- **功能**
- 门禁设备管理
- 门禁状态查询
- 门禁控制(开关门)
- 门禁事件记录
- **集成方式**API调用
### 3.4 设备层
#### 机器人
- **功能**
- 执行预设动作
- 采集环境数据
- 接收并执行控制指令
- 反馈执行状态
#### 门禁设备
- **功能**
- 开关门控制
- 状态反馈
- 事件记录
#### 摄像头
- **功能**
- 图像采集
- 视频监控
- 人脸数据采集
## 4. 核心工作流程
### 4.1 用户认证流程
```mermaid
sequenceDiagram
participant 用户 as 用户
participant Web as Web控制台/Pad控制端
participant FastAPI as FastAPI后端
participant Redis as Redis缓存
participant DB as 数据库
用户->>Web: 输入用户名密码
Web->>FastAPI: POST /system/user/login
FastAPI->>DB: 查询用户信息
DB-->>FastAPI: 返回用户数据
FastAPI->>FastAPI: 验证密码
FastAPI->>Redis: 生成并存储token
Redis-->>FastAPI: 返回token
FastAPI-->>Web: 返回token和用户信息
Web->>Web: 存储token
```
### 4.2 门禁控制流程
```mermaid
sequenceDiagram
participant Pad as Pad控制端
participant FastAPI as FastAPI后端
participant HaiKang as 海康平台API
participant Door as 门禁设备
Pad->>FastAPI: POST /system/door/control_door
FastAPI->>HaiKang: 请求门禁控制
HaiKang->>Door: 发送开关指令
Door-->>HaiKang: 执行结果
HaiKang-->>FastAPI: 返回控制结果
FastAPI-->>Pad: 返回操作状态
```
### 4.3 人脸识别流程
```mermaid
sequenceDiagram
participant Camera as 摄像头
participant Compreface as Compreface
participant FastAPI as FastAPI后端
participant DB as 数据库
participant Robot as 机器人
Camera->>Compreface: 上传人脸图像
Compreface->>Compreface: 检测人脸
Compreface->>Compreface: 提取特征
Compreface->>FastAPI: 返回识别结果
FastAPI->>DB: 保存识别记录
FastAPI->>Robot: 发送响应指令
Robot-->>FastAPI: 执行结果
```
### 4.4 智能对话流程
```mermaid
sequenceDiagram
participant User as 用户
participant Web as Web/Pad客户端
participant FastAPI as FastAPI后端
participant Redis as Redis缓存
participant RAGFlow as RAGFlow
participant Search as 搜索API
participant LLM as 大语言模型
User->>Web: 输入问题
Web->>FastAPI: POST /system/ragflow/converse_with_chat_assistant
FastAPI->>Redis: 检查缓存
alt 缓存命中
Redis-->>FastAPI: 返回缓存结果
else 缓存未命中
FastAPI->>RAGFlow: 发送对话请求
RAGFlow->>Search: 检查是否需要搜索增强
alt 需要搜索增强
Search->>SearchEngine: 执行搜索
SearchEngine-->>Search: 返回搜索结果
Search-->>RAGFlow: 返回搜索内容
end
RAGFlow->>LLM: 调用大语言模型
LLM-->>RAGFlow: 返回生成内容
RAGFlow-->>FastAPI: 返回对话结果
FastAPI->>Redis: 存储结果到缓存
end
FastAPI-->>Web: 返回对话结果
Web->>User: 显示回答
```
## 5. 系统集成与依赖
### 5.1 内部依赖
| 依赖名称 | 用途 | 版本 |
|---------|------|------|
| FastAPI | 后端框架 | 最新 |
| SQLAlchemy | ORM框架 | 最新 |
| Redis | 缓存服务 | 最新 |
| Pydantic | 数据验证 | 最新 |
| python-jose | JWT认证 | 最新 |
### 5.2 外部服务依赖
| 服务名称 | 用途 | 集成方式 |
|---------|------|---------|
| RAGFlow | 文档检索与智能对话 | API调用 |
| Compreface | 人脸识别 | API调用 |
| 海康平台 | 门禁控制 | API调用 |
| SerpAPI | 搜索增强 | API调用 |
## 6. 系统特性与优势
1. **模块化设计**:系统采用模块化架构,各功能模块独立,便于维护和扩展
2. **前后端分离**前端使用Vue.js后端使用FastAPI提高开发效率和系统性能
3. **多端支持**支持Web控制台和Pad控制端满足不同场景的使用需求
4. **AI能力集成**集成了人脸识别、智能对话和搜索增强等AI能力提升系统智能化水平
5. **丰富的外部接口**:与门禁系统、机器人硬件等多种外部设备和服务进行集成
6. **完善的权限管理**:支持基于角色的权限控制,确保系统安全
7. **实时监控与统计**:提供系统统计和识别记录管理,便于数据分析和决策
## 7. 系统部署架构
```mermaid
flowchart TD
subgraph 服务器集群
LoadBalancer["负载均衡器\n(Nginx)"]
Backend1["FastAPI节点1"]
Backend2["FastAPI节点2"]
Backend3["FastAPI节点3"]
end
subgraph 数据层
DB[("主数据库\n(MySQL/PostgreSQL)")]
DB2[("从数据库\n(MySQL/PostgreSQL)")]
RedisCluster["Redis集群\n(主从架构)"]
end
subgraph 外部服务
RAGFlow["RAGFlow服务"]
Compreface["Compreface服务"]
HaiKang["海康平台"]
end
用户["用户"] -->|HTTP请求| LoadBalancer
LoadBalancer -->|分发请求| Backend1
LoadBalancer -->|分发请求| Backend2
LoadBalancer -->|分发请求| Backend3
Backend1 -->|读写| DB
Backend2 -->|读写| DB
Backend3 -->|读写| DB
DB -->|同步| DB2
Backend1 -->|缓存操作| RedisCluster
Backend2 -->|缓存操作| RedisCluster
Backend3 -->|缓存操作| RedisCluster
Backend1 -->|API调用| RAGFlow
Backend2 -->|API调用| RAGFlow
Backend3 -->|API调用| RAGFlow
Backend1 -->|API调用| Compreface
Backend2 -->|API调用| Compreface
Backend3 -->|API调用| Compreface
Backend1 -->|API调用| HaiKang
Backend2 -->|API调用| HaiKang
Backend3 -->|API调用| HaiKang
```
## 8. 系统扩展性设计
1. **微服务架构支持**:系统可扩展为微服务架构,将不同功能模块拆分为独立服务
2. **插件化设计**:支持通过插件方式扩展系统功能
3. **API网关集成**可集成API网关统一管理API访问
4. **容器化部署**支持Docker容器化部署便于水平扩展
5. **云原生支持**支持在Kubernetes等容器编排平台上部署
## 9. 系统安全设计
1. **身份认证与授权**采用JWT令牌机制支持基于角色的访问控制
2. **数据加密**敏感数据加密存储传输过程使用HTTPS
3. **接口安全**所有API接口均需认证部分接口需额外权限验证
4. **日志审计**:记录所有用户操作和系统事件,便于审计和追踪
5. **防SQL注入**使用ORM框架和参数化查询防止SQL注入攻击
6. **防XSS攻击**:对输入输出进行过滤,防止跨站脚本攻击
## 10. 总结
康达机器人系统采用现代化的技术架构集成了多种AI能力和外部服务为用户提供全面的机器人管理和控制解决方案。系统具有良好的扩展性、安全性和可维护性能够满足不同规模和场景的使用需求。