"""Summarize the full quality matrix: bench-out/fullq-{xserv,llama}-pp{1,2,4}. Prints one row per (engine, pp, task) with accuracy + latency.""" import glob, json, os, sys base = sys.argv[1] if len(sys.argv) > 1 else "bench-out" print("%-6s %-3s %-9s %-8s %6s %9s %9s %10s" % ("engine","PP","task","correct","acc%","mean_tok","TTFT_ms","TPOT_ms")) for eng in ("xserv","llama"): for pp in (1,2,4): files = sorted(glob.glob(os.path.join(base, f"fullq-{eng}-pp{pp}", "comparison-*.json"))) if not files: print(f"{eng:<6} {pp:<3} (no results)"); continue d = json.load(open(files[-1])) for r in d.get("quality",{}).get("summary",[]): print("%-6s %-3d %-9s %-8s %5.1f%% %9.0f %9.1f %10.2f" % ( eng, pp, r["task"], f'{r["n_correct"]}/{r["n_total"]}', r["accuracy"]*100, r.get("mean_completion_tokens",0), r.get("mean_ttft_ms",0), r.get("mean_tpot_ms",0)))