Add multi-window baseline vs tuned compare flow
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user