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 in einem Prompt finden

Nach dieser Lektion: Ich kann personenbezogene Daten in einem Prompt mit Regeln finden und sagen, was die Regeln übersehen.

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

Personenbezogene Daten finden, bevor sie gesendet werden

Personenbezogene Daten sind alle Angaben, mit denen sich ein lebender Mensch erkennen lässt. Ein Name, eine E-Mail-Adresse und eine Telefonnummer zählen dazu.

Eine App, die Nachrichten an ein Modell schickt, sendet sie vielleicht ungewollt mit. Was Sie nicht finden, können Sie nicht schützen. Deshalb kommt das Finden zuerst. Ein Prompt kann Ihren Rechner verlassen und lässt sich nicht zurückholen.

Am Ende dieser Lektion

Notiz

Ich kann personenbezogene Daten in einem Prompt mit Regeln finden und sagen, was die Regeln übersehen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Personenbezogene DatenAngaben, die auf einen lebenden Menschen zeigen
Regelein Test, den ein Text besteht oder nichtenthält ein @
Formwie eine Art von Wert geschrieben wird01234567890
FehlalarmText, den die Regel meldet, der aber nicht persönlich ist
Übersehenpersonenbezogene Daten, die keine Regel gemeldet hat

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

Regeln finden Daten, die eine Form haben

Manche personenbezogenen Daten werden immer gleich geschrieben. Eine E-Mail-Adresse hat ein At-Zeichen und einen Punkt. Eine Telefonnummer in diesem Kurs hat 11 Ziffern und beginnt mit 01.

Eine Regel prüft eine Form. Ein Suchprogramm teilt eine Nachricht in Wörter und prüft jedes Wort gegen jede Regel. Die Funde stehen in der Reihenfolge, in der die Wörter in der Nachricht vorkommen.

Durchgerechnetes Beispiel: vier Regeln

ArtRegelErfundenes Beispiel
emailEin At-Zeichen, später ein Punkt[email protected]
telefon11 Ziffern, beginnend mit 0101234567890
steuerid11 Ziffern, die erste ist nicht 012345678901
karte16 Ziffern4000000000000002

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

Regeln übersehen Dinge und schlagen falschen Alarm

Eine Regel kennt nur Formen. Ein Name hat keine Form, also findet ihn keine Regel. Eine Telefonnummer mit Leerzeichen wird zu drei Wörtern, und keines passt.

Ein Fehlalarm ist der umgekehrte Fehler. Eine Bestellnummer mit 16 Ziffern hat die Form einer Kartennummer, also meldet die Regel sie. Beide Fehler sind normal. Zählen Sie sie, dann wissen Sie, wie weit Sie den Regeln trauen können.

Durchgerechnetes Beispiel: Übersehen und Fehlalarm

Teil der NachrichtEin Mensch sagtDie Regeln sagenErgebnis
Bernd BeispielPersönlichNichts gefundenÜbersehen
0123 456 7890PersönlichNichts gefundenÜbersehen
4000000000000002 (eine Bestellnummer)Nicht persönlichKarteFehlalarm
[email protected]PersönlichE-MailRichtig

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

Ein häufiger Fehler

Warnung

Viele denken, eine leere Ausgabe heiße, die Nachricht sei sauber. Das stimmt nicht. Es heißt nur, dass keine Regel gepasst hat. Ein Name oder eine in Worten geschriebene Adresse hat keine Form. Sagen Sie „keine bekannte Form gefunden“ und nie „keine personenbezogenen Daten“.

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 Suchprogramm schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const nachrichten = [' '  \"Bitte mailen Sie [email protected] wegen der Erstattung.\",' '  \"Rufen Sie mich unter 01234567890 nach fünf an.\",' '  \"Meine Nummer ist 0123 456 7890, gern jederzeit.\",' '  \"Die Steuer-ID 12345678901 steht auf dem Formular.\",' '  \"Bestellung 4000000000000002 geht an Bernd Beispiel.\",' '];' 'const markiert = [[\"[email protected]\"], [\"01234567890\"], [\"0123 456 7890\"], [\"12345678901\"], [\"Bernd Beispiel\"]];' > finder.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 Suchprogramm schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function bereinigen(wort) {' '  let w = wort;' '  while (w.length > 0 && \".,;:?()\".includes(w[w.length - 1])) w = w.slice(0, -1);' '  return w;' '}' 'function ziffern(w, n) {' '  return w.length === n && w.split(\"\").every(function (c) { return c >= \"0\" && c <= \"9\"; });' '}' >> finder.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 Suchprogramm schreiben, Teil 3

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 (ziffern(w, 11) && w.startsWith(\"01\")) return \"telefon\";' '  if (ziffern(w, 11) && w[0] > \"0\") return \"steuerid\";' '  if (ziffern(w, 16)) return \"karte\";' '  return \"\";' '}' >> finder.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 Suchprogramm schreiben, Teil 4

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function finden(text) {' '  const aus = [];' '  text.split(\" \").forEach(function (wort) {' '    const w = bereinigen(wort);' '    if (artVon(w).length > 0) aus.push({ art: artVon(w), wert: w });' '  });' '  return aus;' '}' >> finder.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 Suchprogramm schreiben, Teil 5

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  nachrichten.forEach(function (text, i) {' '    const werte = finden(text).map(function (f) { return f.wert; });' '    const fehlt = markiert[i].filter(function (v) { return werte.indexOf(v) < 0; });' '    const zuviel = werte.filter(function (v) { return markiert[i].indexOf(v) < 0; });' '    console.log((i + 1) + \" gefunden \" + JSON.stringify(finden(text)) + \" übersehen \" + JSON.stringify(fehlt) + \" Fehlalarm \" + JSON.stringify(zuviel));' '  });' '  const q = \"Schreiben Sie in einem kurzen Satz, warum eine Regel keinen Namen finden kann.\";' '  const probe = \"Ein Name hat keine feste Form, also hat eine Regel nichts, woran sie ihn erkennt.\";' '  const antwort = await fragen([{ role: \"user\", content: q }], probe, 60);' '  console.log(\"Das Modell sagte: \" + antwort.text);' '}' 'main();' >> finder.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 Suchprogramm ausführen

Befehl
docker exec -w /home/node/project agent node finder.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
1 gefunden email ... übersehen [] Fehlalarm []Ein richtiger Fund
3 gefunden [] übersehen ["0123 456 7890"]Eine Nummer mit Leerzeichen wird übersehen
5 gefunden karte ... übersehen ["Bernd Beispiel"]Ein Name wird übersehen
5 ... Fehlalarm ["4000000000000002"]Eine Bestellnummer sieht wie eine Karte aus
Das Modell sagte: ...Ein Satz. 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.