Редактор пресетов и управление промптами

Пресет – это сохраненный чертеж промпта, то есть текста, который Marinara отправляет модели для каждого ответа. Он решает, что входит в промпт и в каком порядке: ваши инструкции, карточка персонажа, ваша персона, история чата, записи лорбука и многое другое. Соберите пресет в Preset Editor (редактор пресетов), а затем назначьте его чату.

Пресеты собирают промпт в чатах Roleplay. Чаты Conversation и Game вместо этого используют одно поле промпта (см. Чаты Conversation и Game). Пресетам не нужен ключ API, но чтобы отправить промпт, все равно нужен работающий аккаунт. См. Подключение к провайдеру ИИ.

Назначение пресета чату

Пока чат не использует пресет, тот ничего не делает. В чате Roleplay подойдет любой из двух способов. Чтобы выбрать готовый пресет, назначьте его. Как сделать свой, см. Создание пресета.

Из панели Presets (пресеты):

  1. Откройте чат.
  2. В панели Presets найдите строку пресета. На компьютере наведите курсор на строку, чтобы появились ее кнопки.
  3. Нажмите кнопку с галочкой Assign to chat (назначить чату). Галочка показывает, что пресет используется. Нажмите ее еще раз, чтобы снять назначение.

Из Chat Settings (настройки чата):

  1. Откройте чат, затем Chat Settings.
  2. Найдите Prompt Preset (пресет промпта) и выберите пресет в раскрывающемся списке.

Если у пресета есть переменные, откроется окно Configure Preset Variables. См. Переменные пресета. При переходе на другой пресет ранее выбранные значения переменных сбрасываются.

Создание пресета

  1. Откройте панель Presets на боковой панели.
  2. Нажмите New (значок плюса). Откроется окно Create Preset.
  3. Впишите Name (название). Это поле обязательное. По желанию добавьте Description (описание).
  4. Нажмите Create. Пресет откроется в Preset Editor.
  5. Соберите промпт на вкладке Sections.
  6. Нажмите Save в правом верхнем углу.

Редактор не сохраняет ничего сам. Нажимайте Save после каждого изменения. Если вы уходите с несохраненными правками, предупреждение предлагает Keep editing, Discard и Save & close.

Чтобы экспортировать пресет, нажмите значок стрелки вверх на верхней панели (всплывающая подсказка Export preset). Если есть несохраненные правки, Marinara сначала попросит их сохранить. Чтобы удалить пресет, нажмите значок корзины.

Панель Presets

Prompts – раздел для пресетов. Другие разделы – Regexes и Functions. Кнопки сверху – New, Import (загрузить файл .json) и Select (экспортировать или удалить сразу несколько).

В каждой строке видны название, формат обертки, число разделов и автор. Значок DEFAULT отмечает пресет по умолчанию, помеченный звездочкой. Нажмите строку, чтобы открыть пресет.

Вкладки Preset Editor

ВкладкаЧто на ней
OverviewНазвание, описание, формат обертки и автор.
SectionsСтруктура промпта, собранная из блоков и маркеров.
PromptsПромпты режимов для чатов Conversation и Game.
Parameters (параметры)Начальные настройки генерации. См. Параметры генерации.
RegexСкрипты регулярных выражений, привязанные к этому пресету, и Scoped regex default (ограниченный regex по умолчанию). См. Скрипты регулярных выражений.

Вкладка Overview

Две карточки только для чтения показывают счетчики Sections и Groups.

Вкладка Prompts

Встроенный Marinara's Universal Preset (универсальный пресет Marinara) задает текст промпта, но не параметры генерации. Его старые сохраненные настройки выборки, рассуждений, форматирования и токенов игнорируются, а вместо них действуют настройки вашего аккаунта, переопределения чата и значения приложения по умолчанию. Чтобы его настроить, создайте редактируемую копию.

Разделы и маркеры

На вкладке Sections вы собираете промпт. Разделы собираются сверху вниз.

  1. Нажмите Add Section (добавить раздел).
  2. Выберите Prompt Block или маркер.

Prompt Block – это текст, который вы пишете сами: системные инструкции, правила тона, все, что должно быть в каждом промпте. У маркера нет своего текста. Marinara заполняет его актуальным содержимым чата, когда отправляет промпт.

МаркерЧто вставляет
Character InfoДанные карточки активного персонажа.
PersonaДанные вашей активной персоны.
Chat HistoryСообщения чата.
Chat SummaryСобранную сводку чата.
Dialogue ExamplesПримеры реплик персонажа.
Lorebook Marker (All)Все активные записи лорбуков.
Lorebook Marker (Before)Записи лорбука, которые должны идти до.
Lorebook Marker (After)Записи лорбука, которые должны идти после.

