Zum Inhalt springen
kenjtecJournal
Journal durchsuchen

Chatantwort rein, brauchbares JSON raus: Der Trick für KI in Webapps

JSON macht eine KI-Antwort lesbar für Programme. Ein kleiner Vertrag mit unbekanntem Wert und sicherer Browseranzeige zeigt, welche Arbeit danach noch nötig ist.

Lena sortiert lose Teile in einen Sortierkasten; ein Fach bleibt markiert leer. KI-Illustration.

Der Text ist sinnvoll. Die Anwendung kann ihn trotzdem nicht übernehmen, weil die Menge einmal „sechs“, einmal 6 und einmal als Satz im Kommentar erscheint. Strukturierte Ausgaben geben dieser Übergabe einen Vertrag. Der spannendere Teil beginnt dort, wo korrektes JSON fachlich falsch sein kann.

Mistrals Custom Structured Outputs verwenden dafür ein vorgegebenes JSON-Schema. Felder und Datentypen werden ausdrücklich beschrieben. Das ordnet die Schnittstelle zwischen Modell und Anwendung; es ersetzt keine Prüfung, ob ein Wert im Ausgangstext tatsächlich belegt ist.

Unbekannt ist ein eigener Zustand

Unsere künstliche Notiz nennt Ordner, aber keine Menge. Die Ausgabe soll diesen fehlenden Wert erhalten. Wenn du stattdessen eine Standardmenge einsetzt, wirkt der Datensatz vollständiger und verliert dabei eine wichtige Information.

Ein kleines, herstellerunabhängiges Schema kann so aussehen. Welche Schema-Schlüssel eine konkrete Schnittstelle unterstützt, ist vor der Verwendung an deren aktueller Anleitung zu prüfen:

{
  "type": "object",
  "required": ["artikel", "menge", "klaerung"],
  "additionalProperties": false,
  "properties": {
    "artikel": {"type": "string"},
    "menge": {"type": ["integer", "null"], "minimum": 0},
    "klaerung": {"type": "string"}
  }
}

required verlangt, dass das Feld vorhanden ist. null erlaubt trotzdem einen ausdrücklich unbekannten Wert. Die Untergrenze betrifft numerische Mengen. Ob eine Menge für den tatsächlichen Bestellvorgang zulässig ist, kann weitere Fachregeln benötigen. Das Schema beantwortet vor allem, welche Form die nachfolgende Anwendung erwarten darf.

Eine Vorschau ohne Modell und ohne Bestellung

Du kannst die Verarbeitung bereits mit festen Beispieldaten untersuchen. Speichere den folgenden eigenen HTML-Baustein als lokale Beispieldatei und öffne ihn im Browser. Er zeigt einen Datensatz an, führt aber keine API-Anfrage aus und speichert keine Bestellung.

<!doctype html>
<meta charset="utf-8">
<p id="ausgabe"></p>
<script>
const daten = { artikel: "Ordner", menge: null, klaerung: "Menge fehlt" };
function pruefe(d) {
  if (!d || typeof d !== "object" || Array.isArray(d)) throw Error("Objekt erwartet");
  const keys = Object.keys(d).sort().join(",");
  if (keys !== "artikel,klaerung,menge") throw Error("Felder pruefen");
  if (typeof d.artikel !== "string" || typeof d.klaerung !== "string")
    throw Error("Text erwartet");
  if (d.menge !== null && (!Number.isInteger(d.menge) || d.menge < 0))
    throw Error("Menge pruefen");
}
pruefe(daten);
const menge = daten.menge === null ? "noch unbekannt" : String(daten.menge);
document.querySelector("#ausgabe").textContent =
  daten.artikel + ": " + menge + ". " + daten.klaerung;
</script>

Die Funktion ist ein begrenzter eigener Validator für genau dieses Lehrschema, keine vollständige JSON-Schema-Bibliothek. Ändere nacheinander die Menge zu 6, zu -1 und zur Zeichenfolge „sechs“. Ergänze anschließend ein unerwartetes Feld. Beobachte jeweils Anzeige oder Fehlermeldung in den Entwicklerwerkzeugen.

Damit prüfst du einen Übergang, bevor ein Modell beteiligt ist. Du weißt, wie die Anwendung mit bekannten, unbekannten und unzulässigen Werten umgeht. Eine spätere Modellantwort kann erst nach denselben Regeln in diesen Baustein gelangen.

Format und Bedeutung unabhängig prüfen

Eine formal erlaubte 6 kann weiterhin falsch sein, wenn die Notiz vier nennt. Ergänze deshalb in einer realen Anwendung bei Bedarf einen Quellenbezug und prüfe wichtige Werte gegen die Eingabe. Bei widersprüchlichen Notizen sollte der Ablauf einen Klärungspunkt liefern, statt eine beliebige Zahl zu wählen.

Die Ausgabe verwendet textContent. Fremder Text wird so als Text eingesetzt, statt ungeprüft als HTML interpretiert zu werden. Anbieter-Schlüssel gehören nicht in einen solchen Browserbaustein. Ein Modellaufruf wäre ein gesonderter Verarbeitungsschritt mit eigenem Zugang und eigener Fehlerbehandlung.

Den Baustein an einer Website erklären

Wenn du genau diese kleine Anzeige in einer vorhandenen Website zeigen möchtest, ist eigener HTML-/JavaScript-Code auch im Entwicklermodus des KENJTEC WebSiteBuilder ai ein möglicher Einsatzort. Übernommen wird der geprüfte Baustein von Hand; Code-Vorschau und eigene Codeversionen unterstützen die anschließende Sichtung. Daraus entsteht keine native Verbindung zu Mistral.

Der eigentliche Erkenntnisgewinn bleibt unabhängig vom Einsatzort: Modellformat, eigener Validator, sichere Anzeige und fachliche Entscheidung haben unterschiedliche Aufgaben. Wer sie trennt, kann eine KI-Ausgabe gezielt übernehmen, ohne aus einer plausiblen Antwort heimlich schon eine Aktion zu machen.

Quellen und Stand

Quellenstand: 25. Oktober 2026. Custom Structured Outputs.

Hamburg ist unser Ausgangspunkt.

Das Nützliche reist mit dir.

KI-Praxis aus Hamburg, international erklärt.

Merkliste