聊天指南
插件
你自己的 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。即便如此,也只安装你信任的代码:插件可以改写并读取你发送和接收的内容。