Переменные пресета
Переменная пресета – это выбор с подписью, встроенный в пресет промпта. Автор пресета описывает ее один раз, а тот, кто пользуется пресетом, выбирает варианты, когда назначает его чату. С ее помощью один пресет может вести себя по-разному, и текст промпта править не нужно.
Вы даете переменной имя, пишете вопрос и перечисляете варианты. Затем пишете имя в двойных фигурных скобках, например {{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, пользователь выбирает набор, и каждый ответ берет из него один вариант. |
Добавление переменной пресета
- Откройте панель Presets (пресеты) и нажмите на пресет, чтобы открыть Preset Editor (редактор пресетов).
- Перейдите на вкладку Sections (разделы) и прокрутите вниз до панели Preset Variables (переменные пресета).
- Нажмите Add Variable (добавить переменную). Появится карточка новой переменной. Нажмите на нее, чтобы развернуть.
- Задайте Variable Name (имя переменной). Поле оставляет только буквы, цифры и знаки подчеркивания. Это имя вы пишете в фигурных скобках.
- Заполните Question (shown to user) (вопрос, который видит пользователь). Пользователь читает его, когда выбирает.
- Отредактируйте список Options (варианты). У каждого варианта есть Label (подпись), которую видит пользователь, и Value (значение) – текст, который вставляется в промпт. Пустое значение не вставляет ничего.
- В разделе Presentation (вид) выберите Auto, кнопочный вид (Radios или Checkboxes) или компактный (Dropdown или Listbox). Включите Alphabetical option display (варианты по алфавиту), чтобы отсортировать варианты по подписи.
- Нажмите <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).
- Выберите значение для каждой переменной.
- Нажмите Confirm Choices (подтвердить выбор).
Другие кнопки:
- Save as default (сохранить как значение по умолчанию) записывает ваш выбор в пресет, чтобы в следующий раз он подставился сам.
- Skip (пропустить) закрывает окно без сохранения.
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}}. Если решение меняет это значение в начале пресета, можно потерять большую часть повторного использования кеша промпта у сервиса. Часто меняющееся содержимое ставьте позже. См. Блоки решений и кеширование промпта.
Приветствия
Переменные пресета раскрываются и в приветствиях персонажей, в том числе для вариантов, подтвержденных после создания приветствия. Исходное приветствие остается доступным для редактирования со всеми макросами.
Смежные руководства
- Редактор пресетов и управление промптами
- Макросы промптов