fix: Umlaute im Code erlaubt, Lesertexte still berichtigt
Ursache der Umschreibungen ist kein Encoding-Problem: das LLM schreibt im erzeugten Python-Code ASCII (Portfolio Nr. 2: Code-Strings 0 echte gegen 60 umschriebene Umlaute, Spezifikation 128 echte). Die Prompt-Regel wurde ignoriert, die Warnung stand in fast jedem Lauf. - Solver-Prompt: Umschreibungen in Bezeichnern, DATA-Schluesseln, Restriktionsnamen und Kommentaren erlaubt; echte Umlaute nur in Lesertexten, Regel direkt bei den report()-Argumenten. - check_text_quality meldet keine Umlaute mehr (Fachbegriffe bleiben). - umlaut_map baut je Lauf ein Woerterbuch aus Aufgabe und Spezifikation; repair_texts wendet es vor UMLAUT_STEMS an. ASCII-Formen aus dem Aufgabentext (Namen) bleiben, Restriktions-/Variablennamen unberuehrt. An vier gespeicherten Laeufen: alle Umschreibungen in Lesertexten berichtigt, 11 Ersetzungen, keine falsch. Prompt-Kennung 694c3eb3d59a. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
8697400dc2
commit
0d9b5d718f
1 changed files with 88 additions and 40 deletions
|
|
@ -59,6 +59,7 @@ Geldbeträge und Rundung:
|
|||
|
||||
Ergebnisausgabe:
|
||||
- Die Funktion `report(status, objective_value, solution, tables, headline, constraints, variables, sensitivity, relaxation_bound, multistart, graph, answers, scenarios)` ist bereits vordefiniert (sie gibt das Ergebnis lesbar und maschinenlesbar aus). Definiere sie NICHT selbst und importiere nichts dafür.
|
||||
- Schreibweise: Bezeichner, `DATA`-Schlüssel, Restriktionsnamen und Kommentare dürfen Umlaute umschreiben (`Kapazitaet_M1`) – das wird nicht beanstandet. **Lesertexte** dagegen erscheinen im Report und stehen in echtem Deutsch mit ä, ö, ü, ß: `headline`, `answers`, Tabellen (`title`, `columns`, Textzellen, `note`), `scenarios` (`name`, `description`) und `graph` (`node_meaning`, `arc_meaning`). Die Datei ist UTF-8. [→ repair_texts]
|
||||
- Rufe `report(...)` genau einmal auf, innerhalb von `main()`:
|
||||
- status: "optimal", "feasible", "infeasible", "unbounded" oder "error"
|
||||
- objective_value: Wert der Zielfunktion der Spezifikation (im ursprünglichen Sinn/Maßstab) als float, oder None
|
||||
|
|
@ -122,5 +123,4 @@ Ergebnisausgabe:
|
|||
3. "Bindende Restriktionen": welche Grenzen die Lösung ausreizt, mit Spalten ["Restriktion", "Wert", "Grenze", "bindend"] und Werten aus der Lösung (z. B. "Höchstgewicht A02" | "30,00 %" | "30,00 %" | "ja"). Nur Tatsachen aus der Lösung, keine Bewertung; ohne objective_column.
|
||||
Zahlen in der objective_column immer im Maßstab von objective_value (nicht in Prozent umrechnen); Datenspalten dagegen in lesbaren Einheiten als Text ("1,63 %", "0,74 %", "36 h").
|
||||
- Weitere print-Ausgaben sind erlaubt, aber nicht nötig.
|
||||
- Alle Texte auf Deutsch mit echten Umlauten (ä, ö, ü, ß), nie 'ae'/'oe'/'ue'; die Dateien sind UTF-8. [→ check_text_quality]
|
||||
- Liefere im Feld code nur den reinen Python-Code ohne Markdown-Codeblock.
|
||||
|
|
|
|||
Loading…
Reference in a new issue