轻量级 DeepSWE 评测启动器 · 实时看板 · 断点续跑 · 多模型对比 · Excel 报表
A lightweight launcher / live dashboard / reporting tool for the DeepSWE benchmark, driving Pier evaluations.
DeepSWE 全量 113 题一次跑完耗时过长。本工具让你把评测拆成任意批次分多次跑,
自动跳过已完成任务(断点续跑)、跨批次按 task_id 去重合并,最终统一核算
Pass@1,并通过 终端看板 / WebUI / Excel 报表 呈现结果。
不修改 deepswe 仓库任何文件:所有产物(状态、日志、报表)都在启动器自己的目录下。
| 特性 | 说明 |
|---|---|
| 分批运行 | 按语言 / 分类 / task_id / 切片 选择子集,随时暂停、终止、恢复;「开始运行」弹窗直接勾选本批次项目,未运行 / 失败项目优先显示 |
| 断点续跑 | 自动跳过已评测任务,从第一个未完成处继续 |
| 去重合并 | 以 task_id 为主键,跨批次自动合并(newest 取最新 / best 优先通过) |
| 多模型档案 | 保存多套模型配置(本地 / 在线 / 不同模型 ID)一键切换;成绩按 model@agent 分开存储,互不覆盖;WebUI「设置 / 模型 → ➕ 添加模型」向导:填 API 地址/Key/兼容类型(openai-completions、openai-responses、anthropic-messages、google-generative-ai 等)/模型 ID/显示名称/推理强度即可自动生成档案并联动 |
| 单项重跑 | WebUI 一键重跑某题更新成绩(仅当前模型维度,其它模型历史保留) |
| 实时看板 | 终端 ANSI 看板 + WebUI(原生 JS,零依赖) |
| Pass@1 统计 | 通过率、通过/失败分布、按语言/模型通过率、单题轮数、耗时 |
| Excel 报表 | 纯标准库生成(兼容 Excel / WPS),含任务明细、按语言、按模型多维统计 |
| 独立日志 | 每任务独立 logs/<task_id>.log,跨批次累积 |
| 结果解析 | 自动解析 pier 的 result.json / reward.json / ctrf.json(runs/jobs 目录) |
| 网络适配 | 直连 / 任意端口代理自动适配;bridge 禁用的 Docker 环境有可选补丁脚本 |
git clone https://github.com/datacurve-ai/deep-swe
git clone <本仓库> deepswe-launcher
cd deepswe-launcher
# 0) 安装 pier(官方评测框架)
uv tool install datacurve-pier # 或 pip install datacurve-pier
# 1) 体检
python3 launcher.py doctor
# 2) 启动 WebUI + 终端看板 → http://127.0.0.1:8756
python3 launcher.py serve --dashboard
# 3) 命令行分批跑(示例)
OPENAI_API_KEY=xxx python3 launcher.py run --lang go --slice 0:10
OPENAI_API_KEY=xxx python3 launcher.py run --only failed # 补跑失败
OPENAI_API_KEY=xxx python3 launcher.py run --only pending_failed # 未运行 + 失败一起补
python3 launcher.py run --model-profile 在线Claude --lang python # 指定模型档案
# 4) 扫描已有 pier 输出并合并(runs/jobs 目录)
python3 launcher.py scan
# 5) 导出报表 / 查看状态 / 自测
python3 launcher.py report
python3 launcher.py list
python3 launcher.py test复制 config.example.json 为 config.json 后按需修改;或直接在 WebUI「⚙ 设置 / 模型」
统一弹窗中管理(模型档案 / 添加模型向导 / 并发 / 合并策略 / 构建代理)。详见 docs/USAGE.md。
- 设计文档 docs/DESIGN.md — 架构、数据流、状态模型、去重/合并语义
- 使用说明 docs/USAGE.md — CLI / WebUI / 报表 / 模型档案 全指南
- Pier 适配 docs/PIER_ADAPTATION.md — 特殊 Docker 环境补丁
- 变更日志 docs/CHANGELOG.md
- 安全与数据脱敏 SECURITY.md — 密钥处理与
scripts/check_secrets.sh
A zero-dependency (Python stdlib only) launcher for DeepSWE benchmark
evaluations on top of Pier. It splits the 113-task full run into arbitrary
batches, resumes from breakpoints, deduplicates across batches by task_id,
and reports Pass@1 through a terminal dashboard, a zero-CDN Web UI, and an
Excel (Excel/WPS compatible) report.
Highlights:
- Model profiles — save multiple model configs (local / online / different
model IDs) and switch with one click; scores are keyed by
model@agentso reruns under a different model never overwrite each other. - Add-model wizard — the WebUI Settings / Models → Add Model tab turns a model display
name, model ID, API type (openai-completions / openai-responses /
anthropic-messages / google-generative-ai / openrouter / deepseek / xai-grok /
ollama), API base URL, API key and reasoning effort into a ready-to-run
profile (auto-generates the mini-swe-agent config under
configs/models/, injects the key into the pier subprocess env at run time, never echoes it back). - Per-task rerun — re-evaluate a single completed task to refresh its score (only the active model's result is replaced).
- Pause / terminate / resume anytime; resume from breakpoint across restarts.
- Parses real Pier output (
result.json/reward.json/ctrf.json) fromruns/jobsdirectories, including results produced outside the launcher. - Network-aware — build-time proxy inherits
HTTP_PROXYenv vars (orbuild_proxyconfig); optionalscripts/patch_pier.shfor Docker hosts with bridge networking disabled.
Quick start:
uv tool install datacurve-pier
python3 launcher.py doctor
python3 launcher.py serve --dashboard # http://127.0.0.1:8756
OPENAI_API_KEY=xxx python3 launcher.py run --lang go --slice 0:10
python3 launcher.py reportDocs: DESIGN.md · USAGE.md · PIER_ADAPTATION.md · CHANGELOG.md
License: MIT.