Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Ein Modell als Richter einsetzen

Nach dieser Lektion: Ich kann ein Modell eine Antwort bewerten lassen und die Bewertung nachprüfbar halten.

Lektion, 65 Min.7 BefehleLab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Bewerten, was Regeln nicht erreichen

Ein Modell als Richter ist ein zweiter Aufruf, der die Ausgabe des ersten nach einem Raster bewertet. Das lohnt sich, weil eine Regel ein Etikett prüfen kann, aber nicht, ob ein Satz höflich oder hilfreich ist.

Der Satz, den der Sortierer dem Kunden schickt, ist der Fall: Keine Regel sagt, ob er freundlich ist.

Am Ende dieser Lektion

Notiz

Ich kann ein Modell eine Antwort bewerten lassen und die Bewertung nachprüfbar halten.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Richterein Modellaufruf, der eine andere Antwort bewertet
Bewertungsrasterdie feste Skala und was jede Stufe bedeutet
Ausgabeformatdie genaue Form, in der der Richter antworten mussPunkte und Grund
Prüfeneine Antwort per Code gegen das Format kontrollieren
Gespeicherte Bewertungeine Bewertung, abgelegt mit Antwort und Grund

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Richter braucht ein Raster mit Stufen

Fragen Sie einen Richter nicht „ist das gut?“. Geben Sie ein Bewertungsraster: eine kurze Skala, auf der jede Stufe sagt, was sie bedeutet. Drei Stufen genügen für den Anfang.

Sagen Sie, worauf er achten und was er übergehen soll. Eine vage Skala gibt vage Bewertungen.

Ausgearbeitetes Beispiel: ein Raster mit drei Stufen

PunkteBedeutung
3Klar, höflich und ohne Geldversprechen
2Akzeptabel, aber vage oder kühl
1Nutzlos, unhöflich oder verspricht Geld

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Format festlegen und jede Bewertung prüfen

Sagen Sie dem Richter, er solle in einer einzigen Form antworten, hier JSON mit Punkten und einem kurzen Grund. Dann prüfen Sie per Code. Es lässt sich als JSON lesen, die Punkte sind eine ganze Zahl von 1 bis 3, und der Grund ist da.

Eine Bewertung, die die Prüfung nicht besteht, ist nicht bewertet. Zählen Sie sie. Raten Sie nie, was der Richter meinte.

Die Bewertung neben dem Bewerteten ablegen

Legen Sie jede gespeicherte Bewertung mit Antwort, Grund und verwendetem Raster ab. Eine nackte Zahl lässt sich später nicht mehr erörtern.

Nimmt der Dienst eine Temperatur an, setzen Sie sie niedrig, damit der Richter weniger schwankt. Er schwankt trotzdem, und deshalb prüft ihn die nächste Lektion an Menschen.

