Plugins
Dein eigenes JavaScript, sicher rund um jede Nachricht.
Ein Plugin ist JavaScript, das du schreibst und das läuft, sobald eine Nachricht rausgeht oder zurückkommt. Damit kannst du Text umschreiben, eigene Zähler führen oder Notizen in den Prompt einfügen.
Plugins gelten global: einmal aktiviert, läuft eines in jedem Chat. Verwalten kannst du sie unter Plugins im Chat-Menü, wo du Code einfügen oder eine .js-Datei importieren kannst.
Registriere einen Handler für einen von vier Zeitpunkten:
input request output display
Ein Handler bekommt den Text und gibt den Ersatz zurück. Gib nichts zurück, um ihn unverändert zu lassen.
uno.registerHandler("output", (text) => {
return text.replace(/\bcolour\b/g, "color");
});Handler laufen der Reihe nach und blockieren nie eine Antwort: Wer einen Fehler wirft oder länger als fünf Sekunden braucht, wird übersprungen, und der ursprüngliche Text geht durch.
Innerhalb eines Handlers liest und schreibt das uno-Objekt die Unterhaltung. Jeder Aufruf liefert ein Promise.
const name = await uno.getName();
const last = await uno.getUserLastMessage();
await uno.setChatVar("mood", "curious");
const mood = await uno.getChatVar("mood");Der volle Umfang deckt Chatnachrichten, Charakter- und Persona-Felder, Chat-Variablen, Lorebook-Einträge, Makro-Auflösung, Token-Zählung und eine ratenbegrenzte https-Anfrage ab.
Für JanitorAI geschriebene Skripte laufen unverändert. Sie bekommen dasselbe context-Objekt, und was sie in character.personality und character.scenario hinterlassen, wird zum Prompt dieses Zuges.
if (context.chat.last_message.toLowerCase().indexOf("storm") !== -1) {
context.character.scenario += "\nA storm is rolling in.";
}Auch deren Regeln gelten: der Zustand wird jeden Zug zurückgesetzt, schreib also alles Wichtige jedes Mal erneut ins Szenario.
Plugins laufen in einem abgeschotteten Frame ohne Zugriff auf deine Chats, Dateien, Cookies oder deinen Login. Sie können weder die Seite lesen noch eigene Netzwerkanfragen stellen.
Alles, was ein Plugin erreicht, läuft über die obige API, es sieht also nur, was ein Handler bekommt. Installiere trotzdem nur Code, dem du vertraust: ein Plugin kann umschreiben, was du sendest und was du liest.