Schritt für Schritt verlangt zuerst die Rechnung
Schritt-für-Schritt-Prompting heißt, ein Modell zu bitten, vor der Antwort seine Rechnung zu schreiben. Bei einer Summe oder einem Plan können die Schritte die Antwort eher richtig machen.
Schritte kosten Worte, und Worte kosten Geld und Zeit. Die Kunst ist also, zu wissen, wann man sie verlangt, und die Antwort dann zu prüfen.
Am Ende dieser Lektion
Notiz
Ich kann Schritte verlangen, wenn sie helfen, und nicht, wenn sie nicht helfen.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Schritt | ein kleines Stück Rechnung |
| Rechenweg | die Schritte, die zu einer Antwort führen |
| Antwortzeile | die letzte Zeile, die nur das Ergebnis enthält |
| Kontrolle | ein Test, ob die Antwort stimmt |
| Kosten | die Token und die Zeit, die eine Antwort braucht |
| Aufgezeichnet | früher gespeichert und nicht jetzt erzeugt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Warum können Schritte helfen?
Ein Modell schreibt ein Textstück nach dem anderen, und jedes Stück kann nutzen, was schon dasteht. Steht die Rechnung auf der Seite, kann der nächste Schritt sie verwenden. Die 30 ist über 2, dann 6, dann 30 leichter zu erreichen.
Das hilft bei Summen, Plänen und Regeln mit mehreren Teilen. Bei einer einfachen Nachschlagefrage, etwa der Hauptstadt eines Landes, hilft es kaum.
Wann Sie Schritte verlangen
| Frage | Schritte? | Warum |
|---|---|---|
| Gesamtkosten von 15 Busfahrten zu 2 Euro | Ja | Zwei verbundene Summen |
| Welche dieser Regeln hat die Nutzerin verletzt? | Ja | Mehrere Teile zu prüfen |
| Formulieren Sie diese Zeile höflicher | Nein | Ein Zug, nichts zu rechnen |
| Ist dieser Kommentar gut oder schlecht? | Nein | Eine Bewertung ist die ganze Antwort |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Modell-Helfer schreiben, Teil 1
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.
Modell-Helfer schreiben, Teil 2
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.
Schritt-Zerleger schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const FRAGE = \"Eine Busfahrt kostet 2 Euro. Sam fährt an 5 Tagen je 3 Mal. Wie viel kostet das insgesamt?\";' 'const AUFGEZEICHNET = \"Schritt 1: Eine Fahrt kostet 2 Euro.\nSchritt 2: 3 Fahrten am Tag kosten 6 Euro.\nSchritt 3: 5 Tage kosten 30 Euro.\nAntwort: 30 Euro\";' > schritte3.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.
Schritt-Zerleger schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function zerlegen(antwort) {' ' const schritte = [];' ' let ergebnis = \"\";' ' for (const zeile of antwort.split(\"\n\")) {' ' if (zeile.startsWith(\"Schritt \")) schritte.push(zeile.slice(zeile.indexOf(\":\") + 1).trim());' ' if (zeile.startsWith(\"Antwort:\")) ergebnis = zeile.slice(8).trim();' ' }' ' return { schritte: schritte, antwort: ergebnis };' '}' 'function zeigen(name, antwort) {' ' const r = zerlegen(antwort);' ' console.log(name + \": \" + r.schritte.length + \" Schritte, Antwort \" + (r.antwort || \"keine\"));' '}' >> schritte3.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.
Schritt-Zerleger schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' zeigen(\"aufgezeichnet\", AUFGEZEICHNET);' ' const form = \" Arbeiten Sie in kurzen Schritten, die mit Schritt 1: beginnen, und so weiter. Enden Sie mit einer Zeile, die mit Antwort: beginnt.\";' ' const antwort = await fragen([{ role: \"user\", content: FRAGE + form }], AUFGEZEICHNET, 150);' ' zeigen(\"Modell\", antwort.text);' '}' 'main();' >> schritte3.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.
Ausführen und eine Antwort zerlegen
docker exec -w /home/node/project agent node schritte3.jsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was der Run druckt
Die erste Zeile zerlegt eine aufgezeichnete Antwort: 3 Schritte, Antwort 30 Euro. Die zweite Zeile tut dasselbe für das Labor-Modell. Ohne Modell druckt sie eine Aufgezeichnete Probe und gleicht der ersten.
Ein Modell hält Ihr Format vielleicht nicht ein. Steht in seiner Zeile Antwort keine, hat es keine Zeile mit Antwort: geschrieben. Ihr Code muss damit rechnen.
Ein häufiger Fehler
Warnung
Viele glauben, die Antwort stimme, wenn die Schritte vernünftig aussehen. Eine Antwort kann saubere Schritte zeigen und dann ein anderes Ergebnis nennen. Vergleichen Sie die Antwortzeile immer mit dem letzten Schritt oder mit einem Wert, den Sie kennen.