문서 검색...

문서를 검색하려면 입력을 시작하세요

채팅 가이드

플러그인

모든 메시지 앞뒤에서 실행되는 사용자의 JavaScript.

플러그인은 메시지가 나갈 때나 돌아올 때 실행되는 JavaScript입니다. 텍스트를 고쳐 쓰거나, 카운터를 유지하거나, 프롬프트에 메모를 주입하는 데 쓰세요.

플러그인은 전역입니다: 켜면 모든 채팅에서 실행됩니다. 채팅 메뉴의 Plugins에서 관리하세요. 코드를 붙여 넣거나 .js 파일을 가져오세요.

다음 네 시점 중 하나에 핸들러를 등록하세요.

input request output display

핸들러는 텍스트를 받아 바꾼 내용을 반환합니다. 아무것도 반환하지 않으면 텍스트는 그대로입니다.

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

핸들러는 순서대로 실행되며 답변을 막지 않습니다. 예외를 던지거나 5초를 넘긴 핸들러는 건너뛰고 원래 텍스트가 그대로 전달됩니다.

핸들러 안에서 uno 객체가 대화를 읽고 씁니다. 모든 호출은 프라미스를 반환합니다.

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.";
}

그쪽 규칙도 그대로입니다. 상태는 턴마다 초기화되므로, 남기고 싶은 내용은 매번 시나리오에 다시 써 주세요.

플러그인은 격리된 프레임에서 실행되며 대화, 파일, 쿠키, 로그인에 접근할 수 없습니다. 페이지를 읽거나 직접 네트워크 요청을 보낼 수도 없습니다.

플러그인이 닿는 모든 것은 위의 API를 거칩니다. 그래도 믿을 수 있는 코드만 설치하세요. 플러그인은 주고받는 내용을 고쳐 쓰거나 읽을 수 있습니다.