퍼메가 여러개인 봇을 깎다보면 각 퍼메에만 적용되는 캐릭터 설정이나 로어북 설정을 넣고 싶을 때가 있죠. 퍼메에다가 욱여 넣을수도 있으나 이러면 일단 퍼메창이 더러워지고 html로 숨겨도 assistant 롤로 말해졌기 때문에 봇이 극한의 설명충이 되어 버릴 확률이 높아지더라구요. 먼저 사용 예시를 몇개 나열해보자면:


1. 퍼메에 따라 "캐릭터 설정" 바꿔주기

  이게 굉장히 유용할 수 있는데 만약 봇의 첫번째 퍼메가 첫 만남이고 뒤로 갈 수록 점점 호감도가 높아지는 구조를 가지고 있다면 퍼메마다 캐릭터 설정에 해당 사실을 따로 넣어주면 llm이 성격을 안정적으로 묘사해줄 확률이 높아집니다.


2. 퍼메에 따라 "배경 설정 로어북"에 컨셉 설정 넣어주기

  모든 컨셉 설정을 로어북에 욱여 넣으면 당연히 토큰 낭비가 심하고 llm이 정보를 선별하기 갈수록 어려워합니다. 집중하고싶은 특별한 설정을 해당 퍼메의 로어북에만 넣어주면 llm이 정보를 선별할 필요가 없으므로 굉장히 타율이 높아집니다.


3. 퍼메의 기본 플롯 넣어주기

  해당 퍼메에서 봇이 전개해주기 원하는 플롯이 있다면 기본 플롯을 아예 배경 설정 로어북에 박아줄 수 있습니다. 위자드에서는 이러면나름 급발진 없이 자연스럽게 전개 해주더라구요.

4. 여러 캐릭터를 한 봇에 넣기

  아예 캐릭터 설정이랑 퍼메를 다 들고 와서 하나의 봇으로 합쳐 버릴 수도 있겠죠. 퍼메 선택이 이제 캐릭터 선택으로 탈바꿈 됩니다.


이번에 수상한 한국인 기여자에 의해 새로 추가된 first_msg_index 중괄호 문법을 응용하면 위 네 가지가 모두 가능해지게 됩니다.


{{first_msg_index}}를 한번 채팅으로 쳐보시면, 퍼메마다 숫자가 달라지는걸 볼 수 있는데

1. 기본 퍼메이면 -1이 되고
2. 추가 퍼메이면 첫번째 추가 퍼메는 0, 두번째 추가 퍼메는 1, ... 이런 식으로 숫자가 바뀝니다.


이 숫자에 따라서 로어북이나 캐릭터 설정에서 if구문으로 정보를 넣어주면 됩니다. 예를 들어 기본 퍼메에서만 정보를 넣고 싶으면 로어북이나 캐릭터 설정에

{#if {{equal::{{first_msg_index}}::-1}}
추가 정보. 기본 퍼메가 선택되었을 때만 추가 됩니다.
#}

이걸 그대로 넣어주면 중간에 추가 정보에 있는 텍스트가 기본 퍼메일때만 삽입이 되게 됩니다. 

만약 첫번째 추가 퍼메에만 정보를 넣어주고 싶으면 -1 숫자를 0으로 바꿔서

{#if {{equal::{{first_msg_index}}::0}}

추가 정보. 추가 첫 메세지 1이 선택되었을 때만 추가 됩니다.

#}

이렇게 해주면 됩니다.


그럼 한번 퍼메마다 성격이 바뀌는 유즈에게 이불을 던져볼까요.



잘 되는걸 확인 할 수 있습니다.