kangda-robot-backend/README.md

245 lines
7.9 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.

<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.sqlMySQL或sql/ruoyi-fastapi-pg.sqlPostgreSQL
# 启动开发服务器
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"
}