Die App, die zu viel versprach
Eine Lern-App wirbt: „Stellen Sie jede Frage und erhalten Sie die richtige Antwort.“ Ein Student vertraut ihr am Abend vor der Klausur. Sie nennt ein falsches Datum, und er lernt es.
Die App ist nicht kaputt. Sie hat mehr versprochen, als sie kann. Diese Lektion handelt von den Worten und Bildschirmen, die festlegen, was eine Person erwartet.
Am Ende dieser Lektion
Notiz
Ich kann einer Person sagen, was eine Funktion kann und was nicht, bevor sie sich darauf verlässt.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Erwartung | was eine Person von einer Funktion annimmt | |
| Behauptung | eine Aussage darüber, was die Funktion leistet | immer richtig |
| Grenze | etwas, das die Funktion nicht kann | |
| Einsatzbereich | die Aufgaben, für die eine Funktion gebaut ist | |
| Fehlerbeispiel | ein echter Fall, in dem sie danebenliegt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Sagen Sie, wofür sie ist und wofür nicht
Ob eine Person einer Funktion traut, entscheidet sich in den ersten Sekunden. Geben Sie ihr drei kurze Dinge: wofür die Funktion da ist, wofür nicht und ein Beispiel, in dem sie scheitert.
Das Fehlerbeispiel lassen Teams am häufigsten weg. Es ist aber das, woran sich Menschen erinnern.
Ein guter Kurztext für ein Notizwerkzeug
| Teil | Beispielworte |
|---|---|
| Wofür | Macht aus Ihren Notizen eine kurze Zusammenfassung |
| Wofür nicht | Fakten prüfen oder Auskünfte zu Gesundheit und Recht |
| Scheitert, wenn | Ihre Notizen für ein Ereignis zwei Daten nennen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Manche Behauptungen kann man nie belegen
Eine Behauptung, die ein einziger falscher Treffer widerlegt, ist nicht zu belegen. Wörter wie immer, nie falsch, garantiert und 100 % sind die üblichen. Auch jede Frage gehört dazu, denn niemand kann jede Frage testen.
Ersetzen Sie sie durch etwas Zählbares, zum Beispiel „richtig bei 9 von 10 Testfragen“. Modul 68 zeigt, wie man das misst.
Ein häufiger Fehler
Warnung
Viele glauben, ein kleiner Hinweis „kann falsch sein“ am Seitenende genüge. Den liest niemand, er setzt also keine Erwartung. Sagen Sie die Grenze direkt neben der Antwort, dort, wo die Person hinschaut, wenn sie sich darauf verlassen will.
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.
Behauptungsprüfer schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const VERBOTEN = [\"immer\", \"nie falsch\", \"garantiert\", \"100 %\", \"jede frage\"];' 'const TEXTE = [' ' { id: \"a\", text: \"Stellen Sie jede Frage und erhalten Sie eine garantierte Antwort.\" },' ' { id: \"b\", text: \"Entwirft eine Antwort aus Ihren Notizen. Sie kann falsch sein, bitte prüfen.\" },' ' { id: \"c\", text: \"Immer richtig, zu 100 % der Zeit.\" },' ' { id: \"d\", text: \"Fasst eine Seite zusammen. Nicht für medizinische Auskünfte.\" },' '];' > erwartung.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.
Behauptungsprüfer schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function behauptungen(text) {' ' const klein = text.toLowerCase();' ' return VERBOTEN.filter(function (v) { return klein.includes(v); });' '}' 'function hatGrenze(text) {' ' const klein = text.toLowerCase();' ' return klein.includes(\"kann falsch sein\") || klein.includes(\"nicht für\");' '}' >> erwartung.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.
Behauptungsprüfer schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' let durchgefallen = 0;' ' for (const t of TEXTE) {' ' const gefunden = behauptungen(t.text);' ' let urteil = \"Warnung\";' ' if (gefunden.length > 0) urteil = \"durchgefallen\";' ' else if (hatGrenze(t.text)) urteil = \"bestanden\";' ' if (urteil === \"durchgefallen\") durchgefallen++;' ' console.log(t.id + \" \" + urteil + \" \" + JSON.stringify(gefunden));' ' }' ' console.log(\"durchgefallen \" + durchgefallen + \" von \" + TEXTE.length);' ' const frage = \"Schreiben Sie eine kurze Zeile, was ein Notizen-Zusammenfasser nicht kann.\";' ' const r = await fragen([{ role: \"user\", content: frage }], \"Er kann keine Fakten prüfen, die nicht in Ihren Notizen stehen.\", 30);' ' console.log(\"Grenzzeile: \" + r.text);' '}' 'main();' >> erwartung.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.
Behauptungsprüfer ausführen
docker exec -w /home/node/project agent node erwartung.jsHier 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
| Zeile | Was sie zeigt |
|---|---|
| a durchgefallen ["garantiert","jede frage"] | Zwei Behauptungen, die niemand belegen kann |
| b bestanden [] | Keine Behauptung, und der Text nennt eine Grenze |
| c durchgefallen ["immer","100 %"] | Zwei weitere Behauptungen |
| d bestanden [] | Der Text sagt, wofür er nicht gedacht ist |
| durchgefallen 2 von 4 | Die Hälfte dieser Texte muss neu geschrieben werden |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.