当前位置: 首页 > 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.gsyq.cn/news/126938.html

相关文章:

  • 【AI技术揭秘】别再问AI会不会替代客服!揭秘大模型如何成为“超级督导“,打造人机协同新范式
  • 收藏级|大模型技术全脉络梳理:从基础到Agent,小白程序员入门进阶指南
  • 从频繁失败到稳定运行,Open-AutoGLM重试优化全路径揭秘
  • 水的领取哦
  • Open-AutoGLM模式匹配优化秘籍(仅限高级工程师掌握的3种方法)
  • 【AI模型预处理新纪元】:Open-AutoGLM如何实现毫秒级特征输出
  • vue3+springboot基于微信小程序的应急救援小能手软件系统的设计与实现(编号:48747828)
  • 当下的网络安全行业前景到底怎么样?还能否入行?
  • 探索大数据领域Doris的增量更新机制
  • 2025年12月喜糖伴手礼,喜糖伴手礼购买,喜糖伴手礼进货厂家推荐:行业权威盘点与品质红榜发布 - 品牌鉴赏师
  • 如何将Open-AutoGLM操作延迟降低85%?资深架构师亲授调优心法
  • 测试覆盖率的理论与度量标准
  • Open-AutoGLM多任务调度实战指南(企业级资源优化方案曝光)
  • 为什么顶尖团队都在用Open-AutoGLM做推理优化?真相令人震惊
  • 告别低效特征工程:Open-AutoGLM三大核心优势全面解析
  • Open-AutoGLM特征提取提速5倍:背后你不知道的3大关键技术
  • 【Open-AutoGLM操作序列优化】:揭秘高效自动化生成背后的核心算法
  • 2025年印刷粘箱打包联动线品牌排行:高效整合方案推荐,电脑控制高速水墨印刷开槽机印刷粘箱打包联动线批发厂家选哪家 - 品牌推荐师
  • Open-AutoGLM低延迟改造实战(仅限内部流传的4项调优秘诀)
  • vue3+springboot基于小程序物联网 uniapp菌菇房环境管理系统(编号:443931199)
  • 错过将落后三年:Open-AutoGLM多任务调度技术全景解析
  • 2025年最火技术岗来袭:大模型应用开发工程师,你准备好了吗?
  • Open-AutoGLM定位误差如何修正?3步实现厘米级坐标准确度
  • 2025年高效的线上医院问诊小程序搭建公司排行榜 - mypinpai
  • 揭秘Open-AutoGLM语义理解瓶颈:如何实现准确率跃升至92.7%
  • 【深度收藏】RAG入门到精通:最小可运行代码示例,让大模型不再“胡说八道“
  • 告别慢速匹配:Open-AutoGLM模式引擎优化的7个关键步骤
  • Open-AutoGLM模型压缩与加速秘技,深度剖析高效推理实现路径
  • 从云端到终端的跨越,Open-AutoGLM轻量化部署的6步极简路径
  • 实验作业6