245 lines
7.9 KiB
Markdown
245 lines
7.9 KiB
Markdown
<p align="center">
|
||
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">
|
||
</p>
|
||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">康达机器人管理系统</h1>
|
||
<h4 align="center">基于RuoYi-Vue3+FastAPI的智能机器人综合管理平台</h4>
|
||
<p align="center">
|
||
<img src="https://img.shields.io/badge/python-≥3.9-blue">
|
||
<img src="https://img.shields.io/badge/MySQL-≥5.7-blue">
|
||
<img src="https://img.shields.io/badge/FastAPI-≥0.100.0-blue">
|
||
<img src="https://img.shields.io/badge/Vue3-≥3.2.0-blue">
|
||
</p>
|
||
|
||
## 平台简介
|
||
|
||
康达机器人管理系统是基于RuoYi-Vue3-FastAPI框架开发的智能机器人综合管理平台,专注于提供机器人设备管理、人脸识别、门禁控制、讲解内容管理等功能。
|
||
|
||
* 后端采用FastAPI、SQLAlchemy、Redis、OAuth2 & Jwt构建高性能异步API服务
|
||
* 前端基于Vue3、Element Plus实现现代化UI界面
|
||
* 集成海康威视平台实现门禁设备管理和视频监控
|
||
* 集成Compreface实现高精度人脸识别功能
|
||
* 支持机器人角色管理、讲解内容管理、动作控制等机器人专属功能
|
||
* 提供完整的系统监控、日志管理、权限控制等企业级特性
|
||
|
||
## 核心功能
|
||
|
||
### 系统管理
|
||
1. **用户管理**:系统用户配置、权限分配
|
||
2. **角色管理**:角色菜单权限分配、数据范围权限控制
|
||
3. **菜单管理**:动态菜单配置、操作权限管理
|
||
4. **字典管理**:系统固定数据维护
|
||
5. **操作日志**:系统操作记录查询与审计
|
||
6. **登录日志**:用户登录记录及异常监控
|
||
|
||
### 机器人管理
|
||
1. **机器人信息管理**:机器人基本信息维护
|
||
2. **机器人角色配对**:机器人与角色关联管理
|
||
3. **机器人动作管理**:机器人动作序列配置
|
||
4. **引导词管理**:机器人引导语配置
|
||
5. **讲解内容管理**:讲解内容的增删改查
|
||
6. **讲解风格管理**:不同机器人讲解风格配置
|
||
|
||
### 人脸识别与门禁
|
||
1. **人脸识别管理**:基于Compreface的人脸检测与识别
|
||
2. **门禁设备管理**:海康威视门禁设备的配置与控制
|
||
3. **识别记录管理**:人脸识别记录查询与统计
|
||
4. **识别统计管理**:人脸识别数据统计分析
|
||
|
||
### 系统监控与维护
|
||
1. **在线用户**:活跃用户状态监控
|
||
2. **定时任务**:任务调度与执行日志
|
||
3. **服务监控**:系统CPU、内存、磁盘等资源监控
|
||
4. **代码生成**:数据库表一键生成前后端代码
|
||
|
||
## 技术栈
|
||
|
||
### 后端技术
|
||
| 技术 | 版本 | 用途 |
|
||
| ---- | ---- | ---- |
|
||
| FastAPI | ≥0.100.0 | 异步Web框架 |
|
||
| SQLAlchemy | ≥2.0.0 | ORM框架 |
|
||
| Redis | ≥6.0 | 缓存、会话管理 |
|
||
| MySQL/PostgreSQL | ≥5.7/≥12.0 | 数据库 |
|
||
| OAuth2 + JWT | - | 身份认证与授权 |
|
||
| Asyncio | - | 异步编程支持 |
|
||
|
||
### 前端技术
|
||
| 技术 | 版本 | 用途 |
|
||
| ---- | ---- | ---- |
|
||
| Vue3 | ≥3.2.0 | 前端框架 |
|
||
| Element Plus | ≥2.0.0 | UI组件库 |
|
||
| Vue Router | ≥4.0.0 | 路由管理 |
|
||
| Pinia | ≥2.0.0 | 状态管理 |
|
||
| Vite | ≥4.0.0 | 构建工具 |
|
||
|
||
### 第三方服务集成
|
||
| 服务 | 用途 |
|
||
| ---- | ---- |
|
||
| 海康威视平台 | 门禁设备管理、视频监控 |
|
||
| Compreface | 人脸识别服务 |
|
||
| RAGFlow | AI对话与知识库管理 |
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
├── main.py # 项目入口文件
|
||
├── ruoyi-fastapi-backend/ # 后端应用目录
|
||
│ ├── app.py # FastAPI应用入口
|
||
│ ├── server.py # 应用配置与路由注册
|
||
│ ├── config/ # 配置文件目录
|
||
│ ├── module_admin/ # 核心业务模块
|
||
│ │ ├── controller/ # 控制器层
|
||
│ │ ├── service/ # 服务层
|
||
│ │ ├── dao/ # 数据访问层
|
||
│ │ └── entity/ # 实体层
|
||
│ ├── utils/ # 工具类目录
|
||
│ │ ├── haikang_util.py # 海康平台工具
|
||
│ │ ├── compreface_util.py # Compreface工具
|
||
│ │ └── ...
|
||
│ └── ...
|
||
└── ruoyi-fastapi-frontend/ # 前端应用目录
|
||
├── src/ # 前端源代码
|
||
├── index.html # HTML入口
|
||
├── package.json # 项目依赖
|
||
└── ...
|
||
```
|
||
|
||
## 开发与部署
|
||
|
||
### 开发环境准备
|
||
|
||
#### 后端环境
|
||
```bash
|
||
# 查看所有 conda 环境
|
||
conda env list
|
||
|
||
# 激活后端环境(环境名根据实际情况调整,常见为 fastapi_python 或 base)
|
||
conda activate fastapi_python
|
||
|
||
# 进入后端目录
|
||
cd ruoyi-fastapi-backend
|
||
|
||
# 安装依赖(MySQL版本)
|
||
pip install -r requirements.txt
|
||
# 或安装PostgreSQL版本依赖
|
||
pip install -r requirements-postgresql.txt
|
||
|
||
# 配置环境变量
|
||
cp .env.dev.example .env.dev
|
||
# 编辑.env.dev文件,配置数据库、Redis、海康平台、Compreface等参数
|
||
|
||
# 初始化数据库
|
||
# 1. 创建数据库
|
||
# 2. 执行sql/ruoyi-fastapi.sql(MySQL)或sql/ruoyi-fastapi-pg.sql(PostgreSQL)
|
||
|
||
# 启动开发服务器
|
||
python app.py --env=dev
|
||
```
|
||
|
||
**常见问题:**
|
||
- 依赖冲突警告:langchain-community、langchain-openai、langsmith 等包版本冲突通常不影响服务运行,可忽略
|
||
- 如果遇到依赖问题,可尝试升级冲突包:
|
||
```bash
|
||
pip install --upgrade requests openai requests-toolbelt
|
||
```
|
||
- 确认 Python 版本:查看项目 `.python-version` 文件
|
||
- 服务启动后,通过 `netstat -tlnp | grep 9099` 确认端口 9099 是否在监听状态
|
||
|
||
#### 前端环境
|
||
```bash
|
||
# 进入前端目录
|
||
cd ruoyi-fastapi-frontend
|
||
|
||
# 安装依赖
|
||
npm install --registry=https://registry.npmmirror.com
|
||
|
||
# 启动开发服务器
|
||
npm run dev
|
||
```
|
||
|
||
### 生产部署
|
||
|
||
#### 前端构建
|
||
```bash
|
||
# 构建生产版本
|
||
npm run build:prod
|
||
# 构建产物将生成在dist目录
|
||
```
|
||
|
||
#### 后端部署
|
||
```bash
|
||
# 配置生产环境变量
|
||
cp .env.prod.example .env.prod
|
||
# 编辑.env.prod文件配置生产环境参数
|
||
|
||
# 启动生产服务器
|
||
python3 app.py --env=prod
|
||
```
|
||
|
||
## 环境配置
|
||
|
||
### 核心配置文件
|
||
- `.env.dev`:开发环境配置
|
||
- `.env.prod`:生产环境配置
|
||
|
||
### 关键配置项
|
||
```env
|
||
# 应用配置
|
||
APP_NAME=康达机器人管理系统
|
||
APP_PORT=9099
|
||
|
||
# 数据库配置
|
||
DB_TYPE=mysql
|
||
DB_HOST=localhost
|
||
DB_PORT=3306
|
||
DB_DATABASE=ruoyi-fastapi
|
||
DB_USERNAME=root
|
||
DB_PASSWORD=password
|
||
|
||
# Redis配置
|
||
REDIS_HOST=localhost
|
||
REDIS_PORT=6379
|
||
|
||
# 海康平台配置
|
||
HAIKANG_URL=http://your-haikang-server
|
||
HAIKANG_AK=your-access-key
|
||
HAIKANG_SK=your-secret-key
|
||
|
||
# Compreface配置
|
||
COMPREFACE_BASE_URL=http://your-compreface-server
|
||
COMPREFACE_API_KEY=your-api-key
|
||
```
|
||
|
||
## API文档
|
||
|
||
项目启动后,可通过以下地址访问API文档:
|
||
- Swagger UI: `http://localhost:9099/dev-api/docs`
|
||
- ReDoc: `http://localhost:9099/dev-api/redoc`
|
||
|
||
## 注意事项
|
||
|
||
1. 首次使用需先配置数据库并执行初始化SQL脚本
|
||
2. 海康平台和Compreface服务需提前部署并配置API密钥
|
||
3. 生产环境需修改默认JWT密钥和数据库密码
|
||
4. 建议使用Nginx作为前端静态资源服务器和API反向代理
|
||
|
||
## 许可证
|
||
|
||
本项目基于Apache License 2.0开源协议。
|
||
|
||
RAGFlow服务使用固定的chat-id,该id在RAGFlow服务端配置,用于标识聊天助手会话:
|
||
{
|
||
"chatId": "db4bb966895b11f08cda0242ac130006",
|
||
"question": "你好,请用简洁的语言介绍你自己",
|
||
"stream": true,
|
||
"sessionId": "38d765e48a3811f0be310242ac130006"
|
||
}
|
||
|
||
测试 Token:
|
||
{
|
||
"code": 200,
|
||
"msg": "登录成功",
|
||
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiMSIsInVzZXJfbmFtZSI6ImFkbWluIiwiZGVwdF9uYW1lIjoiXHU3ODE0XHU1M2QxXHU5MGU4XHU5NWU4Iiwic2Vzc2lvbl9pZCI6IjQ3OTBlZmFmLTU2OTktNDE4Zi04MTQ0LWJmMGI3Y2UwNmRhNCIsImxvZ2luX2luZm8iOnsiaXBhZGRyIjpudWxsLCJsb2dpbkxvY2F0aW9uIjoiXHU2NzJhXHU3N2U1IiwiYnJvd3NlciI6Ik90aGVyIiwib3MiOiJPdGhlciIsImxvZ2luVGltZSI6IjIwMjUtMTItMTYgMTM6MDY6MjQifSwiZXhwIjoxNzY4NDUzNTg0fQ.ijL1R8b-6s-OGL1f0uxcD3-b0Na6N3SnxygIvlM3EgM",
|
||
"success": true,
|
||
"time": "2025-12-16T13:06:24.888622"
|
||
} |