• UnoRouterUNOROUTER
文件
  • 聊天指南
入門
  • 入門
角色與世界
  • 角色
  • 人設
  • 世界書
  • 卡
提示詞
  • 預設
  • 提示詞範本
  • 群聊
腳本
  • 巨集(CBS)
  • 正規表示式腳本
  • 觸發器與 Lua
  • 外掛
上下文與媒體
  • 記憶與上下文
  • 圖像
  • 自訂供應商
你的資料
  • 你的資料
  • 備份與還原
導覽
  • 模型
  • 排行榜
  • 檢測器
  • 價格
  • 對話
  • 狀態

搜尋文件...

開始輸入以搜尋文件

平台整合聊天
聊天指南

外掛

你自己的 JavaScript,安全地在每則訊息前後執行。

外掛是你自己寫的 JavaScript,會在每次訊息送出或回來時執行。可以用來改寫文字、維護自己的計數器,或在提示詞中插入備註。

外掛是全域的:啟用後會在所有對話中執行。在聊天選單的「外掛」中管理,可以貼上程式碼或匯入 .js 檔案。

為下列四個時機之一註冊處理常式:

input request output display

處理常式接收文字並回傳替換後的內容。不回傳任何值則維持原樣。

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

處理常式依序執行,且絕不阻擋回覆:拋出錯誤或超過五秒的會被略過,原文繼續傳遞。

在處理常式內,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 指令碼
外掛做不到的事