Skip to content

Latest commit

 

History

History
267 lines (210 loc) · 7.31 KB

File metadata and controls

267 lines (210 loc) · 7.31 KB

项目总结

✅ 已完成的工作

我已经为你创建了一个完整的模型质量测试管理后台,采用轻量级技术栈,易于维护和扩展。

📦 项目架构

技术栈选择

后端

  • Flask 3.0(轻量级 Web 框架)
  • MySQL(关系型数据库)
  • SQLAlchemy(ORM)
  • APScheduler(任务调度)
  • Flask-Login(认证)

前端

  • Vue 3(Composition API)
  • Element Plus(UI 组件库)
  • ECharts(图表库)
  • Vite(构建工具)

核心功能模块

1. 用户认证模块

  • ✅ 账号密码登录
  • ✅ Session 管理
  • ✅ 密码修改
  • ✅ 基于配置文件初始化管理员账号

2. 任务管理模块

  • ✅ 任务 CRUD 操作
  • ✅ 两种任务类型:
    • 服务压力测试(evalscope perf)
    • 模型质量测试(audit.py)
  • ✅ 三种调度方式:
    • 手动执行
    • Cron 表达式
    • 固定间隔
  • ✅ 任务启用/禁用
  • ✅ 时间范围设置

3. 任务执行模块

  • ✅ 异步任务执行
  • ✅ 进程管理(启动/停止)
  • ✅ 输出解析:
    • evalscope perf 表格数据解析
    • audit.py Risk Summary 解析
  • ✅ 结果保存到数据库
  • ✅ 原始文件保存

4. 结果可视化模块

  • ✅ 服务压力测试:
    • 4 个趋势图表(延迟、TTFT、RPS、生成速度)
    • 详细结果列表
    • 原始文件查看
  • ✅ 模型质量测试:
    • 11 项风险检测结果表格
    • 总体评级展示
    • 完整报告查看

📁 文件结构

api_perf/
├── backend/                    # 后端代码
│   ├── __init__.py            # Flask 应用初始化
│   ├── models.py              # 数据库模型(4个表)
│   ├── config.py              # 配置管理
│   ├── routes/                # API 路由
│   │   ├── auth.py           # 认证 API
│   │   ├── tasks.py          # 任务管理 API
│   │   └── results.py        # 结果查询 API
│   └── executor/              # 任务执行器
│       └── __init__.py        # 执行逻辑
│
├── frontend/                   # 前端代码
│   ├── src/
│   │   ├── main.js            # Vue 入口
│   │   ├── App.vue            # 根组件
│   │   ├── router/            # 路由配置
│   │   │   └── index.js
│   │   ├── utils/             # 工具函数
│   │   │   └── api.js         # API 请求封装
│   │   └── views/             # 页面组件
│   │       ├── Login.vue           # 登录页
│   │       ├── Layout.vue          # 主布局
│   │       ├── Dashboard.vue       # 仪表盘
│   │       ├── Tasks.vue           # 任务管理
│   │       ├── PerfResults.vue     # 压力测试结果
│   │       └── QualityResults.vue  # 质量测试结果
│   ├── index.html             # HTML 入口
│   ├── vite.config.js         # Vite 配置
│   └── package.json           # 前端依赖
│
├── run.py                      # 启动脚本
├── init_db.py                  # 数据库初始化
├── requirements.txt            # Python 依赖
├── .env.example               # 环境变量模板
├── Makefile                    # 常用命令
├── start.sh                    # 快速启动脚本
│
├── README_NEW.md               # 完整文档
├── ARCHITECTURE_NEW.md         # 架构设计文档
└── QUICKSTART.md               # 快速开始指南

🗄️ 数据库设计

