| Название | Краткое описание |
|---|---|
| Главная | |
| System Lorebook | Lorebook как более гибкая альтернатива System Prompt |
| Stepped Thinking | Вызов нескольких вспомогательных инструкций перед генерацией основного ответа персонажа |
| Stepped Summary | Генерация Summary несколькими последовательными запросами |
| No Assistant | Реализация ролеплея с несколькими персонажами посредством использования нестандартного Instruct шаблона |
| Прочие скрипты |
No Assistant
Описанный в данной статье метод промптинга во многом реализует поведение, схожее с методом No Assistant, который получил определённую популярность для Chat Completion. В случае Text Completion у нас есть прямой доступ к структуре формирования промпта, что позволяет реализовать NoAssistant-подобные инструкции без внешних расширений для таверны.
Кроме того, что данный подход убирает определённые биасы и имеет несколько других особенностей он позволяет организовать ролеплей с несколькими персонажами без использования механизма Group Chat в таверне, реализация которого является спорной в нескольких моментах.
А добавив пару регекспов мы сможем вывести аватарки для всех персонажей, карточки которых есть у нас в таверне. В конце мы получим такую картинку:
| Ответ LLM | Он же, но с форматированием |
|---|---|
![]() |
![]() |
1. Скачайте и распакуйте данный архив
2. Импортируйте formatting.json в секции Advanced Formatting (кнопка "Master Import" вверху справа). Данный файл предоставляет шаблоны для Context Template и Instruct Template в формате ChatML. Если вам нужен другой формат модели, то вы можете сделать шаблон под нужный вам формат, используя предоставленный шаблон в качестве примера.
В качестве System Prompt можете использовать любой промпт, не содержащий макроса {{char}}, поскольку char'ом у нас будет выступать абстрактный рассказчик, а не конкретный персонаж в ролеплее. Лично я использую такой промпт:
You are an intelligent, skilled, versatile writer.
Your task is to write a role-play based on the information below.
Должно получиться так:

3. Импортируйте предоставленные лорбуки. Я их делю по блокам для лучшей структуризации. Описание лорбуков в архиве:
[NoAss] ⚙️ System.json- описывает начало и конец блока с инструкциями. Обратите внимание, что окончание блока с инструкциями требует соответствия с форматом модели (даны примеры для GLM и ChatML). Возможно, что это можно вынести в Instruct Template, но у меня возникли с этим проблемы, так что пока так[NoAss] 📜 Rules (100).json- описывает общие правила ведения ролеплея. Какой язык, разрешено ли писать за{{user}}и так далее-
[NoAss] 👥 Characters (200).json- в этой секции вам необходимо описать ваших основных персонажей в рамках ролеплея. Здесь есть пара нюансов:- Для работы аватарок имя персонажа должно строго соответствовать имени персонажа в карточке.
- Лично я предпочитаю описывать свою персону в лорбуке, чтобы она оказалась внутри блока
<characters></characters>наравне со всеми другими персонажами. Однако, вам ничего не мешает использовать стандартный функционал для описания персон в таверне и не переносить эту информацию в лорбук
[NoAss] 📋 Formatting (300)- определяет доступные XML-блоки, генерируемые LLM. Лично я использую только блоки<roleplay>и<narrator>, хотя в лорбуке ещё даны определения для<thoughts>и<intent>.[NoAss] ⬇️ Infoblock (800)- определяет структуру инфоблока - небольшой строго-структурированный шаблон для отслеживания общего состояния сцены. В лорбуке предоставлена пара разных инфоблоков, позаимствованных из пресетов для корпосеток.
Из всех лорбуков только system, characters и formatting являются обязательным. rules и infoblock отражают мои личные предпочтения и не являются необходимыми для работы всей системы. Смотри LLMCrutches_SystemLorebook для понимания мотивации использовать лорбуки в качестве инструкций для text completion.
Число в скобках у названия лорбука (Formatting (300)) служит лишь визуальным разделителем доступных диапазонов для Order. Например для 👥 Characters (200) я резервирую диапазон 200-299. Это служит лишь для удобства настройки при использовании множества лорбуков и никак не влияет на функционал.
4. Создайте или выберите карточку, которая будет выполнять роль рассказчика для нашего режима. Лично я для этого буду использовать пустую карточку ♂️ Данжон Мастера ♂️
После того, как вы создали/выбрали карточку, закрепите за ней импортированные на прошлом шаге лорбуки. Сделать это можно кликнув на отмеченную ниже иконку в настройках карочки. Вам откроется окно с настройками лорбуков, ассоциированными с данной карточкой. В настройках добавьте все новые лорбуки в секцию Additional Lorebooks.
Этот вариант является более предпочтительным чем включать лорбуки глобально, поскольку он позволит нам переключаться между NoAssistance и классическими чатам, без необходимости включать/отключать пачку лорбуков при смене чата.
| Кнопка настроек лорбуков карточки | Результат после настроек |
|---|---|
![]() |
![]() |
5. Импортируйте предоставленные regex, всего их в архиве 3 штуки, но только две являются обязательными:
Обязательные:
[noass]_avatars.json- форматирование и аватарки для сообщений персонажей[noass]_narrator.json- форматирование для сообщений нарратора
Опциональные:
cut_infoblock.json- обрезка старых инфоблоков из контекста
6. ???
7. PROFIT! Если вы всё настрили правильно, то при ролеплее с нарратором он будет отвечать от лица персонажей, описанных в секции Characters и обрамлять все ответы в <roleplay> блоки. А regex'ы позволят нам отформатировать это в красивый вид с аватарками, и работать это форматирование будет даже во время стриминга. Кроме того, при необходимости, нарратор будет отвечать от лица персонажей, не описанных в лорбуке, так что вам не нужно заводить карточку/запись в лорбуке для персонажей, которые пропадут через несколько игровых ходов.



