From 6af1d348420ed69334215200681595a539d9585d Mon Sep 17 00:00:00 2001 From: dschlueter Date: Thu, 17 Sep 2026 14:47:43 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20README=20um=20Einheiten-=20und=20Szenar?= =?UTF-8?q?io-Abnahme=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5 --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 629da53..41adcce 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,9 @@ Aufgabentext (+ optional beigelegte Daten: --daten kurse.csv) 6. Solver ──────────── LLM erzeugt Python-Code, Ausführung in der Sandbox, Reparatur │ solving/ bei Fehlern; Szenarien = Datenvarianten, ohne LLM nachgerechnet ▼ -7. Abnahme ─────────── ohne LLM: jede Teilfrage beantwortet? jede Zahl der Antwort - │ solving/ belegt? Lösung zulässig? Eingabedaten ausgewiesen? +7. Abnahme ─────────── ohne LLM: jede Teilfrage beantwortet? jede Zahl und Einheit + │ solving/ der Antwort belegt? Lösung zulässig? Eingabedaten ausgewiesen? + │ jedes Szenario mit Ergebnis? ▼ Report (Markdown/HTML) + JSON + eigenständiges Solver-Skript reporting/ ``` @@ -150,8 +151,9 @@ Das LLM kann Fehler machen – deshalb gibt es mehrere Sicherungen: - **Jede Zahl der Antwort belegt:** Zahlen im Antworttext müssen aus dem Ergebnis oder der Aufgabe stammen (Rundungen und Einheitenumrechnungen werden akzeptiert). Ein Vergleichswert, der in keiner Tabelle steht, fällt auf. - **Jede Zahl der Aufgabe erfasst:** Zahlen des Aufgabentexts müssen als Fakt mit Fundstelle oder mit Begründung als irrelevant ausgewiesen sein – sonst betreten sie die Pipeline erst im Solver-Code, hinter allen Prüfungen. - **Selbst erzeugte Daten sind gekennzeichnet:** Erzeugt das Programm Eingabedaten (Zufallszahlen, synthetischer Markt, verkleinertes Universum), muss das in `data_assumptions` stehen, nicht nur im Fließtext – sonst folgt eine Reparatur und notfalls die Markierung „unzuverlässig“. -- **Szenarien nachgerechnet:** Vergleicht die Aufgabe mehrere Konfigurationen, wird jede durch erneutes Ausführen des Programms bestätigt – ohne LLM. -- **Keine erfundene Bedeutung (Prompt-Regel, nicht automatisch geprüft):** Nennt der Text keine Bedeutung – etwa bei einem reinen Formelsatz –, erklärt das Modell mathematisch (Mindest-/Höchstbedingungen) und sagt, dass die Bedeutung fehlt, statt ein Produktionsproblem zu erfinden. +- **Szenarien nachgerechnet:** Vergleicht die Aufgabe mehrere Konfigurationen, wird jede durch erneutes Ausführen des Programms bestätigt – ohne LLM. Hat ein Szenario kein Ergebnis und ist nicht als unlösbar belegt (beobachtet: Zeitlimit abgelaufen, gemeldet als „keine Lösung“), folgt eine Reparatur und notfalls die Markierung „unzuverlässig“. +- **Keine erfundenen Einheiten:** Eine Einheit hinter einer Zahl im Antworttext muss im Aufgabentext oder in beigelegten Daten vorkommen (nach Größenart: „Tausend Euro“ deckt „€“); neutrale Geld- und Mengeneinheiten (GE, ME) nur, wenn der Text von Kosten bzw. Mengen spricht. Sonst folgt eine Reparatur. +- **Keine erfundene Bedeutung (Prompt-Regel, nur teilweise wirksam):** Nennt der Text keine Bedeutung – etwa bei einem reinen Formelsatz –, soll das Modell mathematisch erklären statt ein Produktionsproblem zu erfinden. Gemessen wirkt das nur halb: Bedeutungswörter („Kosten“, „Ressourcen“) tauchen weiter auf; automatisch geprüft werden nur die Einheiten. - **Sandbox:** Der erzeugte Code läuft ohne Netzzugang, mit nur lesbarem Dateisystem und beschreibbar allein dem Arbeitsverzeichnis des Laufs. - **Kein falsches „optimal“:** Bleibt das Modell fehlerhaft, wird das Ergebnis als **unzuverlässig** markiert – bei falscher Zielgröße ohne Solver-Lauf, mit Warnkasten im Report und Exit-Code 2.