Add multi-window baseline vs tuned compare flow

This commit is contained in:
2026-04-11 13:51:54 +08:00
parent a0b2d7eab2
commit 5e54e9c8f5
5 changed files with 860 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import json
import sys
from pathlib import Path
from .compare import run_compare
from .job import append_job, build_trial_job
from .llm import build_prompt, call_llm_for_proposal, load_capability_profile, parse_proposal_text
from .spec import Proposal, SpecError, load_study_spec
@@ -183,6 +184,25 @@ def cmd_worker_run_trial(args: argparse.Namespace) -> int:
return 0
def cmd_compare_run(args: argparse.Namespace) -> int:
summary = run_compare(
Path(args.spec).resolve(),
output_root=Path(args.output_root).resolve() if args.output_root else None,
)
print(
json.dumps(
{
"compare_id": summary["compare_id"],
"compare_root": summary["compare_root"],
"window_count": summary["aggregate"]["window_count"],
"wins": summary["aggregate"]["wins"],
},
ensure_ascii=False,
)
)
return 0
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="AITuner CLI")
subparsers = parser.add_subparsers(dest="command", required=True)
@@ -239,6 +259,13 @@ def build_parser() -> argparse.ArgumentParser:
run.add_argument("--trial-spec", required=True)
run.set_defaults(func=cmd_worker_run_trial)
compare = subparsers.add_parser("compare")
compare_sub = compare.add_subparsers(dest="compare_command", required=True)
compare_run = compare_sub.add_parser("run")
compare_run.add_argument("--spec", required=True)
compare_run.add_argument("--output-root")
compare_run.set_defaults(func=cmd_compare_run)
return parser