Was zu tun ist, wenn eine KI-Funktion versagt
Ein Vorfall ist eine Zeit, in der eine Funktion Nutzern oder dem Betrieb schadet, etwa durch falsche Erstattungen oder eine veröffentlichte Adresse. Einen Vorfall zu führen heißt, ihn zu finden, zu begrenzen, zu beheben und daraus zu lernen.
Aufzeichnungen, sogenannte Spuren, helfen, einen Fehler zu finden. Diese Lektion nutzt solche Aufzeichnungen, um den Vorfall zu führen.
Am Ende dieser Lektion
Notiz
Ich kann einen KI-Vorfall führen und daraus lernen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Vorfall | eine Zeit, in der eine Funktion Nutzern schadet | |
| Zeitstrahl | die Ereignisse in Reihenfolge mit ihren Zeiten | |
| Schweregrad | wie ernst es ist, von 1 bis 3 | 2 |
| Eindämmen | den Schaden begrenzen, bevor die Ursache behoben ist | |
| Nachbesprechung | ein Treffen, um zu lernen, was es zuließ |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Beginnen Sie mit einem Zeitstrahl aus den Aufzeichnungen
Bringen Sie jedes Ereignis in die Reihenfolge der Zeit, auch wenn die Aufzeichnungen anders ankommen. Jede Zeile sagt, wann, wer und was.
Rechnen Sie dann zwei Zahlen aus. Die Zeit bis zur Entdeckung ist der Abstand vom Start bis zum ersten Zeichen. Die Zeit bis zur Behebung ist der Abstand vom Start bis zur Lösung.
Durchgerechnetes Beispiel: ein falscher Erstattungs-Prompt
| Minute | Wer | Ereignis | Was es ergibt |
|---|---|---|---|
| 0 | Freigabe | Neuer Prompt geht live | Der Start |
| 25 | Support | Erste Kundenmeldung | Zeit bis zur Entdeckung ist 25 |
| 31 | Bereitschaft | Vorfall ausgerufen | Die Arbeit beginnt |
| 40 | Bereitschaft | Alter Prompt wiederhergestellt | Der Schaden endet |
| 52 | Monitoring | Erstattungen wieder bei null | Zeit bis zur Behebung ist 52 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Der Schweregrad bestimmt, wer was tut
Schreiben Sie die Regel zum Schweregrad vor einem Vorfall. Schweregrad 1 heißt private Daten gezeigt oder die Hälfte der Nutzer oder mehr. Schweregrad 2 heißt zehn Prozent oder mehr. Alles darunter ist 3.
Jeder Schweregrad hat eine kurze Liste von Maßnahmen, und jede Maßnahme hat eine Rolle: Leitung, Behebung oder Kommunikation. Rollen verhindern, dass alle dasselbe tun.
Durchgerechnetes Beispiel: Schweregrad und Maßnahmen
| Schweregrad | Wann | Maßnahmen |
|---|---|---|
| 1 | Private Daten oder 50 Prozent und mehr | Verantwortliche rufen, zurückrollen, Nutzer informieren, Nachbesprechung halten |
| 2 | 10 bis 49 Prozent | Zurückrollen, Team informieren, Nachbesprechung halten |
| 3 | Unter 10 Prozent | Im Protokoll vermerken |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele denken, eine Nachbesprechung solle herausfinden, wer den Fehler gemacht hat. Dann verstecken Menschen beim nächsten Mal etwas. Fragen Sie, was im System den Fehler durchließ: kein Canary, kein Alarm, eine Regel, die niemand prüfte. Schreiben Sie Rollen in die Nachbesprechung und beschuldigen Sie nie eine Person.
Die Modellhilfe 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.
Die Modellhilfe 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.
Das Vorfallskript schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const ereignisse = [' ' { zeit: 31, wer: \"Bereitschaft\", art: \"erklaert\", was: \"Vorfall ausgerufen\" },' ' { zeit: 0, wer: \"Freigabe\", art: \"start\", was: \"neuer Prompt geht live\" },' ' { zeit: 52, wer: \"Monitoring\", art: \"behoben\", was: \"falsche Erstattungen wieder bei null\" },' ' { zeit: 25, wer: \"Support\", art: \"entdeckt\", was: \"erste Kundenmeldung\" },' ' { zeit: 40, wer: \"Bereitschaft\", art: \"gemildert\", was: \"alter Prompt wiederhergestellt\" },' '];' > vorfall.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 Vorfallskript schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function erste(art) { return ereignisse.filter(function (e) { return e.art === art; })[0].zeit; }' 'function schweregrad(prozent, privat) {' ' if (privat || prozent >= 50) return 1;' ' return prozent >= 10 ? 2 : 3;' '}' 'const sortiert = ereignisse.slice().sort(function (a, b) { return a.zeit - b.zeit; });' >> vorfall.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 Vorfallskript schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' sortiert.forEach(function (e) { console.log(\"Minute \" + e.zeit + \" \" + e.wer + \": \" + e.was); });' ' console.log(\"Zeit bis zur Entdeckung: \" + (erste(\"entdeckt\") - erste(\"start\")) + \" Minuten\");' ' console.log(\"Zeit bis zur Behebung: \" + (erste(\"behoben\") - erste(\"start\")) + \" Minuten\");' ' console.log(\"Schweregrad: \" + schweregrad(18, false));' ' const f = \"Schreiben Sie in einem kurzen Satz, warum eine Nachbesprechung Rollen nennt und keine Personen.\";' ' const probe = \"Wer beschuldigt wird, versteckt Fehler, und die Nachbesprechung soll finden, was das System zuließ.\";' ' const antwort = await fragen([{ role: \"user\", content: f }], probe, 60);' ' console.log(\"Das Modell sagte: \" + antwort.text);' '}' 'main();' >> vorfall.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.
Den Vorfallbericht ausführen
docker exec -w /home/node/project agent node vorfall.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 ausgibt
| Zeile | Was sie zeigt |
|---|---|
| Minute 0 Freigabe: neuer Prompt geht live | Fünf Ereignisse, nach Minute sortiert |
| Zeit bis zur Entdeckung: 25 Minuten | Erste Meldung minus Start |
| Zeit bis zur Behebung: 52 Minuten | Behoben minus Start |
| Schweregrad: 2 | Bei 18 Prozent Betroffenen, ohne private Daten |
| Das Modell sagte: ... | Ein Satz aus dem Labor. Eine Aufgezeichnete Probe, wenn kein Modell antwortet |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.