• UnoRouterUNOROUTER
ドキュメント
  • チャットガイド
はじめに
  • はじめに
キャラクターと世界
  • キャラクター
  • ペルソナ
  • ロアブック
  • カード
プロンプト
  • プリセット
  • プロンプトテンプレート
  • グループチャット
スクリプト
  • マクロ(CBS)
  • 正規表現スクリプト
  • トリガーとLua
  • プラグイン
コンテキストとメディア
  • メモリーとコンテキスト
  • 画像
  • カスタムプロバイダー
あなたのデータ
  • あなたのデータ
  • バックアップと復元
ナビゲート
  • モデル
  • ランキング
  • インスペクター
  • 料金
  • チャット
  • ステータス

ドキュメントを検索...

入力してドキュメントを検索

プラットフォーム連携チャット
チャットガイド

プラグイン

自分の JavaScript が、各メッセージのそばで安全に動きます。

プラグインは、メッセージを送るときと受け取るときに実行される、あなたが書いた JavaScript です。文章の書き換え、独自のカウンター、プロンプトへのメモ挿入などに使えます。

プラグインは全体に適用されます。有効にすると、すべてのチャットで動作します。チャットメニューの「プラグイン」で管理でき、コードの貼り付けや .js ファイルの読み込みができます。

次の 4 つのタイミングのいずれかにハンドラーを登録します。

input request output display

ハンドラーはテキストを受け取り、置き換えた内容を返します。何も返さなければテキストはそのままです。

text
uno.registerHandler("output", (text) => {
  return text.replace(/\bcolour\b/g, "color");
});

ハンドラーは順番に実行され、返信を止めることはありません。エラーになったものや 5 秒を超えたものは飛ばされ、元のテキストが使われます。

ハンドラーの中では、uno オブジェクトが会話を読み書きします。各呼び出しは Promise を返します。

text
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 に残した内容がそのターンのプロンプトになります。

text
if (context.chat.last_message.toLowerCase().indexOf("storm") !== -1) {
  context.character.scenario += "\nA storm is rolling in.";
}

向こうのルールも同じです。状態はターンごとにリセットされるので、残したい内容は毎回シナリオに書き戻してください。

プラグインは隔離されたフレームで動作し、チャット、ファイル、Cookie、ログイン情報にはアクセスできません。ページを読むことも、独自に通信することもできません。

プラグインが触れるものはすべて上記の API を経由するため、ハンドラーに渡されたものしか見えません。それでも信頼できるコードだけを入れてください。プラグインは送信内容も表示内容も書き換えられます。

トリガーとLuaメモリーとコンテキスト

このページの目次

プラグインとは
フック
uno API
JanitorAI スクリプト
プラグインにできないこと