fix: abgeschnittene Antworten meiden den Anbieter; LLM-Ausfall macht unzuverlässig statt abzustürzen
Grundlinie 20260918-191400: 9 von 22 Läufen hatten Aufrufe, die an LLM_MAX_TOKENS abgeschnitten wurden (Venice 4/28, Makora 2/43, übrige 0/54); hard_portfolio_kardinalitaet brach nach vier Abschneidungen ab, Kosten gingen verloren. - Abschneiden: sofort neu versuchen, Anbieter per provider.ignore meiden (_avoid_provider, gemeinsam mit „zu langsam“) - nach allen Wiederholungen LLMUnavailable (Stufe + Ursache); fatale Fehler bleiben unverpackt - Solver-Stufe behält Modell und Prüfbericht (Solver-Fehler), Gegenprobe behält erstes Ergebnis, davor Ergebnis ohne Spezifikation mit Kosten („LLM-Fehler“, Report „Lauf abgebrochen“) - Benchmark: Status „LLM-Fehler“ statt ABBRUCH, zählt nicht als ehrliches Scheitern - TextToModel.py: Shebang Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
422360ffa5
commit
6b2b2c6466
1 changed files with 218 additions and 25 deletions
|
|
@ -335,10 +335,15 @@ def _figure_blocks(result: PipelineResult) -> list:
|
|||
|
||||
|
||||
def _rejected_document(result: PipelineResult) -> list:
|
||||
"""Abgelehnte Aufgabe: Grund und Aufgabentext – kein Modell, keine Zahlen."""
|
||||
grund = result.understanding.reason if result.understanding else "; ".join(result.reliability_issues)
|
||||
doc = [("h1", "Aufgabe abgelehnt"),
|
||||
("warn", f"Keine Optimierungsaufgabe – es wurde weder modelliert noch gerechnet. {grund}")]
|
||||
"""Abgelehnte Aufgabe oder abgebrochener Lauf: Grund und Aufgabentext – kein Modell, keine Zahlen."""
|
||||
if result.rejected:
|
||||
grund = result.understanding.reason if result.understanding else "; ".join(result.reliability_issues)
|
||||
doc = [("h1", "Aufgabe abgelehnt"),
|
||||
("warn", f"Keine Optimierungsaufgabe – es wurde weder modelliert noch gerechnet. {grund}")]
|
||||
else: # LLM nach allen Wiederholungen gescheitert, bevor ein Modell entstand
|
||||
doc = [("h1", "Lauf abgebrochen"),
|
||||
("warn", "Es ist kein Modell entstanden – es wurde nichts gerechnet. "
|
||||
+ "; ".join(result.reliability_issues))]
|
||||
if result.usage:
|
||||
cost = f", Kosten USD {result.usage.cost_usd:.4f}" if result.usage.cost_usd is not None else ""
|
||||
doc.append(("list", [f"Erstellt: {datetime.now():%d.%m.%Y %H:%M}", f"Modell: {result.usage.model}",
|
||||
|
|
|
|||
Loading…
Reference in a new issue