افزونهها
جاوااسکریپت خودتان، اجراشده دور هر پیام.
افزونه جاوااسکریپتی است که وقتی پیامی میرود یا میآید اجرا میشود. برای بازنویسی متن، شمارنده نگه داشتن یا تزریق یادداشت به پرامپت استفادهاش کنید.
افزونهها سراسریاند: وقتی فعال شوند، در هر گفتگو اجرا میشوند. در Plugins منوی گفتگو مدیریتشان کنید. کد بچسبانید یا فایل js. درونریزی کنید.
برای یکی از چهار لحظه handler ثبت کنید:
input request output display
handler متن را میگیرد و جایگزین را برمیگرداند. برای دستنخوردن، هیچ برنگردانید.
uno.registerHandler("output", (text) => {
return text.replace(/\bcolour\b/g, "color");
});handlerها به ترتیب اجرا میشوند و هرگز پاسخ را مسدود نمیکنند. هر کس که خطا بدهد یا از پنج ثانیه بگذرد رد میشود و متن اصلی عبور میکند.
داخل handler، شیء 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 همانطور که هستند اجرا میشوند، با همان شیء زمینه. هر چه در character.personality و character.scenario بگذارند، پرامپت همان نوبت میشود.
if (context.chat.last_message.toLowerCase().indexOf("storm") !== -1) {
context.character.scenario += "\nA storm is rolling in.";
}قواعدشان هم اعمال میشود: وضعیت هر نوبت صفر میشود؛ پس هر چه ماندنی است را هر بار دوباره در scenario بنویسید.
افزونهها در فریمی سندباکسشده اجرا میشوند و به گفتگوها، فایلها، کوکیها یا ورود شما دسترسی ندارند. نمیتوانند صفحه را بخوانند یا درخواست شبکه خودشان را بزنند.
هر چه افزونه به آن میرسد از API بالا میگذرد. با این حال فقط کد مورد اعتماد نصب کنید: افزونه میتواند آنچه میفرستید و میخوانید را بازنویسی کند.