Die Modellhilfe schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const basis = process.env.AI_URL || \"http://ai:4000\";' 'async function fragen(nachrichten, probe, max) {' '  try {' '    const res = await fetch(basis + \"/v1/chat/completions\", {' '      method: \"POST\",' '      headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' '      body: JSON.stringify({ model: \"lab\", messages: nachrichten, max_tokens: max || 200 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"Status \" + res.status);' '    return (await res.json()).choices[0].message.content;' > model.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Modellhilfe schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  } catch (fehler) {' '    console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' '    const liste = [].concat(probe);' '    const runde = nachrichten.filter(function (m) { return m.role === \"assistant\"; }).length;' '    return liste[Math.min(runde, liste.length - 1)];' '  }' '}' 'module.exports = { fragen };' >> model.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Richterskript schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const raster = \"Bewerten Sie die Antwort, die ein Shop an einen Kunden schickte, mit 1 bis 3 Punkten. 3: klar, höflich und ohne Geldversprechen. 2: akzeptabel, aber vage oder kühl. 1: nutzlos, unhöflich oder verspricht Geld. Antworten Sie nur mit JSON mit zwei Schlüsseln: punkte (1, 2 oder 3) und grund (unter 15 Wörtern).\";' > richter4.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Richterskript schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function pruefen(text) {' '  let daten = null;' '  try { daten = JSON.parse(text); } catch (fehler) { return { ok: false, warum: \"kein JSON\" }; }' '  if (daten === null || Array.isArray(daten) || typeof daten === \"string\" || typeof daten === \"number\") return { ok: false, warum: \"kein Objekt\" };' '  if (Number.isInteger(daten.punkte) === false || daten.punkte < 1 || daten.punkte > 3) return { ok: false, warum: \"Punkte ungültig\" };' '  const grund = typeof daten.grund === \"string\" ? daten.grund.trim() : \"\";' '  if (grund.length === 0 || grund.length > 100) return { ok: false, warum: \"Grund ungültig\" };' '  return { ok: true, punkte: daten.punkte, grund: grund };' '}' >> richter4.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Richterskript schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function urteil(punkte, grund) {' '  return JSON.stringify({ punkte: punkte, grund: grund });' '}' 'const aufgezeichnet = [' '  urteil(2, \"Höflich, aber vage.\"),' '  urteil(1, \"Verspricht Geld.\"),' '  \"Ich würde eine 3 geben\",' '  urteil(5, \"Unhöflich.\"),' '  urteil(3, \"Klar und höflich, ohne Versprechen.\"),' '];' 'let summe = 0;' 'let gueltig = 0;' 'aufgezeichnet.forEach(function (text, stelle) {' '  const ergebnis = pruefen(text);' '  if (ergebnis.ok) { summe = summe + ergebnis.punkte; gueltig = gueltig + 1; }' '  console.log(\"Aufgezeichnet \" + (stelle + 1) + \": \" + (ergebnis.ok ? \"Punkte \" + ergebnis.punkte + \" (\" + ergebnis.grund + \")\" : \"ungültig, \" + ergebnis.warum));' '});' 'console.log(\"Gültig: \" + gueltig + \" von \" + aufgezeichnet.length + \". Mittel der gültigen: \" + (summe / gueltig).toFixed(1).replace(\".\", \",\"));' >> richter4.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Das Richterskript schreiben, Teil 4

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  const probe = urteil(1, \"Verspricht Geld.\");' '  const text = await fragen([{ role: \"user\", content: raster + \"\n\nZu bewertende Antwort: Ihre Erstattung wurde genehmigt.\" }], probe, 80);' '  const ergebnis = pruefen(text);' '  console.log(\"Der Richter sagte: \" + text);' '  console.log(\"Richter: \" + (ergebnis.ok ? \"Punkte \" + ergebnis.punkte : \"ungültig, \" + ergebnis.warum));' '}' 'main();' >> richter4.js"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Fünf Bewertungen und eine echte prüfen

Befehl
docker exec -w /home/node/project agent node richter4.js

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine mögliche Ausgabe

ZeileWas sie zeigt
Aufgezeichnet 1 und 2Gültige Punkte 2 und 1, je mit Grund
Aufgezeichnet 3Ungültig, kein JSON
Aufgezeichnet 4Ungültig, Punkte ungültig: 5 liegt außerhalb der Skala
Aufgezeichnet 5Gültige Punkte 3
Zeile Gültig3 von 5, Mittel 2,0
RichterPunkte und Grund oder ungültig. Es kann bei jedem Lauf anders sein

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Probieren Sie es

Tipp

Ersetzen Sie in richter4.js in main die zu bewertende Antwort durch Wir sehen uns das an. Starten Sie erneut und lesen Sie Punkte und Grund.

Ein häufiger Fehler

Warnung

Viele vertrauen einem Richter, weil seine Gründe sicher klingen. Ein flüssiger Grund ist kein Beweis. Der Richter ist ein Modell und kann sich selbstsicher irren. Prüfen Sie sein Format per Code und seine Bewertungen an denen von Menschen.

Über dieses Lab und seinen Quellcode: Lab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.