Skip to main content

.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:

EventBeschreibungPayload
RAGAI.DIALOGRECORDER.RECORDEDEine neue Nachricht wurde aufgezeichnet{ role, text }
RAGAI.DIALOGRECORDER.STOPPEDDie Aufzeichnung wurde gestopptSimpleDialogMessage[]
RAGAI.DIALOGRECORDER.RESETDie Aufzeichnung wurde zurückgesetztSimpleDialogMessage[]
// 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_NAME und USER_NAME vor dem Aufruf von record(), damit die Namen korrekt übernommen werden.