Skip to content

JSON 필드 안내

코멧의 JSON 파일 업로드에서 사용하는 파일 규격입니다.

매크로

Typescript로 작성한 데이터 타입입니다.
매크로 파일은 아래 type을 만족시키는 JSON 파일이여야 합니다.

ts
type MacroFileType = ({
  type: "str_str",
  from: string,
  to: string
} | {
  type: "regex_str",
  from: string,
  to: string
} | {
  type: "regex_regex",
  from: string,
  prefix: string,
  suffix: string
})[]

배열의 길이는 1 이상, 1000 이하여야 합니다.

구분자

str_str
이 매크로가 일대일 치환임을 나타냅니다.

regex_str
이 매크로가 정규식 치환임을 나타냅니다.

regex_regex
이 매크로가 정규식 체인임을 나타냅니다.

필드

from
타겟 키워드, 정규식에 해당하는 데이터입니다. 최대 1만자까지 허용됩니다.
type이 regex_strregex_regex인 경우, 정규식이 올바르고 위험하지 않아야 합니다.

to
대체 키워드, 대체식에 해당합니다.
type이 str_str인 경우 최대 1만자, regex_str인 경우 최대 3만자까지 허용됩니다.

prefix
접두사에 해당합니다. 최대 3만자까지 허용됩니다.

suffix
접미사에 해당합니다. 최대 3만자까지 허용됩니다.

로어북

Typescript로 작성한 데이터 타입입니다.
로어북 파일은 아래의 LorebookFileType을 만족시키는 JSON 파일이여야 합니다.

ts
type ActionType = 'apply' | 'pass' | 'block'

type TriggerType = {
  type: 'keyword',
  action: ActionType,

  keyword: string,
  watchPrevChat: boolean,
  watchUserChat: boolean,
} | {
  type: 'regex',
  action: ActionType,

  regex: string,
  watchPrevChat: boolean,
  watchUserChat: boolean
} | {
  type: 'turn',
  action: ActionType,

  from: number,
  to: number,
  remainder: number
} | {
  type: 'dice',
  action: ActionType,

  diceIndex: number,
  from: number,
  to: number,
  remainder: number
}

type LorebookFileType = {
  title: string,
  content: string,
  triggers: TriggerType[],
  useDefault: boolean,
}[]

배열의 길이는 1 이상 500 이하여야 합니다.

로어북 필드

title
로어북 제목에 해당합니다. 1자 이상, 20자 이내여야 합니다.

content
로어북 내용에 해당합니다. 1자 이상, 7500자 이내, 공백 제외 5000자 이내여야 합니다.

useDefault
로어북 공간이 남을 경우 활성화에 해당합니다.

triggers
후술할 트리거 데이터를 담는 배열입니다. 배열의 길이는 30 이내여야 합니다.
useDefaultfalse라면 배열의 길이가 1 이상이여야 합니다.

트리거 구분자

keyword
이 트리거가 키워드 트리거임을 나타냅니다.

regex
이 트리거가 정규식 트리거임을 나타냅니다.

turn
이 트리거가 턴수 트리거임을 나타냅니다.

dice
이 트리거가 주사위 트리거임을 나타냅니다.

트리거 필드

action
트리거 유형에 해당합니다.
apply일 경우 발동, pass일 경우 통과, block일 경우 차단을 의미하게 됩니다.

keyword
감지할 키워드에 해당합니다. 1자 이상, 300자 이내여야 합니다.

regex
감지할 정규식에 해당합니다. 1자 이상, 300자 이내여야 하며, 올바른 정규식이여야 합니다.

watchPrevChat
감지 범위 - 직전 대화에 해당합니다. true인 경우 활성화됩니다.
watchPrevChatwatchUserChat 중 하나는 반드시 true여야 합니다.

watchUserChat
감지 범위 - 유저 입력에 해당합니다. true인 경우 활성화됩니다.
watchPrevChatwatchUserChat 중 하나는 반드시 true여야 합니다.

from
구간 범위 - 시작에 해당합니다. 1 이상 10억 미만의 자연수여야 합니다.

to
구간 범위 - 끝에 해당합니다. from 이상 10억 미만의 자연수여야 합니다.

remainder
사이클 주기에 해당합니다. 0 이상 10억 미만의 자연수여야 합니다.

diceIndex
사용할 주사위에 해당합니다. 1 이상 10억 미만의 자연수여야 합니다.