プラグイン
自分の JavaScript が、各メッセージのそばで安全に動きます。
プラグインは、メッセージを送るときと受け取るときに実行される、あなたが書いた JavaScript です。文章の書き換え、独自のカウンター、プロンプトへのメモ挿入などに使えます。
プラグインは全体に適用されます。有効にすると、すべてのチャットで動作します。チャットメニューの「プラグイン」で管理でき、コードの貼り付けや .js ファイルの読み込みができます。
次の 4 つのタイミングのいずれかにハンドラーを登録します。
input request output display
ハンドラーはテキストを受け取り、置き換えた内容を返します。何も返さなければテキストはそのままです。
uno.registerHandler("output", (text) => {
return text.replace(/\bcolour\b/g, "color");
});ハンドラーは順番に実行され、返信を止めることはありません。エラーになったものや 5 秒を超えたものは飛ばされ、元のテキストが使われます。
ハンドラーの中では、uno オブジェクトが会話を読み書きします。各呼び出しは Promise を返します。
const name = await uno.getName();
const last = await uno.getUserLastMessage();
await uno.setChatVar("mood", "curious");
const mood = await uno.getChatVar("mood");全体では、チャットメッセージ、キャラクターとペルソナの各項目、チャット変数、ロアブックの項目、マクロ展開、トークン数、レート制限付きの https リクエストに対応します。
JanitorAI 向けに書かれたスクリプトはそのまま動きます。同じ context オブジェクトを受け取り、character.personality と character.scenario に残した内容がそのターンのプロンプトになります。
if (context.chat.last_message.toLowerCase().indexOf("storm") !== -1) {
context.character.scenario += "\nA storm is rolling in.";
}向こうのルールも同じです。状態はターンごとにリセットされるので、残したい内容は毎回シナリオに書き戻してください。
プラグインは隔離されたフレームで動作し、チャット、ファイル、Cookie、ログイン情報にはアクセスできません。ページを読むことも、独自に通信することもできません。
プラグインが触れるものはすべて上記の API を経由するため、ハンドラーに渡されたものしか見えません。それでも信頼できるコードだけを入れてください。プラグインは送信内容も表示内容も書き換えられます。