Stanislaus HeesBuchbegleitung

LESEN · VERSTEHEN · WEITERDENKEN

KI ins eigene Produkt · Seite 82

Inhalt

quantize(Decimal('0.01')) rundet auf Hundertstel. Im unveränderten Standardkontext von Decimal trifft dieser Versuch aber noch nicht das verlangte Ergebnis. Der folgende Tool Call fordert die Prüfung an:

{
  "type": "function_call",
  "name": "run_command",
  "call_id": "call_test_01",
  "arguments": "{\"command\":\"python tests/
test_prices.py\"}"
}

Die Runtime führt den freigegebenen Aufruf im Projekt aus. Zurück kommt:

stderr:
FAIL: expected 12.35, got 12.34
exit_code: 1

Die normale Ausgabe stdout ist leer. Wieder gelangt die Rückgabe über function_call_output und die passende call_id an das Modell. Der Fehler ist nun Teil des Kontexts: Erwartet war 12.35, berechnet wurde 12.34.

Hier passiert etwas, das ich jedes Mal wieder schön finde: Der Fehler sagt dem Modell auf den Cent genau, was nicht stimmt. Das Modell kann daraus eine Korrektur ableiten. Python rundet Decimal-Werte ohne weitere Angabe nach der Regel ROUND_HALF_EVEN: Bei genau einer halben Einheit geht es zur geraden Ziffer, aus 12,345 wird 12,34. Für den Beispielwert passt stattdessen ROUND_HALF_UP, das bei genau einer halben