Extensions
Votre propre JavaScript, exécuté en toute sécurité autour de chaque message.
Une extension est du JavaScript que vous écrivez et qui s'exécute chaque fois qu'un message part ou revient. Elle sert à réécrire du texte, tenir vos propres compteurs ou insérer des notes dans le prompt.
Les extensions sont globales : une fois activées, elles s'exécutent dans toutes les conversations. Gérez-les sous Extensions dans le menu du chat, où vous pouvez coller du code ou importer un fichier .js.
Enregistrez un gestionnaire pour l'un de ces quatre moments :
input request output display
Un gestionnaire reçoit le texte et renvoie le remplacement. Ne rien renvoyer laisse le texte inchangé.
uno.registerHandler("output", (text) => {
return text.replace(/\bcolour\b/g, "color");
});Les gestionnaires s'exécutent dans l'ordre et ne bloquent jamais une réponse : celui qui échoue ou dépasse cinq secondes est ignoré, et le texte d'origine passe.
Dans un gestionnaire, l'objet uno lit et écrit la conversation. Chaque appel renvoie une promesse.
const name = await uno.getName();
const last = await uno.getUserLastMessage();
await uno.setChatVar("mood", "curious");
const mood = await uno.getChatVar("mood");L'ensemble couvre les messages, les champs du personnage et du persona, les variables de conversation, les entrées de lorebook, l'expansion des macros, le comptage de jetons et une requête https à débit limité.
Les scripts écrits pour JanitorAI fonctionnent tels quels. Ils reçoivent le même objet context, et ce qu'ils laissent dans character.personality et character.scenario devient le prompt de ce tour.
if (context.chat.last_message.toLowerCase().indexOf("storm") !== -1) {
context.character.scenario += "\nA storm is rolling in.";
}Leurs règles s'appliquent aussi : l'état est réinitialisé à chaque tour, réécrivez donc dans le scénario tout ce que vous voulez conserver.
Les extensions s'exécutent dans un cadre isolé, sans accès à vos conversations, fichiers, cookies ou session. Elles ne peuvent ni lire la page ni émettre leurs propres requêtes réseau.
Tout ce qu'une extension atteint passe par l'API ci-dessus : elle ne voit que ce qu'un gestionnaire reçoit. N'installez tout de même que du code de confiance : une extension peut réécrire ce que vous envoyez et ce que vous lisez.