В строке маркера показан значок MARKER. В большинство маркеров нельзя ничего вписать. Используйте Lorebook Marker (All), если не хотите разделять записи лорбука на те, что идут до, и те, что идут после.

Три более редких маркера:

Без включенного маркера Dialogue Examples непустые примеры реплик добавляются в Character Info после сценария, в формате обертки пресета. Добавьте маркер, чтобы выбрать место вставки. Дважды Marinara их никогда не добавляет.

Если в чате есть активные лорбуки, а в пресете нет маркера лорбука, предупреждение говорит: "Add a lorebook marker when this preset should receive active lorebook entries." Добавьте маркер, чтобы записи дошли до модели. См. Обзор лорбуков.

Если у вас есть свои агенты с включенным параметром "inject as section", в меню добавления появляется Agent Sections. Каждый такой раздел вставляет последний результат этого агента, а вокруг него можно дописать собственные инструкции.

Изменение раздела

  1. Нажмите название раздела или его стрелку, чтобы развернуть его.
  2. Измените его Name или роль (System, User или Assistant).
  3. У Prompt Block отредактируйте Content (содержимое). Оно поддерживает макросы.
  4. Нажмите Save в правом верхнем углу.

Элементы управления в строке:

Группы

Группа объединяет несколько разделов в один контейнер.

  1. На вкладке Sections нажмите Groups, затем New Group.
  2. Нажмите название группы, чтобы переименовать ее.
  3. Разверните раздел и выберите группу в его раскрывающемся списке Group.

С XML группа становится одним родительским тегом. С MARKDOWN она становится одним заголовком. Удаление группы не удаляет ее разделы. Они только выходят из группы.

Позиция и глубина

У каждого раздела в его редакторе есть настройка Position (позиция).

Форматы обертки

Wrap Format на вкладке Overview задает, во что заворачивается каждый раздел.

ФорматРезультат
XMLКаждый раздел стоит в тегах. Группы становятся родительскими тегами. Это вариант по умолчанию.
MARKDOWNКаждый раздел получает заголовок. Группы становятся заголовками более высокого уровня.
NONEБез обертки. Содержимое отправляется так, как написано.

XML подходит большинству моделей. Пробуйте остальные, только если модель отвечает лучше без тегов.

Чтобы отправить один Prompt Block без его тега или заголовка, разверните его и включите Send without wrapper (отправлять без обертки). Тег группы все еще может его окружать, поэтому уберите блок из группы, чтобы он ушел совсем без обертки. Маркеры всегда сохраняют свою обертку, а переключатель скрыт, когда выбран формат NONE.

Чаты Conversation и Game

Эти чаты не собирают промпт из разделов Sections. Они используют один промпт режима. В Chat Settings в разделе Prompt Preset есть раскрывающийся список Prompt source (источник промпта) с вашими пресетами. Изначально в нем выбрано Default conversation prompt или Default game prompt, а если пресетов нет, он показывает No presets available. В панели Presets кнопка назначения показывает "Prompt presets are not available in conversation mode."

Под списком значок показывает, откуда берется промпт.

ЗначокЗначение
DefaultВстроенный промпт.
PresetПромпт выбранного пресета.
StyleПромпт выбранного стиля промпта GM. Только в чатах Game.
CustomПравка только для этого чата. Она имеет приоритет над всеми остальными.

Текстовое поле показывает используемый промпт. Отредактируйте его, чтобы создать копию только для этого чата. Если ваш текст в точности совпадает с пресетом или промптом по умолчанию, Marinara считает его неизмененным. Пока есть своя правка, появляется значок сброса (всплывающая подсказка Reset to default prompt).

В чатах Game есть еще два элемента. GM prompt style (стиль промпта GM) заменяет только промпт Game, а правка для этого чата по-прежнему имеет приоритет. Extra instructions (дополнительные инструкции) добавляет текст к промпту Game, до 2000 символов, например "Write in the style of Terry Pratchett."

Блоки решений и кеширование промпта

Раздел может содержать блок решения {{#if decision:"..."}}, чтобы эта часть отправлялась, только когда утверждение о чате истинно. См. Вопрос к модели решений.

Блоки решений, которые часто меняются, ставьте ближе к концу промпта, например в инструкции после истории. Измененная ветка может помешать провайдеру повторно использовать промпт начиная с этого места, поэтому ранняя правка лишает большей части экономии от кеша. Более ранняя неизмененная часть все равно может использоваться повторно. Оставляйте решение в начале, только если его ответ меняется редко. См. Кеширование промпта.

Утверждения в выключенных разделах и группах никогда не запрашиваются и не учитываются в Decision statements per turn (утверждения решений за один ответ).

Как проверить, что получил ИИ

Peek Prompt показывает полностью собранный промпт для сообщения. Это самый быстрый способ разобраться в странном ответе. См. Peek Prompt: посмотреть, что получила модель ИИ.

Смежные руководства