一套面向私有化部署大模型(GLM、Qwen 等任何 OpenAI 兼容推理服务)的综合测评工具。一键完成质量、代码、工具调用、稳定性、长上下文、性能、容量等多维度测评,生成可交付客户的正式报告(PDF / Word / Markdown)。
架构:React 19 + TypeScript + Vite(前端) · Hono + tRPC + Drizzle ORM(后端,Node.js 单进程) · MySQL(存储)。被测对象只需提供 OpenAI 兼容接口(/v1/chat/completions,vLLM / SGLang / TGI / Xinference 等均可),运行全程无需访问互联网。
| 模块 | 说明 |
|---|---|
| 质量测评 | 16 道内置基准题(数学/逻辑/常识/代码/指令遵循/中文理解),规则评分器自动判分 |
| 代码测评 | HumanEval 风格,生成的代码在服务端隔离目录真实执行断言,输出 pass@1 / pass@k |
| 工具调用测评 | 真实 JSON Schema 工具定义,覆盖单工具、多工具、嵌套参数场景的调用正确率验证 |
| 稳定性测评 | 同一 Prompt 重复 N 次统计输出一致率,量化部署确定性 |
| 长上下文测评 | 大海捞针:不同长度 × 深度植入密钥检索,验证实际可用上下文窗口 |
| 性能压测 | TTFT、端到端时延、解码速度、预填充速度、并发吞吐 |
| 容量压测 | 并发阶梯加压,定位可支撑的最大同时使用人数 |
| 资源监控 | 部署机 CPU/GPU/内存/温度/功耗曲线(采集脚本上报),或回退读取 vLLM /metrics 服务级指标 |
| 报告中心 | 一键编排完整测评流程,生成正式报告存档,支持在线编辑、历史对比与导出 |
| 多模型对比 | 多个部署端点横向对比矩阵 |
断点续跑:所有测评状态落库,进程重启/休眠后由看门狗自动续跑未完成的任务,不产生重复明细。
- Node.js ≥ 20
- MySQL 8.0+(或兼容 MySQL 协议的 TiDB)
- 代码测评需服务器上有
python3(用于执行生成的代码断言)
npm install
npm run build
npm start # 默认端口 3000,可用 PORT 环境变量覆盖启动前需准备数据库并配置 .env。完整建表 SQL、内网/离线部署、systemd 常驻、资源监控采集脚本等详见 docs/私有网络部署指南.md。
| 变量 | 必填 | 说明 |
|---|---|---|
DATABASE_URL |
✅ | MySQL 连接串,如 mysql://user:pass@127.0.0.1:3306/glm_bench |
LLM_BASE_URL |
⬜ | 被测模型端点,如 http://192.168.1.10:8000/v1。也可在页面「连接配置」中设置(页面设置优先) |
LLM_API_KEY |
⬜ | 被测模型的 API Key(vLLM 未开启鉴权可填任意值) |
LLM_MODEL |
⬜ | 模型名,需与 /v1/models 返回的 ID 一致 |
PORT |
⬜ | 服务端口,默认 3000 |
APP_ID / APP_SECRET / VITE_APP_ID |
⬜ | 平台登录预留(本项目未启用登录),填任意占位值即可 |
端点配置优先级:页面「连接配置」保存的值 > 环境变量 > 内置占位默认值。请勿把真实凭据提交到仓库,.env 已被 .gitignore 忽略。
npm run dev # Vite 开发服务器(前端 + tRPC API),端口 3000├── api/ # 后端:Hono + tRPC 路由与测评执行器
│ ├── boot.ts # 生产入口(静态服务 + tRPC + 看门狗)
│ ├── router.ts # tRPC 路由
│ └── llm/ # 测评引擎:runner / assessment(编排+看门狗)/ 各专项执行器
├── contracts/ # 前后端共享类型
├── db/ # Drizzle schema 与迁移
├── src/ # 前端 React 应用
│ ├── views/ # 各测评页面
│ └── components/ # 结果展示、报告文档等组件
├── docs/ # 部署与使用文档
└── public/ # 静态资源(含可下载的采集脚本、部署指南)
- 启动报
Missing required environment variable: DATABASE_URL:.env未创建或不在项目根目录。 - 报告中心任务一直"测评中":进程重启遗留的任务基于心跳(5 分钟无更新)自动标记失败,看门狗会自动续跑仍可行的任务。
- 连接测试失败:确认能
curl http://<LLM>/v1/models通,模型名与返回 ID 完全一致。
更多见 docs/私有网络部署指南.md 的 FAQ 章节。