• UnoRouterUNOROUTER
Documentation
  • Guide du chat
Premiers pas
  • Premiers pas
Personnages & monde
  • Personnages
  • Personas
  • Lorebooks
  • Cartes
Prompting
  • Presets
  • Modèle de prompt
  • Chats de groupe
Scripting
  • Macros (CBS)
  • Scripts regex
  • Déclencheurs & Lua
  • Extensions
Contexte & médias
  • Mémoire & contexte
  • Images
  • Fournisseurs personnalisés
Vos données
  • Vos données
  • Sauvegarde & restauration
Naviguer
  • Modèles
  • Classements
  • Inspecteur
  • Tarifs
  • Chat
  • Statut

Rechercher dans la doc...

Commencez à taper pour rechercher dans la documentation

PlateformeIntégrationsChat
Guide du chat

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

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

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

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

Déclencheurs & LuaMémoire & contexte

Sur cette page

Ce qu'est une extension
Points d'ancrage
L'API uno
Scripts JanitorAI
Ce qu'une extension ne peut pas faire