搜尋文件...

開始輸入以搜尋文件

聊天指南

外掛

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

外掛是在訊息送出或回來時執行的 JavaScript。可以用它改寫文字、維護計數器,或往提示中注入備註。

外掛是全域的:一旦啟用就會在每段對話中執行。請到聊天選單的 Plugins 管理它們。可以貼上程式碼或匯入 .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 撰寫的指令碼可以原樣執行,使用同一個上下文物件。它們最後留在 character.personality 與 character.scenario 裡的內容,就是那一輪的提示。

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

它們的規則同樣適用:狀態每回合都會重設,因此想保留的內容每次都要重新寫回場景。

外掛在隔離的框架中執行,無法存取你的對話、檔案、Cookie 或登入狀態,也讀不到頁面、發不出自己的網路請求。

外掛能碰到的一切都會經過上面的 API。即使如此,也請只安裝你信任的程式碼:外掛可以改寫並讀取你送出與收到的內容。