feat: Nicht-Optimierungsaufgaben ablehnen statt modellieren
Bisher erzeugte is_optimization_task=False nur eine Log-Warnung; eine reine Gleichung wurde trotzdem in ein Optimierungsmodell gepresst. Jetzt bricht run_pipeline direkt nach dem Verstehen ab: kein Nachfassen, keine Extraktion, kein Solver. PipelineResult.rejected, reliable=False, specification/review optional; Report "Aufgabe abgelehnt", CLI-Exit-Code 3, Benchmark-Status "abgelehnt" (auch die Ergebnistabelle verkraftet die Zeile), --von verweigert. Der Verstehens-Prompt nennt reine Gleichungen/Rechenaufgaben als Nicht-Aufgaben und Zulaessigkeitsfragen sowie moeglicherweise unloesbare Planungen ausdruecklich als Aufgaben. Unvermessen; Prompt-Kennung jetzt 0333bfd5f9fe. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
cb402996ad
commit
8697400dc2
1 changed files with 93 additions and 11 deletions
|
|
@ -115,6 +115,19 @@ def run_case(case: dict, model: str, run_no: int) -> dict:
|
|||
return row
|
||||
|
||||
spec, solver_run = result.specification, result.solver_run
|
||||
if spec is None: # abgelehnt: keine Optimierungsaufgabe erkannt
|
||||
fragen = len(result.understanding.sub_questions) if result.understanding else 0
|
||||
row.update(seconds=round(time.monotonic() - start), problem_class=None, target_stack=None,
|
||||
class_ok=False, stack_ok=False, check_errors=0, check_warnings=len(result.checks),
|
||||
revisions=0, review_ok=None, data_assumptions=0, solver_status="abgelehnt", solver_attempts=0,
|
||||
objective_value=None, objective_ok=False, questions=fragen, answered=0, answer_findings=0,
|
||||
task_ok=False, solver_error="; ".join(result.reliability_issues), reliable=False, restarts=0,
|
||||
providers=result.usage.providers if result.usage else {},
|
||||
llm_calls=result.usage.calls if result.usage else 0,
|
||||
reasoning_tokens=result.usage.reasoning_tokens if result.usage else 0,
|
||||
cost_usd=result.usage.cost_usd if result.usage else None,
|
||||
result=json.loads(result.model_dump_json()))
|
||||
return row
|
||||
# "Aufgabe erfüllt" statt nur "Zahl richtig": alle Teilfragen beantwortet, keine unbelegte Zahl
|
||||
fragen = {q.id for q in result.understanding.sub_questions} if result.understanding else set()
|
||||
antworten = {a.question_id for a in solver_run.answers} if solver_run else set()
|
||||
|
|
|
|||
Loading…
Reference in a new issue