Add harness guided first topology probe
This commit is contained in:
@@ -6,7 +6,11 @@ import sys
|
||||
from pathlib import Path
|
||||
|
||||
from .compare import run_compare
|
||||
from .harness import build_harness_context, build_harness_stop_proposal
|
||||
from .harness import (
|
||||
build_harness_context,
|
||||
build_harness_guided_proposal,
|
||||
build_harness_stop_proposal,
|
||||
)
|
||||
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, to_jsonable
|
||||
@@ -179,13 +183,25 @@ def cmd_study_tune(args: argparse.Namespace) -> int:
|
||||
proposal_text = json.dumps(to_jsonable(stop_proposal), ensure_ascii=False)
|
||||
proposal_name = f"harness-stop-{state.next_trial_index:04d}"
|
||||
else:
|
||||
if study.llm.endpoint is None:
|
||||
raise SpecError(
|
||||
"No proposal files provided, study.llm.endpoint is not configured, "
|
||||
"and the harness stop guard did not fire."
|
||||
guided_proposal = (
|
||||
build_harness_guided_proposal(harness_context)
|
||||
if harness_context is not None
|
||||
else None
|
||||
)
|
||||
if guided_proposal is not None:
|
||||
proposal_text = json.dumps(
|
||||
to_jsonable(guided_proposal),
|
||||
ensure_ascii=False,
|
||||
)
|
||||
proposal_text = call_llm_for_proposal(policy=study.llm, prompt=prompt)
|
||||
proposal_name = f"proposal-{state.next_trial_index:04d}"
|
||||
proposal_name = f"harness-proposal-{state.next_trial_index:04d}"
|
||||
else:
|
||||
if study.llm.endpoint is None:
|
||||
raise SpecError(
|
||||
"No proposal files provided, study.llm.endpoint is not configured, "
|
||||
"and the harness stop guard did not fire."
|
||||
)
|
||||
proposal_text = call_llm_for_proposal(policy=study.llm, prompt=prompt)
|
||||
proposal_name = f"proposal-{state.next_trial_index:04d}"
|
||||
raw_proposal_path = store.study_root(study.study_id) / "proposals" / f"{proposal_name}.raw.txt"
|
||||
raw_proposal_path.write_text(proposal_text, encoding="utf-8")
|
||||
proposal = parse_proposal_text(proposal_text, study)
|
||||
@@ -212,10 +228,14 @@ def cmd_study_tune(args: argparse.Namespace) -> int:
|
||||
result = run_trial(trial_spec_path)
|
||||
state = store.ingest_trial_results(study.study_id)
|
||||
executed.append(
|
||||
{
|
||||
"trial_id": trial.trial_id,
|
||||
"proposal_name": proposal_name,
|
||||
"proposal_source": str(proposal_source) if proposal_source else "llm",
|
||||
{
|
||||
"trial_id": trial.trial_id,
|
||||
"proposal_name": proposal_name,
|
||||
"proposal_source": (
|
||||
"harness"
|
||||
if proposal_name.startswith("harness-proposal-")
|
||||
else str(proposal_source) if proposal_source else "llm"
|
||||
),
|
||||
"best_sampling_u": result.get("best_sampling_u"),
|
||||
"best_request_rate": result.get("best_request_rate"),
|
||||
"best_pass_rate": result.get("best_pass_rate"),
|
||||
|
||||
Reference in New Issue
Block a user