2025-08-02 12:38:52 +08:00
|
|
|
|
# 边检CV算法接口服务
|
|
|
|
|
|
2025-08-05 11:57:14 +08:00
|
|
|
|
## 项目简介
|
2025-08-02 12:38:52 +08:00
|
|
|
|
|
2025-08-05 11:57:14 +08:00
|
|
|
|
这是一个简化的边检计算机视觉算法管理系统API服务,采用FastAPI框架开发。
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
2025-08-02 12:38:52 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
server/
|
2025-08-05 11:57:14 +08:00
|
|
|
|
├── app.py # 主应用文件
|
|
|
|
|
├── requirements.txt # 依赖包列表
|
|
|
|
|
├── init_data.py # 初始化数据脚本
|
|
|
|
|
├── env.example # 环境变量示例
|
|
|
|
|
├── core/ # 核心配置
|
|
|
|
|
│ └── database.py # 数据库配置
|
|
|
|
|
├── models/ # 数据模型
|
2025-08-02 12:38:52 +08:00
|
|
|
|
│ ├── __init__.py
|
2025-08-05 11:57:14 +08:00
|
|
|
|
│ ├── base.py # 基础模型
|
|
|
|
|
│ ├── algorithm.py # 算法模型
|
|
|
|
|
│ ├── device.py # 设备模型
|
|
|
|
|
│ └── event.py # 事件模型
|
|
|
|
|
└── routers/ # 路由接口
|
2025-08-02 12:38:52 +08:00
|
|
|
|
├── __init__.py
|
2025-08-05 11:57:14 +08:00
|
|
|
|
├── algorithms.py # 算法管理接口
|
|
|
|
|
├── devices.py # 设备管理接口
|
|
|
|
|
└── events.py # 事件管理接口
|
2025-08-02 12:38:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-08-05 11:57:14 +08:00
|
|
|
|
## 简化设计
|
|
|
|
|
|
|
|
|
|
本项目采用简化的架构设计:
|
|
|
|
|
|
|
|
|
|
1. **去掉schemas层**:直接使用字典进行数据传递,减少代码复杂度
|
|
|
|
|
2. **简化响应格式**:所有接口直接返回字典格式,便于维护
|
|
|
|
|
3. **保持核心功能**:保留所有必要的CRUD操作和业务逻辑
|
|
|
|
|
|
|
|
|
|
## API接口
|
|
|
|
|
|
|
|
|
|
### 算法管理 (/api/algorithms)
|
|
|
|
|
- `POST /` - 创建算法
|
|
|
|
|
- `GET /` - 获取算法列表
|
|
|
|
|
- `GET /{id}` - 获取算法详情
|
|
|
|
|
- `PUT /{id}` - 更新算法
|
|
|
|
|
- `DELETE /{id}` - 删除算法
|
|
|
|
|
- `PATCH /{id}/status` - 更新算法状态
|
|
|
|
|
- `PATCH /{id}/enable` - 启用/禁用算法
|
|
|
|
|
|
|
|
|
|
### 设备管理 (/api/devices)
|
|
|
|
|
- `POST /` - 创建设备
|
|
|
|
|
- `GET /` - 获取设备列表
|
|
|
|
|
- `GET /{id}` - 获取设备详情
|
|
|
|
|
- `PUT /{id}` - 更新设备
|
|
|
|
|
- `DELETE /{id}` - 删除设备
|
|
|
|
|
- `PATCH /{id}/status` - 更新设备状态
|
|
|
|
|
- `PATCH /{id}/enable` - 启用/禁用设备
|
|
|
|
|
- `GET /types/list` - 获取设备类型列表
|
|
|
|
|
- `GET /status/stats` - 获取设备状态统计
|
|
|
|
|
|
|
|
|
|
### 事件管理 (/api/events)
|
|
|
|
|
- `POST /` - 创建事件
|
|
|
|
|
- `GET /` - 获取事件列表
|
|
|
|
|
- `GET /{id}` - 获取事件详情
|
|
|
|
|
- `PUT /{id}` - 更新事件
|
|
|
|
|
- `DELETE /{id}` - 删除事件
|
|
|
|
|
- `PATCH /{id}/status` - 更新事件状态
|
|
|
|
|
- `GET /types/list` - 获取事件类型列表
|
|
|
|
|
- `GET /stats/summary` - 获取事件统计摘要
|
|
|
|
|
- `GET /stats/by-type` - 按类型统计事件
|
|
|
|
|
|
|
|
|
|
## 安装和运行
|
|
|
|
|
|
|
|
|
|
1. 安装依赖:
|
2025-08-02 12:38:52 +08:00
|
|
|
|
```bash
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
```
|
|
|
|
|
|
2025-08-05 11:57:14 +08:00
|
|
|
|
2. 配置环境变量:
|
2025-08-02 12:38:52 +08:00
|
|
|
|
```bash
|
2025-08-05 11:57:14 +08:00
|
|
|
|
cp env.example .env
|
|
|
|
|
# 编辑.env文件配置数据库连接等
|
2025-08-02 12:38:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-08-05 11:57:14 +08:00
|
|
|
|
3. 初始化数据:
|
2025-08-02 12:38:52 +08:00
|
|
|
|
```bash
|
|
|
|
|
python init_data.py
|
|
|
|
|
```
|
|
|
|
|
|
2025-08-05 11:57:14 +08:00
|
|
|
|
4. 启动服务:
|
2025-08-02 12:38:52 +08:00
|
|
|
|
```bash
|
2025-08-05 10:22:39 +08:00
|
|
|
|
python app.py
|
2025-08-02 12:38:52 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-08-05 11:57:14 +08:00
|
|
|
|
服务将在 http://localhost:8000 启动,API文档访问 http://localhost:8000/docs
|
2025-08-02 12:38:52 +08:00
|
|
|
|
|
2025-08-05 11:57:14 +08:00
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
|
|
|
- **框架**: FastAPI
|
|
|
|
|
- **数据库**: SQLAlchemy + SQLite
|
|
|
|
|
- **ORM**: SQLAlchemy
|
|
|
|
|
- **文档**: 自动生成OpenAPI文档
|
|
|
|
|
|
|
|
|
|
## 特点
|
|
|
|
|
|
|
|
|
|
- 简化的架构,易于维护
|
|
|
|
|
- 完整的CRUD操作
|
|
|
|
|
- 支持分页和筛选
|
|
|
|
|
- 自动生成API文档
|
|
|
|
|
- 支持CORS跨域
|
|
|
|
|
- 健康检查接口
|