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

Anfragen per Routing auf Modelle verteilen

Nach dieser Lektion: Ich kann jede Anfrage an das günstigste ausreichende Modell weiterleiten und die Wahl an aufgezeichneten Fällen prüfen.

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

Jede Anfrage an das günstigste passende Modell

Modelle zu routen heißt, für jede Anfrage das günstigste Modell zu wählen, das genügt. Das ist wichtig, weil das teuerste ein Vielfaches des kleinsten kostet und die meisten Anfragen es nicht brauchen.

Ein Support-Werkzeug ordnet Tickets zu, beantwortet kurze Fragen und entwirft lange Antworten. Zuordnen braucht nicht das Modell, das entwirft. Alles an ein großes Modell zu schicken, bezahlt eine Leistung, die fast keine Anfrage nutzt.

Am Ende dieser Lektion

Notiz

Ich kann jede Anfrage an das günstigste ausreichende Modell weiterleiten und die Wahl an aufgezeichneten Fällen prüfen.

Schlüsselwörter

BegriffWas er bedeutet
Routerdie Regel, die für eine Anfrage ein Modell wählt
Stufeeine Gruppe von Modellen nach Größe und Preis
Gut genugfür diese Aufgabe oft genug richtig
Aufgezeichneter Falleine Anfrage mit der Stufe, die eine Person gewählt hat
Abweichungein Fall, in dem Router und Person sich unterscheiden
Hülleder Code um einen Aufruf, der die Regeln hinzufügt

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

Ein Router ist eine einfache Regel

Beginnen Sie mit einer lesbaren Regel. Ein kurzer Text oder eine Zuordnungsaufgabe geht an die Stufe klein. Ein langer Text oder eine Schlussfolgerungsaufgabe geht an die Stufe gross. Der Rest geht an die Stufe mittel.

Eine Regel nach Größe und Aufgabe ist billig, sofort da und leicht zu erklären. Man kann auch ein kleines Modell wählen lassen, doch das fügt jeder Anfrage einen Aufruf hinzu. Probieren Sie also zuerst die Regel.

Durchgerechnetes Beispiel: die Regel an vier Anfragen

AnfrageAufgabeGrößeStufe
Ein Ticket zuordnenklassifizieren150 Zeichenklein
Eine Seite zusammenfassenzusammenfassen1500 Zeichenmittel
Eine Migration planenschlussfolgern900 Zeichengross
Einen langen Bericht zusammenfassenzusammenfassen5000 Zeichengross

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

Die Regel an Fällen prüfen

Ein Router spart Geld und kann Qualität kosten, also testen Sie ihn. Halten Sie aufgezeichnete Fälle bereit: eine Anfrage, ihre Größe und Aufgabe und die Stufe, die eine Person für nötig hält. Lassen Sie den Router darüber laufen. Listen Sie die Abweichungen auf und summieren Sie die Kosten.

Eine Abweichung ist nicht immer ein Fehler der Regel. Lesen Sie jede. Dann ändern Sie die Regel oder den Fall.

Ein häufiger Fehler

Warnung

Viele glauben, das billigste Modell sei immer die beste Ersparnis. Ein billiges Modell, das schlecht antwortet, kostet eine Wiederholung, eine Beschwerde oder eine verlorene Person. Gehen Sie nur dort eine Stufe tiefer, wo aufgezeichnete Fälle zeigen, dass die Antwort noch genügt.

Die Modell-Hilfe 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\";' '// Die Token einer Antwort oder null, wenn sie keine nennt.' 'function zaehlen(daten, name) {' '  return daten.usage && typeof daten.usage[name] === \"number\" ? daten.usage[name] : null;' '}' > 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 Modell-Hilfe schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '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 || 100 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"Status \" + res.status);' '    const d = await res.json();' '    return { text: d.choices[0].message.content, eingabe: zaehlen(d, \"prompt_tokens\"), ausgabe: zaehlen(d, \"completion_tokens\"), aufgezeichnet: false };' '  } catch (fehler) {' '    console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' '    return { text: probe, eingabe: null, ausgabe: null, aufgezeichnet: true };' '  }' '}' '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.

