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

Personenbezogene Daten sicher schwärzen

Nach dieser Lektion: Ich kann personenbezogene Daten entfernen und sagen, was dabei kaputtgeht.

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

Daten entfernen und was dabei kaputtgeht

Schwärzen heißt, personenbezogene Daten aus einer Nachricht zu entfernen, bevor sie weitergeht. Eine Support-App kann eine Telefonnummer schwärzen, bevor sie ein Modell um eine Antwort bittet.

Der Haken: Die Antwort braucht diese Nummer vielleicht. Wie Sie schwärzen, entscheidet, ob Sie sie zurückholen können.

Am Ende dieser Lektion

Notiz

Ich kann personenbezogene Daten entfernen und sagen, was dabei kaputtgeht.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Schwärzenpersonenbezogene Daten aus einem Text entfernen
Maskeein Wert, ersetzt durch seine Art[EMAIL]
Platzhalterein Ersatz, der sich zurücktauschen lässt[EMAIL_1]
Zuordnungdie private Liste, welcher Platzhalter welcher Wert ist
Zurückholendie echten Werte wieder einsetzen

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

Es gibt drei Wege zu schwärzen

Eine Maske ersetzt einen Wert durch seine Art, zum Beispiel [EMAIL]. Zwei verschiedene Adressen werden beide zu [EMAIL], Sie können sie also weder unterscheiden noch zurückholen.

Ein Platzhalter ist nummeriert, zum Beispiel [EMAIL_1]. Sie führen eine private Zuordnung von Platzhaltern und Werten und senden sie nie. Einen Wert zu vernichten heißt: Er ist für immer weg, und es gibt keine Zuordnung.

Durchgerechnetes Beispiel: eine Adresse, drei Wege

WegWas das Modell siehtKann die Antwort sie nennen?Können Sie sie zurückholen?
Maske[EMAIL]NeinNein
Platzhalter[EMAIL_1]Ja, als PlatzhalterJa, aus Ihrer Zuordnung
VernichtenNichtsNeinNein, mit Absicht

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

Schwärzen kann die Antwort kaputtmachen

Sieht das Modell die Adresse nie, kann es sie nicht schreiben. Eine Antwort wie „Wir schreiben an Ihre Adresse“ ist in Ordnung. Eine Antwort, die die Adresse wiederholen muss, braucht einen Platzhalter.

Platzhalter bringen ein neues Risiko. Das Modell kann einen weglassen oder verändern. Holen Sie nur die Platzhalter zurück, die in der Antwort stehen, und prüfen Sie, dass keiner übrig bleibt.

Ein häufiger Fehler

Warnung

Viele denken, Platzhalter machten Daten anonym. Das stimmt nicht. Sie halten noch die Zuordnung und können die Platzhalter wieder zu Menschen machen. In den Worten der Datenschutz-Grundverordnung ist das Pseudonymisierung, und die Daten bleiben personenbezogen. Das ist eine einfache Zusammenfassung, keine Rechtsberatung.

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\";' '// 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

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.

Das Schwärzprogramm schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const text = \"Bitte schreiben Sie an [email protected] oder rufen Sie 01234567890 an. Danke, Anna.\";' 'const zaehler = {};' 'const zuordnung = {};' 'function bereinigen(wort) {' '  let w = wort;' '  while (w.length > 0 && \".,;:?()\".includes(w[w.length - 1])) w = w.slice(0, -1);' '  return w;' '}' > redact.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 Schwärzprogramm schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function artVon(w) {' '  const at = w.indexOf(\"@\");' '  if (at > 0 && w.indexOf(\".\", at) > at + 1) return \"EMAIL\";' '  if (w.length === 11 && w.startsWith(\"01\") && Number.isInteger(Number(w))) return \"TELEFON\";' '  return \"\";' '}' 'function maskieren(t) {' '  return t.split(\" \").map(function (wort) {' '    const w = bereinigen(wort);' '    return artVon(w).length === 0 ? wort : \"[\" + artVon(w) + \"]\" + wort.slice(w.length);' '  }).join(\" \");' '}' >> redact.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 Schwärzprogramm schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function tokenisieren(t) {' '  const bekannt = {};' '  return t.split(\" \").map(function (wort) {' '    const w = bereinigen(wort);' '    const art = artVon(w);' '    if (art.length === 0) return wort;' '    if (bekannt[w] === undefined) {' '      zaehler[art] = (zaehler[art] || 0) + 1;' '      bekannt[w] = \"[\" + art + \"_\" + zaehler[art] + \"]\";' '      zuordnung[bekannt[w]] = w;' '    }' '    return bekannt[w] + wort.slice(w.length);' '  }).join(\" \");' '}' >> redact.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 Schwärzprogramm schreiben, Teil 4

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function zurueckholen(t) {' '  let aus = t;' '  Object.keys(zuordnung).forEach(function (k) { aus = aus.split(k).join(zuordnung[k]); });' '  return aus;' '}' 'async function main() {' '  const sicher = tokenisieren(text);' '  console.log(\"maskiert:        \" + maskieren(text));' '  console.log(\"mit Platzhaltern: \" + sicher);' '  console.log(\"Zuordnung bleibt hier: \" + JSON.stringify(zuordnung));' '  const q = \"Schreiben Sie eine kurze Antwort auf diese Nachricht. Übernehmen Sie jeden Platzhalter in eckigen Klammern genau. \" + sicher;' '  const probe = \"Vielen Dank. Wir schreiben noch heute an [EMAIL_1] und rufen [TELEFON_1] an.\";' '  const antwort = await fragen([{ role: \"user\", content: q }], probe, 80);' '  console.log(\"Antwort:         \" + antwort.text);' '  console.log(\"zurückgeholt:    \" + zurueckholen(antwort.text));' '}' 'main();' >> redact.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 Schwärzprogramm ausführen

Befehl
docker exec -w /home/node/project agent node redact.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.

Was der Run ausgibt

ZeileWas sie zeigt
maskiert: ... [EMAIL] ... [TELEFON] ...Nur die Arten, nichts lässt sich zurückholen
mit Platzhaltern: ... [EMAIL_1] ... [TELEFON_1] ...Nummerierte Ersatzwerte
Zuordnung bleibt hier: {...}Die private Liste, nie gesendet
Antwort: ...Eine Antwort mit Platzhaltern. Aufgezeichnet, wenn kein Modell antwortet
zurückgeholt: ...Die Platzhalter, zurückgetauscht gegen die erfundenen Werte

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.