.DIALOGRECORDER
Mit dem DialogRecorderService (RAGAI.DIALOGRECORDER) kannst du den Gesprächsverlauf zwischen Nutzer und Bot aufzeichnen und in verschiedenen Formaten exportieren. Das ist ideal für Protokolle, Auswertungen, Lerntagebücher oder die automatische Dokumentation eines Gesprächs.
Eigenschaften
BOT_NAME
Der Name, der in der Aufzeichnung für Bot-Nachrichten verwendet wird. Standard: "Bot".
RAGAI.DIALOGRECORDER.BOT_NAME = "Lern-Assistent";
USER_NAME
Der Name, der in der Aufzeichnung für Nutzer-Nachrichten verwendet wird. Standard: "User".
RAGAI.DIALOGRECORDER.USER_NAME = "Teilnehmer";
Methoden
.record()
Startet die Aufzeichnung des Gesprächsverlaufs. Ab diesem Zeitpunkt werden alle Nutzer- und Bot-Nachrichten mitgeschnitten. Wird record() aufgerufen, obwohl bereits aufgezeichnet wird, passiert nichts.
RAGAI.DIALOGRECORDER.record();
.stop()
Stoppt die Aufzeichnung. Bereits aufgezeichnete Nachrichten bleiben erhalten und können weiterhin abgerufen werden. Löst das Event RAGAI.DIALOGRECORDER.STOPPED aus.
RAGAI.DIALOGRECORDER.stop();
.reset()
Stoppt die Aufzeichnung und löscht alle bisher aufgezeichneten Nachrichten. Löst das Event RAGAI.DIALOGRECORDER.RESET aus.
RAGAI.DIALOGRECORDER.reset();
.getDialog()
Gibt den aufgezeichneten Dialog als formatierten Text-String zurück. Jede Zeile enthält den Rollennamen und den Text.
Rückgabewert: string
const dialog = RAGAI.DIALOGRECORDER.getDialog();
console.log(dialog);
// Ausgabe:
// Teilnehmer: Hallo, wie geht es dir?
// Lern-Assistent: Mir geht es gut! Wie kann ich dir helfen?
.getDialogHtml()
Gibt den aufgezeichneten Dialog als HTML-String zurück (Zeilenumbrüche werden durch <br /> ersetzt). Nützlich für die Darstellung in HTML-Overlays oder Cards.
Rückgabewert: string
const html = RAGAI.DIALOGRECORDER.getDialogHtml();
await RAGAI.CARDS.html(html);
.getDialogJson()
Gibt den aufgezeichneten Dialog als JSON-Array zurück. Jeder Eintrag enthält die Rolle ("user" oder "bot") und den Text.
Rückgabewert: SimpleDialogMessage[] — Array mit { role: "user" | "bot", text: string }
const json = RAGAI.DIALOGRECORDER.getDialogJson();
console.log(json);
// [
// { role: "user", text: "Hallo!" },
// { role: "bot", text: "Hallo, wie kann ich dir helfen?" }
// ]
Events
Der DialogRecorder löst folgende Events über RAGAI.EVENTS aus:
| Event | Beschreibung | Payload |
|---|---|---|
RAGAI.DIALOGRECORDER.RECORDED | Eine neue Nachricht wurde aufgezeichnet | { role, text } |
RAGAI.DIALOGRECORDER.STOPPED | Die Aufzeichnung wurde gestoppt | SimpleDialogMessage[] |
RAGAI.DIALOGRECORDER.RESET | Die Aufzeichnung wurde zurückgesetzt | SimpleDialogMessage[] |
// Auf neue Aufzeichnungen reagieren
RAGAI.EVENTS.on("RAGAI.DIALOGRECORDER.RECORDED", (eventName, data) => {
console.log(`Neue Nachricht von ${data.role}: ${data.text}`);
});
Vollständiges Beispiel
await RAGAI.WAITFOR.initialIdle();
// Namen anpassen
RAGAI.DIALOGRECORDER.BOT_NAME = "Lern-Bot";
RAGAI.DIALOGRECORDER.USER_NAME = "Lernender";
// Aufzeichnung starten
RAGAI.DIALOGRECORDER.record();
// ... der Nutzer interagiert mit dem Bot ...
// Nach einer Weile: Aufzeichnung stoppen und Protokoll anzeigen
RAGAI.EVENTS.on("RAGAI.DIALOGRECORDER.STOPPED", () => {
const protokoll = RAGAI.DIALOGRECORDER.getDialogHtml();
RAGAI.OVERLAY.html(protokoll);
});
// Aufzeichnung stoppen (z. B. per Button)
RAGAI.DIALOGRECORDER.stop();
Hinweise
- Die Aufzeichnung erfasst nur Nachrichten, die über
RAGAI.MSG.prompt()(Nutzereingaben) und Bot-Antworten (runComplete) laufen. Bypass-Nachrichten werden nicht aufgezeichnet. - Die aufgezeichneten Daten bleiben nur für die aktuelle Sitzung erhalten.
- Setze
BOT_NAMEundUSER_NAMEvor dem Aufruf vonrecord(), damit die Namen korrekt übernommen werden.