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
|
|
@ -7,8 +7,8 @@ Aufgabentext (+ optional beigelegte Daten: --daten kurse.csv)
|
|||
│ ohne LLM: Profil je Datei – Zeilen, Spalten, Spannweiten, Lücken
|
||||
▼
|
||||
1. Verstehen ───────── LLM: Teilfragen a)/b)/…, alle Zahlen des Textes mit Fundstelle,
|
||||
│ understanding/ übergangene Zahlen mit Grund; Hinweis, wenn es keine
|
||||
│ Optimierungsaufgabe ist (die Pipeline läuft trotzdem weiter)
|
||||
│ understanding/ übergangene Zahlen mit Grund; keine Optimierungsaufgabe
|
||||
│ (z. B. reine Gleichung) ⇒ abgelehnt, Ende
|
||||
│ ohne LLM geprüft: keine Zahl, keine Teilfrage übersehen
|
||||
▼
|
||||
2. Extraktion ──────── LLM: Problemklasse, Solver-Wahl, Indizes, Parameter,
|
||||
|
|
@ -93,7 +93,7 @@ echo "Ein Betrieb ..." | .venv/bin/python TextToModel.py --report output/modell.
|
|||
.venv/bin/python TextToModel.py --von solver output/ergebnis.json > output/neu.json
|
||||
```
|
||||
|
||||
Der Ordner `output/` ist in `.gitignore` eingetragen. Ohne Eingabe wird eine eingebaute Beispielaufgabe verwendet. Fortschritt und Kosten erscheinen auf stderr, das Ergebnis-JSON auf stdout.
|
||||
Exit-Codes: `0` Ergebnis zuverlässig, `2` Ergebnis vorhanden, aber unzuverlässig, `3` abgelehnt – der Text ist keine Optimierungsaufgabe (es wird weder modelliert noch gerechnet; Report und JSON nennen den Grund). Der Ordner `output/` ist in `.gitignore` eingetragen. Ohne Eingabe wird eine eingebaute Beispielaufgabe verwendet. Fortschritt und Kosten erscheinen auf stderr, das Ergebnis-JSON auf stdout.
|
||||
|
||||
| Option / Variable | Bedeutung | Standard |
|
||||
|---|---|---|
|
||||
|
|
@ -138,6 +138,7 @@ cp kurse.csv output/ && (cd output && ../.venv/bin/python solve.py)
|
|||
|
||||
Das LLM kann Fehler machen – deshalb gibt es mehrere Sicherungen:
|
||||
|
||||
- **Nur echte Aufgaben:** Verlangt der Text keine Entscheidung – etwa eine Gleichung, die nur ausgerechnet werden soll –, wird er abgelehnt, statt ein Optimierungsmodell zu erfinden.
|
||||
- **Zielgrößen-Prüfung:** erkennt z. B., wenn die Varianz statt der gefragten Volatilität minimiert wird.
|
||||
- **Annahmen-Prüfung:** Unklarheiten im Text müssen als Annahme ausgewiesen werden und werden gegen den Text geprüft (z. B. „wenn A, dann B“ ist keine Äquivalenz).
|
||||
- **Zulässigkeitsprüfung ohne LLM:** Die gefundene Lösung wird in alle Restriktionen eingesetzt, Schranken und Ganzzahligkeit geprüft und abgeglichen, ob jede Restriktion des Modells im Programm vorkommt. Verletzungen lösen eine Reparatur aus – Solver-Toleranzen (beobachtet: 8 Cent über dem Budget) fallen damit auf.
|
||||
|
|
|
|||
Loading…
Reference in a new issue