diff --git a/ruoyi-fastapi-backend/doc/architecture_documentation.md b/ruoyi-fastapi-backend/doc/architecture_documentation.md new file mode 100644 index 0000000..855c03e --- /dev/null +++ b/ruoyi-fastapi-backend/doc/architecture_documentation.md @@ -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能力和外部服务,为用户提供全面的机器人管理和控制解决方案。系统具有良好的扩展性、安全性和可维护性,能够满足不同规模和场景的使用需求。 \ No newline at end of file