当前位置: 首页 > news >正文

实用指南:基于VUE和FastAPI的行人目标检测系统(后端介绍)

整体结构如下:这是一个基于 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: 服务器错误

http://www.jsqmd.com/news/115005/

相关文章:

  • 国内食用盐实力企业推荐,汉沽盐场品质之选 - mypinpai
  • 【技术干货】RAG技术全解析:从理论到实践,打造大模型知识库检索系统
  • 【AI技术揭秘】别再问AI会不会替代客服!揭秘大模型如何成为“超级督导“,打造人机协同新范式
  • 收藏级|大模型技术全脉络梳理:从基础到Agent,小白程序员入门进阶指南
  • vue3+springboot基于小程序的高校学生公寓道闸管理平台的设计与实现(编号:50959497)
  • Open-AutoGLM模式匹配优化秘籍(仅限高级工程师掌握的3种方法)
  • 从频繁失败到稳定运行,Open-AutoGLM重试优化全路径揭秘
  • 水的领取哦
  • 【收藏】35岁怕淘汰?AI时代程序员反迎黄金期!解锁这些技能薪资翻番不是空想
  • IAR Embedded Workbench 常用宏变量(Argument Variables)备忘录
  • vue3+springboot基于微信小程序的在线点餐聊天交流平台(编号:30421625)
  • Open-AutoGLM模式匹配加速实战(从毫秒到微秒的跨越)
  • AI客服系统“开天眼“了!多模态大模型技术解析,小白也能轻松实现
  • 最新AI换脸软件,全面升级可直播,Mirage下载介绍(支持cpu)
  • 2025年装修设计企业客户首选品牌TOP5,别墅装修/豪宅设计/家居装修/家居设计品牌哪个好 - 品牌推荐师
  • 还在为显存溢出崩溃?Open-AutoGLM内存压缩5步极速瘦身法
  • 【AI模型预处理新纪元】:Open-AutoGLM如何实现毫秒级特征输出
  • 2025年12月理发店会员,美发会员,理发店会员厂家品牌推荐榜,彰显美发会员服务国产技术实力 - 品牌鉴赏师
  • 从入门到精通:掌握Open-AutoGLM推理优化的7个关键步骤
  • Java数据结构与算法
  • 从选题到框架:8个 AI 工具,把开题报告的 “难” 变成 “顺”
  • 收藏备用!大模型5大微调技术深度解析:SFT/ReFT/RLHF/DPO/PPO异同与选型指南
  • 为什么顶尖团队都在用Open-AutoGLM做高效特征提取?真相曝光
  • 2025年12月喜糖伴手礼批发,喜糖伴手礼购买,喜糖伴手礼进货厂家品牌推荐榜,彰显国产供应链实力 - 品牌鉴赏师
  • vue3+springboot基于微信小程序的应急救援小能手软件系统的设计与实现(编号:48747828)
  • java计算机毕业设计图书借阅管理系统 基于SpringBoot的图书馆流通与借还管理平台 智慧图书借阅与归还一体化系统
  • 当下的网络安全行业前景到底怎么样?还能否入行?
  • 如何将Open-AutoGLM操作延迟降低85%?资深架构师亲授调优心法
  • 2025年12月喜糖伴手礼,喜糖伴手礼购买,喜糖伴手礼进货厂家推荐:行业权威盘点与品质红榜发布 - 品牌鉴赏师
  • 基于OpenCV的安全帽佩戴识别的分析与实践