海南藏族自治州网站建设_网站建设公司_导航易用性_seo优化
2025/12/20 15:26:09 网站建设 项目流程

整体结构如下:这是一个基于 FastAPI 的目标检测系统后端,提供图片检测、视频检测、日志管理、系统监控、模型管理、大语言模型集成等功能

后端服务器地址:http://127.0.0.1:8089

后端启动后可查看后端接口,地址为:http://127.0.0.1:8089/docs

main.py: FastAPI 应用的主入口资料

功能:初始化FastAPI应用;部署CORS中间件;挂载静态文件目录static;注册所有路由模块;启动Uvicorn服务器(端口8089)

configs.py应用的基础配置文件

配置项:

LOGGER_DIR: 日志目录

LOGGER_NAME: 日志文件名格式

LOGGER_LEVEL: 日志级别

LOGGER_ROTATION: 日志轮转时间

LOGGER_RETENTION: 日志保留时间

configs_llm.py: 大语言模型 (LLM) 的配置

配置项:

API_KEY: SiliconFlow API 密钥

BASE_URL: API 基础 URL

TIMEOUT: 请求超时时间 (60秒)

DEFAULT_MODEL: 默认模型 (Qwen/Qwen2.5-Coder-32B-Instruct)

DEFAULT_MAX_TOKENS: 最大生成token数 (4096)

DEFAULT_TEMPERATURE: 温度参数 (0.7)

user.py: 定义用户相关的Pydantic数据模型

模型:

User: 用户完整信息 (id, userName, password, roles, avatar, email, createTime)

UserResponse: 用户响应信息 (不包含密码)

LoginRequest: 登录请求 (userName, password)

LoginResponse: 登录响应 (token, refreshToken)

TokenData: Token 数据 (userName, roles)

utils.py: JWT 认证和用户验证相关的工具函数

主要函数:

create_access_token(): 创建访问令牌

create_refresh_token(): 创建刷新令牌

verify_token(): 验证 JWT 令牌

get_current_user(): 获取当前用户

check_user_role(): 检查用户角色权限

custom_logs.py: 自定义日志配置,集成loguru库

功能:

拦截uvicorn默认日志

配置日志输出格式

支持文档和控制台输出

自动日志轮转和保留

导出: my_logger全局日志对象

routers/auth.py:用户认证模块

  1. 用户登录:POST /api/auth/login
  2. 获取当前用户信息:GET /api/user/info
  3. 获取用户列表:GET /api/user/list
  4. 预置用户: Super/Admin/User (密码: 123456)

routers/image.py:图片管理模块

  1. 上传图片:POST /api/image/upload
  2. 获取上传图片列表:GET /api/image/list
  3. 查看图片:GET /api/image/view/{filename}
  4. 下载单个图片:GET /api/image/download/{filename}
  5. 批量下载图片:POST /api/detection/download/batch
  6. 执行目标检测(YOLOv8):POST /api/detection/detect
  7. 获取检测结果列表:GET /api/detection/list
  8. 查看检测结果图片:GET /api/detection/view/{filename}
  9. 下载检测结果图片:GET /api/detection/download/{filename}
  10. 批量下载检测结果:POST /api/detection/download/batch/results
  11. 删除上传图片:DELETE /api/detection/delete/{filename}
  12. 删除检测结果图片:DELETE /api/detection/delete/result/{filename}
  13. 存储目录: static/uploads/ (上传) / static/detect/images/ (结果)

routers/video.py:视频管理模块

  1. 上传视频:POST /api/video/upload
  2. 获取上传视频列表:GET /api/video/list
  3. 获取检测视频列表:GET /api/video/detected/list
  4. 获取视频缩略图:GET /api/video/thumbnail/{filename}
  5. 下载单个视频:GET /api/video/download/{filename}
  6. 批量下载视频:POST /api/video/download/batch
  7. 执行视频检测(逐帧处理):POST /api/video/detect
  8. 删除视频:DELETE /api/video/delete/{filename}
  9. 存储目录: static/videos/ / static/detect/videos/ / static/thumbnails/

routers/logs.py:日志管理模块

  1. 获取日志文件列表:GET /api/logs/list
  2. 预览日志内容(最终N行):GET /api/logs/preview/{filename}
  3. 下载单个日志文件:GET /api/logs/download/{filename}
  4. 批量下载日志文件:POST /api/logs/download/batch
  5. 删除日志文件:DELETE /api/logs/{filename}
  6. 存储目录: logs/

routers/system.py:系统监控模块

  1. 获取系统资源状态:GET /api/system/status
  2. 返回数据: CPU / 内存 / 磁盘 / 网络 / 运行时间 / 框架信息

routers/models.py:模型管理模块

  1. 获取模型列表:GET /api/models/list
  2. 上传模型(.pt格式):POST /api/models/upload
  3. 获取模型详细信息:GET /api/models/info/{filename}
  4. 更新模型信息:PUT /api/models/put/{filename}
  5. 下载模型:GET /api/models/download/{filename}
  6. 删除模型:DELETE /api/models/delete/{filename}
  7. 存储目录: models 元数据: models/models_info.json

routers/llm.py:大语言模型模块

  1. 获取可用LLM模型列表:GET /api/llm/models
  2. 聊天(支持流式):POST /api/llm/chat/completions

routers/dashboard.py:数据可视化模块

  1. 获取仪表板统计数据:GET /api/dashboard/statistics
  2. 获取仪表板表格数据(分页):GET /api/dashboard/table
  3. 获取处理趋势数据:GET /api/dashboard/trend/processing
  4. 获取检测趋势材料:GET /api/dashboard/trend/detection
  5. 返回材料: 框架状态 / 图像分布 / 检测分布 / 检测统计 / 趋势数据

所有接口返回统一格式:

{

"code": 200,

"message": "成功",

"data": {}

}

错误时返回相应的 HTTP 状态码和错误信息。

HTTP状态码:

- 200: 成功

- 400: 请求参数错误

- 401: 未授权

- 404: 资源不存在

- 500: 服务器错误

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询