增加架构文档

This commit is contained in:
Tian jianyong 2025-12-12 11:16:28 +08:00
parent e7dce915c5
commit acf1f7c568

View File

@ -0,0 +1,345 @@
# 康达机器人系统架构文档
## 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能力和外部服务为用户提供全面的机器人管理和控制解决方案。系统具有良好的扩展性、安全性和可维护性能够满足不同规模和场景的使用需求。