4 个核心表

  1. users - 用户表

    • 用户名、密码哈希、创建时间
  2. tasks - 任务表

    • 任务名称、类型、配置(JSON)
    • 调度设置(Cron/Interval)
    • 时间范围、状态、启用标志
  3. perf_test_results - 压力测试结果表

    • 执行时间
    • 性能指标(延迟、TTFT、TPOT、RPS、成功率等)
    • 输出文件路径
  4. quality_test_results - 质量测试结果表

    • 执行时间
    • Risk Summary(11 项)
    • 总体评级
    • 输出文件路径

🚀 快速开始

1. 安装依赖

# 后端依赖
pip install -r requirements.txt

# 前端依赖
cd frontend && npm install && cd ..

2. 配置数据库

# 创建数据库
mysql -u root -p
CREATE DATABASE model_test_db CHARACTER SET utf8mb4;

# 配置环境变量
cp .env.example .env
# 编辑 .env,填入数据库密码

3. 初始化和启动

# 初始化数据库
make init-db

# 构建前端
make build

# 启动应用
make run

访问 http://localhost:5000,使用 admin/admin123 登录。

📊 功能演示

创建压力测试任务

  1. 点击"新建任务"
  2. 选择"服务压力测试"
  3. 配置:
    • API URL: https://tokensea.ai
    • API Key: sk-xxxx
    • Model: Qwen2.5-0.5B-Instruct
    • 并发数: 8
    • 请求数: 50
  4. 设置调度:固定间隔 1800 秒
  5. 启用任务

创建质量测试任务

  1. 点击"新建任务"
  2. 选择"模型质量测试"
  3. 配置:
    • API URL: https://relay.example.com/v1
    • API Key: sk-xxxx
    • Audit 路径: /path/to/audit.py
  4. 设置调度:Cron 表达式 0 0 * * *(每天执行)
  5. 启用任务

查看结果

  • 仪表盘:查看统计概览和最近测试结果
  • 压力测试结果
    • 筛选任务和时间范围
    • 查看 4 个趋势图表
    • 查看详细结果列表
    • 点击"查看日志"查看原始输出
  • 质量测试结果
    • 筛选任务和时间范围
    • 查看 11 项风险检测结果表格
    • 查看总体评级
    • 点击"查看报告"查看完整 Markdown 报告

🎯 核心特性

1. 轻量级架构

  • Flask + Vue 3,易于理解和维护
  • 最小化依赖,快速部署

2. 灵活的任务调度

  • 支持手动、Cron、固定间隔三种方式
  • 可设置任务的有效时间范围

3. 自动化结果解析

  • evalscope perf:自动提取性能指标
  • audit.py:自动提取 Risk Summary

4. 可视化展示

  • ECharts 专业图表
  • 响应式设计,支持移动端

5. 完整的日志管理

  • 原始输出文件保存
  • 按任务/时间命名
  • 支持在线查看

🔧 扩展性

添加新的任务类型

  1. models.py 添加新的结果表
  2. executor/__init__.py 添加执行逻辑
  3. routes/results.py 添加查询 API
  4. 在前端添加配置表单和结果页面

自定义图表

修改 frontend/src/views/PerfResults.vue 中的 ECharts 配置。

添加 Webhook 通知

executor/__init__.py 中添加 Webhook 调用逻辑。

📝 文档说明

  • README_NEW.md:完整的项目文档,包含功能介绍、技术栈、API 文档、部署指南
  • ARCHITECTURE_NEW.md:详细的架构设计文档,包含模块设计、数据流、安全设计
  • QUICKSTART.md:快速开始指南,5 分钟上手

🎉 总结

这个项目提供了一个完整的、生产可用的模型质量测试管理后台:

功能完整:用户认证、任务管理、定时调度、结果可视化 ✅ 架构清晰:前后端分离,模块化设计 ✅ 易于维护:轻量级技术栈,代码结构清晰 ✅ 可扩展:预留扩展接口,易于添加新功能 ✅ 文档齐全:包含完整的使用文档和架构说明

可以直接用于生产环境,也可以作为基础框架进行二次开发!