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

Einen Chatbot seine Quellen nennen lassen

Nach dieser Lektion: Ich kann zeigen, welche Quelle eine Antwort benutzt hat.

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

Zeigen, woher eine Antwort stammt

Ein Zitat ist ein Marker in einer Antwort, der auf die Quelle verweist, aus der sie stammt. Das ist wichtig, weil man einer Antwort mehr traut, die man prüfen kann, und Ihr Programm kann die Marker prüfen.

Der Chatbot einer Bibliothek sagt, ein verspätetes Buch koste zehn Cent pro Tag [2]. Der Leser schaut in Quelle 2 und findet dieselbe Regel.

Am Ende dieser Lektion

Notiz

Ich kann zeigen, welche Quelle eine Antwort benutzt hat.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Quelleeine Textstelle, die die Antwort nutzen darf
Zitatein Verweis von der Antwort auf ihre Quelle
Markerdie Nummer in Klammern, die das Zitat macht[2]
Belegtgestützt auf die Quellen, die Sie gegeben haben
Unbenutzte Quelleeine Quelle, die kein Marker benennt

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

Quellen nummerieren und Marker verlangen

Schreiben Sie jede Quelle mit einer Nummer in den Prompt: [1], [2], [3]. Bitten Sie dann das Modell, nur diese Quellen zu nutzen und nach jeder Tatsache die Nummer zu schreiben.

Die Quellen hier sind Textstellen, die Sie ins Skript geschrieben haben. Woher echte Quellen kommen, zeigt das Modul „Suchsysteme“. Die Antwort ist belegt, wenn sie bei dem bleibt, was Sie gegeben haben.

Beispiel: Quellen und eine Antwort

TeilText
Quelle [1]Mitglieder dürfen bis zu sechs Bücher drei Wochen lang ausleihen.
Quelle [2]Ein verspätet zurückgegebenes Buch kostet zehn Cent pro Tag.
FrageWie viele Bücher darf ich ausleihen, und was kostet eine Verspätung?
AntwortSie dürfen sechs Bücher ausleihen [1]. Ein verspätetes Buch kostet zehn Cent pro Tag [2].

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

Prüfen, dass jeder Marker eine Quelle hat

Ein Modell kann [4] schreiben, obwohl es nur drei Quellen gibt. Ihr Programm kann das bemerken. Finden Sie jeden Marker und vergleichen Sie jede Nummer mit der Liste der Quellen-IDs.

Suchen Sie auch unbenutzte Quellen und Sätze ohne Marker. Sie zeigen, was die Antwort ausgelassen hat.

Ein häufiger Fehler

Warnung

Viele glauben, ein Marker beweise, dass die Antwort stimmt. Er beweist nur, dass die Quelle existiert. Das Modell kann für eine Tatsache die falsche Quelle nennen. Die Prüfung ist ein erster Filter, und ein Mensch liest die Quelle bei allem, was zählt.

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\";' '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 || 200 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"Status \" + res.status);' '    return (await res.json()).choices[0].message.content;' > 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' '  } catch (fehler) {' '    console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' '    const liste = [].concat(probe);' '    const runde = nachrichten.filter(function (m) { return m.role === \"assistant\"; }).length;' '    return liste[Math.min(runde, liste.length - 1)];' '  }' '}' '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.

Die Zitatprüfung schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const QUELLEN = [' '  { id: 1, text: \"Mitglieder dürfen bis zu sechs Bücher drei Wochen lang ausleihen.\" },' '  { id: 2, text: \"Ein verspätet zurückgegebenes Buch kostet zehn Cent pro Tag.\" },' '  { id: 3, text: \"Die Bibliothek öffnet um neun Uhr und schließt werktags um siebzehn Uhr.\" },' '];' > zitiert5.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 Zitatprüfung schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function quellenText() {' '  return QUELLEN.map(function (q) { return \"[\" + q.id + \"] \" + q.text; }).join(\"\n\");' '}' 'function markerIn(antwort) {' '  const gefunden = [];' '  const muster = /\[(\d+)\]/g;' '  let treffer = muster.exec(antwort);' '  while (treffer) { gefunden.push(Number(treffer[1])); treffer = muster.exec(antwort); }' '  return gefunden;' '}' >> zitiert5.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 Zitatprüfung schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function pruefen(antwort) {' '  const ids = QUELLEN.map(function (q) { return q.id; });' '  const marker = markerIn(antwort);' '  const fehlend = marker.filter(function (n) { return ids.includes(n) === false; });' '  return { marker: marker, fehlend: fehlend, ok: marker.length > 0 && fehlend.length === 0 };' '}' 'function zeigen(etikett, ergebnis) {' '  console.log(etikett + \" Marker \" + JSON.stringify(ergebnis.marker) + \", fehlend \" + JSON.stringify(ergebnis.fehlend) + \", ok: \" + ergebnis.ok);' '}' >> zitiert5.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 Zitatprüfung schreiben, Teil 4

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  const regel = \"Antworten Sie nur mit diesen nummerierten Quellen. Schreiben Sie nach jeder Tatsache die Nummer ihrer Quelle in eckigen Klammern, zum Beispiel [1]. Wenn die Quellen es nicht sagen, antworten Sie: Das weiß ich nicht.\n\" + quellenText();' '  const frage = \"Wie viele Bücher darf ich ausleihen, und was kostet eine Verspätung?\";' '  // Aufgezeichnete Probe, nur benutzt, wenn kein Modell antwortet.' '  const probe = \"Sie dürfen sechs Bücher ausleihen [1]. Ein verspätetes Buch kostet zehn Cent pro Tag [2].\";' '  const antwort = await fragen([{ role: \"system\", content: regel }, { role: \"user\", content: frage }], probe, 80);' '  console.log(\"Antwort:\", antwort);' '  zeigen(\"Prüfung:\", pruefen(antwort));' '  zeigen(\"Erfundene Antwort:\", pruefen(\"Die Leihfrist beträgt drei Wochen [4].\"));' '}' 'main();' >> zitiert5.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.

Fragen und die Marker prüfen

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

Eine mögliche Ausgabe

ZeileWas sie zeigen kann
AntwortZwei kurze Sätze, jeder mit einem Marker wie [1] am Ende
Prüfung:Marker [1,2], fehlend [], ok: true, wenn die Antwort bei den Quellen blieb
Erfundene Antwort:Marker [4], fehlend [4], ok: false, jedes Mal

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.