Die Router-Prüfung schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' '' '// Erfundene Preise: Euro je Million Token, also Token mal Preis = Mikro-Euro.' 'const PREIS = { klein: { eingabe: 1, ausgabe: 4 }, mittel: { eingabe: 3, ausgabe: 12 }, gross: { eingabe: 10, ausgabe: 40 } };' 'function weiterleiten(anfrage) {' '  if (anfrage.aufgabe === \"klassifizieren\" || anfrage.zeichen <= 200) return \"klein\";' '  if (anfrage.aufgabe === \"schlussfolgern\" || anfrage.zeichen > 2000) return \"gross\";' '  return \"mittel\";' '}' 'function kosten(stufe, f) { return f.eingabe * PREIS[stufe].eingabe + f.ausgabe * PREIS[stufe].ausgabe; }' > route6.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 Router-Prüfung schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Aufgezeichnete Fälle: was jede Anfrage ist und welche Stufe eine Prüferin für nötig hält.' 'const FAELLE = [' '  { id: 1, aufgabe: \"klassifizieren\", zeichen: 150, eingabe: 60, ausgabe: 5, erwartet: \"klein\" },' '  { id: 2, aufgabe: \"frage\", zeichen: 180, eingabe: 70, ausgabe: 40, erwartet: \"klein\" },' '  { id: 3, aufgabe: \"zusammenfassen\", zeichen: 1500, eingabe: 500, ausgabe: 150, erwartet: \"mittel\" },' '  { id: 4, aufgabe: \"schlussfolgern\", zeichen: 900, eingabe: 400, ausgabe: 600, erwartet: \"gross\" },' '];' >> route6.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 Router-Prüfung schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const WEITERE = [' '  { id: 5, aufgabe: \"zusammenfassen\", zeichen: 5000, eingabe: 1400, ausgabe: 300, erwartet: \"gross\" },' '  { id: 6, aufgabe: \"klassifizieren\", zeichen: 3000, eingabe: 800, ausgabe: 5, erwartet: \"klein\" },' '  { id: 7, aufgabe: \"frage\", zeichen: 700, eingabe: 250, ausgabe: 120, erwartet: \"mittel\" },' '  { id: 8, aufgabe: \"zusammenfassen\", zeichen: 190, eingabe: 80, ausgabe: 30, erwartet: \"mittel\" },' '];' >> route6.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 Router-Prüfung schreiben, Teil 4

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  const alle = FAELLE.concat(WEITERE);' '  let summe = 0, teuer = 0, abweichungen = [];' '  for (const f of alle) {' '    const stufe = weiterleiten(f);' '    summe = summe + kosten(stufe, f);' '    teuer = teuer + kosten(\"gross\", f);' '    if (stufe === f.erwartet) console.log(\"#\" + f.id + \" \" + f.aufgabe + \": \" + stufe + \" ok\");' '    else { abweichungen.push(f.id); console.log(\"#\" + f.id + \" \" + f.aufgabe + \": \" + stufe + \", erwartet \" + f.erwartet); }' '  }' '  console.log(\"Abweichungen: \" + abweichungen.length + \" von \" + alle.length + \", Fälle \" + abweichungen.join(\", \"));' '  console.log(\"Weitergeleitete Kosten: \" + summe + \". Alles auf gross: \" + teuer + \". Ersparnis: \" + (teuer - summe));' >> route6.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 Router-Prüfung schreiben, Teil 5

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  const r = await fragen([{ role: \"user\", content: \"Ordne zu: Abrechnung, Fehler oder anderes. Ich wurde zweimal belastet.\" }], \"Abrechnung\", 10);' '  console.log(\"Weitergeleitet an \" + weiterleiten(alle[0]) + \", Antwort: \" + r.text.slice(0, 40));' '}' 'main();' >> route6.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 Router-Prüfung ausführen

Befehl
docker exec -w /home/node/project agent node route6.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 Labor hat nur ein Modell

Im Labor antwortet ein einziges Modell, egal welche Stufe die Regel wählt, und die Plattform bestimmt es. Der Run zeigt also die Wahl und die Kosten, und der eine echte Aufruf zeigt nur, dass eine weitergeleitete Anfrage eine Antwort bekommt.

Die Preise und die acht Fälle sind erfunden und aufgezeichnet, daher geben alle Studierenden dieselben Zeilen aus.

Eine mögliche Ausgabe

ZeileWas sie zeigt
#1 klassifizieren: klein okRouter und Person sind einig
#8 zusammenfassen: klein, erwartet mittelEine Abweichung, die man liest und entscheidet
Abweichungen: 1 von 8, Fälle 8Die Anzahl und die Fallnummern
Weitergeleitete Kosten: 60820. Alles auf gross: 85600. Ersparnis: 24780Die Summe in Mikro-Euro
Weitergeleitet an klein, Antwort: ...Ein echter Aufruf. Die Worte ändern sich bei jedem Lauf

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

Ü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.