我已经为你创建了一个完整的模型质量测试管理后台,采用轻量级技术栈,易于维护和扩展。
后端:
- Flask 3.0(轻量级 Web 框架)
- MySQL(关系型数据库)
- SQLAlchemy(ORM)
- APScheduler(任务调度)
- Flask-Login(认证)
前端:
- Vue 3(Composition API)
- Element Plus(UI 组件库)
- ECharts(图表库)
- Vite(构建工具)
- ✅ 账号密码登录
- ✅ Session 管理
- ✅ 密码修改
- ✅ 基于配置文件初始化管理员账号
- ✅ 任务 CRUD 操作
- ✅ 两种任务类型:
- 服务压力测试(evalscope perf)
- 模型质量测试(audit.py)
- ✅ 三种调度方式:
- 手动执行
- Cron 表达式
- 固定间隔
- ✅ 任务启用/禁用
- ✅ 时间范围设置
- ✅ 异步任务执行
- ✅ 进程管理(启动/停止)
- ✅ 输出解析:
- evalscope perf 表格数据解析
- audit.py Risk Summary 解析
- ✅ 结果保存到数据库
- ✅ 原始文件保存
- ✅ 服务压力测试:
- 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 # 快速开始指南
-
users - 用户表
- 用户名、密码哈希、创建时间
-
tasks - 任务表
- 任务名称、类型、配置(JSON)
- 调度设置(Cron/Interval)
- 时间范围、状态、启用标志
-
perf_test_results - 压力测试结果表
- 执行时间
- 性能指标(延迟、TTFT、TPOT、RPS、成功率等)
- 输出文件路径
-
quality_test_results - 质量测试结果表
- 执行时间
- Risk Summary(11 项)
- 总体评级
- 输出文件路径
# 后端依赖
pip install -r requirements.txt
# 前端依赖
cd frontend && npm install && cd ..# 创建数据库
mysql -u root -p
CREATE DATABASE model_test_db CHARACTER SET utf8mb4;
# 配置环境变量
cp .env.example .env
# 编辑 .env,填入数据库密码# 初始化数据库
make init-db
# 构建前端
make build
# 启动应用
make run访问 http://localhost:5000,使用 admin/admin123 登录。
- 点击"新建任务"
- 选择"服务压力测试"
- 配置:
- API URL:
https://tokensea.ai - API Key:
sk-xxxx - Model:
Qwen2.5-0.5B-Instruct - 并发数: 8
- 请求数: 50
- API URL:
- 设置调度:固定间隔 1800 秒
- 启用任务
- 点击"新建任务"
- 选择"模型质量测试"
- 配置:
- API URL:
https://relay.example.com/v1 - API Key:
sk-xxxx - Audit 路径:
/path/to/audit.py
- API URL:
- 设置调度:Cron 表达式
0 0 * * *(每天执行) - 启用任务
- 仪表盘:查看统计概览和最近测试结果
- 压力测试结果:
- 筛选任务和时间范围
- 查看 4 个趋势图表
- 查看详细结果列表
- 点击"查看日志"查看原始输出
- 质量测试结果:
- 筛选任务和时间范围
- 查看 11 项风险检测结果表格
- 查看总体评级
- 点击"查看报告"查看完整 Markdown 报告
- Flask + Vue 3,易于理解和维护
- 最小化依赖,快速部署
- 支持手动、Cron、固定间隔三种方式
- 可设置任务的有效时间范围
- evalscope perf:自动提取性能指标
- audit.py:自动提取 Risk Summary
- ECharts 专业图表
- 响应式设计,支持移动端
- 原始输出文件保存
- 按任务/时间命名
- 支持在线查看
- 在
models.py添加新的结果表 - 在
executor/__init__.py添加执行逻辑 - 在
routes/results.py添加查询 API - 在前端添加配置表单和结果页面
修改 frontend/src/views/PerfResults.vue 中的 ECharts 配置。
在 executor/__init__.py 中添加 Webhook 调用逻辑。
- README_NEW.md:完整的项目文档,包含功能介绍、技术栈、API 文档、部署指南
- ARCHITECTURE_NEW.md:详细的架构设计文档,包含模块设计、数据流、安全设计
- QUICKSTART.md:快速开始指南,5 分钟上手
这个项目提供了一个完整的、生产可用的模型质量测试管理后台:
✅ 功能完整:用户认证、任务管理、定时调度、结果可视化 ✅ 架构清晰:前后端分离,模块化设计 ✅ 易于维护:轻量级技术栈,代码结构清晰 ✅ 可扩展:预留扩展接口,易于添加新功能 ✅ 文档齐全:包含完整的使用文档和架构说明
可以直接用于生产环境,也可以作为基础框架进行二次开发!