Переменные пресета

Переменная пресета – это выбор с подписью, встроенный в пресет промпта. Автор пресета описывает ее один раз, а тот, кто пользуется пресетом, выбирает варианты, когда назначает его чату. С ее помощью один пресет может вести себя по-разному, и текст промпта править не нужно.

Вы даете переменной имя, пишете вопрос и перечисляете варианты. Затем пишете имя в двойных фигурных скобках, например {{tone}}, в любом разделе промпта. Когда ИИ генерирует ответ, Marinara подставляет вместо {{tone}} значение варианта, который выбрал пользователь.

Переменным пресета нужен пресет промпта, поэтому они работают в чатах Roleplay. В чатах Conversation и Game они не действуют: там вместо разделов используется единый текст промпта. О самих пресетах читайте в руководстве Редактор пресетов и управление промптами.

Виды переменных пресета

Переменная с несколькими вариантами по умолчанию – это одиночный выбор. Пользователь выбирает один вариант, они показаны радиокнопками. Это меняют три настройки.

ВидКак получитьПоведение
Boolean Toggle (логический переключатель)Дайте переменной ровно один вариант.Переключатель вкл./выкл. Включенный вставляет значение варианта. Выключенный не вставляет ничего.
Multi-Select (выбор нескольких вариантов)Включите Multi-Select.Пользователь выбирает несколько вариантов. Значения соединяются через разделитель, по умолчанию , . Romance, Fantasy и Action дают "Romance, Fantasy, Action".
Random Pick (случайный выбор)Включите Random Pick.Для переменной с одиночным выбором Marinara заранее выбирает случайный вариант в каждом новом чате, и выбор остается неизменным, пока вы его не поменяете. Когда включен Multi-Select, пользователь выбирает набор, и каждый ответ берет из него один вариант.

Добавление переменной пресета

  1. Откройте панель Presets (пресеты) и нажмите на пресет, чтобы открыть Preset Editor (редактор пресетов).
  2. Перейдите на вкладку Sections (разделы) и прокрутите вниз до панели Preset Variables (переменные пресета).
  3. Нажмите Add Variable (добавить переменную). Появится карточка новой переменной. Нажмите на нее, чтобы развернуть.
  4. Задайте Variable Name (имя переменной). Поле оставляет только буквы, цифры и знаки подчеркивания. Это имя вы пишете в фигурных скобках.
  5. Заполните Question (shown to user) (вопрос, который видит пользователь). Пользователь читает его, когда выбирает.
  6. Отредактируйте список Options (варианты). У каждого варианта есть Label (подпись), которую видит пользователь, и Value (значение) – текст, который вставляется в промпт. Пустое значение не вставляет ничего.
  7. В разделе Presentation (вид) выберите Auto, кнопочный вид (Radios или Checkboxes) или компактный (Dropdown или Listbox). Включите Alphabetical option display (варианты по алфавиту), чтобы отсортировать варианты по подписи.
  8. Нажмите <kbd>Escape</kbd> или Done (готово). Изменения сохраняются сами, а внизу написано "Changes auto-save. Press Escape to close."

Теперь напишите имя в фигурных скобках в разделе промпта. Например, вставьте {{tone}} в раздел и создайте переменную tone с вариантами Gentle и Harsh. Когда пользователь выбирает Harsh, раздел получает его значение.

У переменной всегда остается хотя бы один вариант. Если попробовать удалить последний, Marinara его сохранит.

Ответы на вопросы переменных

Когда вы назначаете чату пресет с переменными, открывается окно Configure Preset Variables (настройка переменных пресета). В нем написано: "This preset has configurable variables. Select option(s) for each to customize your experience."

У каждой переменной показаны ее вопрос, ее подстановка, например {{tone}}, и, где это уместно, плашка (Boolean toggle, Multi-select или Random pick).

  1. Выберите значение для каждой переменной.
  2. Нажмите Confirm Choices (подтвердить выбор).

Другие кнопки:

Confirm Choices остается неактивной, пока у каждой переменной с одиночным выбором нет значения. Переменные Boolean toggle и Multi-select ее не блокируют, даже если ничего не выбрано. Переход на другой пресет стирает выбор, сделанный для старого.

Как изменить ответы позже

В Chat Settings (настройки чата) раздел Prompt Preset (пресет промпта) показывает кнопку с карандашом Edit preset variables (изменить переменные пресета), когда у выбранного пресета есть переменные. Нажмите ее, чтобы снова открыть окно с текущим выбором.

Имена, которые не являются переменными

Сначала Marinara разбирает встроенные макросы, например {{user}} и {{char}}. Затем сверяет любое другое {{NAME}} (буквы, цифры и знаки подчеркивания) с вашими переменными пресета. Если совпадения нет, она проверяет переменные самого чата из раздела Chat Variables (переменные чата) в Chat Settings. Если имя одно и то же, побеждает переменная пресета. Если такого имени нет ни там, ни там, текст остается точно таким, как написан, без ошибки. См. Макросы промптов.

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

Значение варианта может содержать блок решения {{#if decision:"..."}}, как любой текст промпта. Запрашиваются только варианты, выбранные чатом, и они учитываются в Decision statements per turn (утверждения решений за один ответ). Для переменной Random Pick запрашивается каждый вариант набора, ведь выпасть может любой. См. Вопрос к модели решений.

Значение переменной попадает туда, где стоит ее {{name}}. Если решение меняет это значение в начале пресета, можно потерять большую часть повторного использования кеша промпта у сервиса. Часто меняющееся содержимое ставьте позже. См. Блоки решений и кеширование промпта.

Приветствия

Переменные пресета раскрываются и в приветствиях персонажей, в том числе для вариантов, подтвержденных после создания приветствия. Исходное приветствие остается доступным для редактирования со всеми макросами.

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