v1.1.0 后台管理+能力测试+模型对比+硬件显示:颜色对比度优化;提交/账号管理移到后台(admin/admin123, session);移除前台提交/账号链接与一键同步提示;对比图默认全部+可指定模型;新增模型能力测试模块(后台编辑/前台展示);模型对比支持硬件显示+对比项可去留;提交带硬件字段(admin可改);llm-speed-tester 新增 /api/gpu 探测+发送带硬件

This commit is contained in:
2026-09-02 13:38:07 +08:00
parent 1b08c95929
commit c6eef5e67f
14 changed files with 1331 additions and 285 deletions
+61 -27
View File
@@ -1,6 +1,6 @@
# 模型评测网站 API 文档
Base: `http://<IP>:16066`(端口 16066
Base: `http://<IP>:16066`(端口 16066。后台管理接口需先登录(session cookie)。
## 1. 接收提交(llm-speed-tester 一键发送)
@@ -14,19 +14,17 @@ curl -X POST http://127.0.0.1:16066/api/submit \
-H "X-Token: meval16066" \
-d '{
"account": "性能评测组", # 账号,不存在自动创建
"source_test_id": 25, # llm-speed-tester 测试ID
"source_test_id": 25,
"source_site": "llm-speed-tester",
"provider": "openai",
"model": "nvidia/Qwen3.6-35B-A3B-NVFP4",
"hardware": "NVIDIA A100 80G x8", # 硬件/GPU 描述(随提交展示)
"test_name": "我的测试",
"summary": { "samples_ok":2, "samples_total":2, "avg_ttft_ms":180,
"avg_prefill_speed":320.5, "avg_decode_speed":88.2,
"avg_output_tokens":128, "avg_total_ms":2500,
"concurrency_levels":[1],
"by_length": {"2048": {"avg_ttft_ms":150,"avg_prefill_speed":350,
"avg_decode_speed":92,"avg_prompt_tokens":1500,
"avg_output_tokens":128,"avg_total_ms":2000}},
"by_concurrency": {} },
"by_length": {...}, "by_concurrency": {} },
"gen": {"context_lengths":[2048,8192], "max_tokens":128, "samples":2, "concurrency_levels":[1]},
"runs": []
}'
@@ -35,55 +33,91 @@ curl -X POST http://127.0.0.1:16066/api/submit \
响应:
```json
{ "ok": true, "id": 21, "account_id": 2, "account": "性能评测组",
{ "ok": true, "id": 22, "account_id": 2, "account": "性能评测组",
"model": "nvidia/Qwen3.6-35B-A3B-NVFP4",
"url": "/model.html?provider=openai&model=nvidia/Qwen3.6-35B-A3B-NVFP4" }
```
## 2. 排行 / 统计
## 2. 后台登录
```bash
# 模型速度排行(按 provider+model 聚合)
GET /api/leaderboard?sort=avg_decode_speed&order=desc&limit=200
# sort 可选: avg_decode_speed / avg_prefill_speed / avg_ttft_ms / best_decode / cnt / accounts / last_tested
GET /api/stats # 统计卡片
GET /api/health # 健康检查 + stats
POST /api/admin/login {"username":"admin","password":"admin123"} # 成功后下发 session cookie
GET /api/admin/session # {"admin":true}
POST /api/admin/logout
```
## 3. 模型详情
## 3. 排行 / 统计 / 对比
```bash
# 模型速度排行(含硬件);models 可指定对比哪些(provider|model 逗号分隔)
GET /api/leaderboard?sort=avg_decode_speed&order=desc&limit=200
GET /api/leaderboard?models=openai|qwen3.5-plus,autodl|glm-5.3-flash
# sort 可选: avg_decode_speed / avg_prefill_speed / avg_ttft_ms / best_decode / cnt / accounts / last_tested
# 模型对比(默认全部模型);chart_metric: avg_decode_speed|avg_prefill_speed|avg_ttft_ms|best_decodechart_type: bar|line
GET /api/compare?models=openai|qwen3.5-plus,google|gemini-2.0-flash&chart_metric=avg_ttft_ms&chart_type=bar
GET /api/stats # 统计(模型/提交/账号/采样/能力测试数)
GET /api/health
```
## 4. 模型详情
```bash
GET /api/model?provider=openai&model=nvidia/Qwen3.6-35B-A3B-NVFP4
```
返回该模型全部提交(submissions,含账号)+ 按上下文长度聚合(by_length+ 折线图数据(line_csv/line_payload
返回该模型全部提交(含账号、硬件)+ 按上下文长度聚合 + 折线图数据
## 4. 提交管理
## 5. 提交(前台只读;增删改走后端)
```bash
GET /api/submissions?page=1&page_size=20&q=关键词&account_id=2&model=xxx&provider=xxx
GET /api/submissions/<id> # 单条详情
DELETE /api/submissions/<id> # 删除
GET /api/submissions/<id>/chart # 上下文长度→速度折线图 PNG
GET /api/submissions/<id>
DELETE /api/submissions/<id> # 后台
PUT /api/submissions/<id>/hardware {"hardware":"NVIDIA A100"} # 后台,改硬件
GET /api/submissions/<id>/chart # 长度→速度折线图 PNG
```
## 5. 账号管理
## 6. 账号管理(后台)
```bash
GET /api/accounts
POST /api/accounts {"name":"xxx","remark":"yyy"} # 新增(重名 400
PUT /api/accounts/<id> {"name":"xxx","remark":"yyy"} # 改名/备注
DELETE /api/accounts/<id> # 删除(连带其提交)
POST /api/accounts {"name":"xxx","remark":"yyy"}
PUT /api/accounts/<id> {"name":"xxx","remark":"yyy"}
DELETE /api/accounts/<id>
```
## 6. 其他
## 7. 模型能力测试(前台只读;内容后台编辑)
```bash
# 前台:只返回 status=1 启用的能力测试
GET /api/capabilities
# 后台:全部(含停用)+ 增删改
GET /api/admin/capabilities
POST /api/admin/capabilities
PUT /api/admin/capabilities/<id>
DELETE /api/admin/capabilities/<id>
# 能力测试对象:{name, category, icon, description, sort, status,
# items: [ {title, prompt, expect}, ... ]}
```
## 8. 演示数据(后台)
```bash
POST /api/seed-demo # 🎲 评测演示数据(含硬件)
POST /api/seed-capabilities # 🎲 能力测试演示数据
```
## 9. 其他
```bash
POST /api/seed-demo # 🎲 生成演示评测数据
POST /api/chart # 图表代理(转发 data-chart-tool 16016,返回 PNG
```
## 错误
所有接口失败返回 `{"ok": false, "error": "..."}` + 对应 HTTP 状态码
所有接口失败返回 `{"ok": false, "error": "..."}` + 对应 HTTP 状态码
后台接口未登录返回 401。