Допустим, Анна регулярно готовит объявления о встречах книжного клуба. От раза к разу меняются название книги, дата, время и место, а требования к самому черновику повторяются: нужно проверить полноту сведений, ничего не додумывать и уложиться в три коротких предложения. Для разового текста проще вставить правила прямо в сообщение, но при регулярной работе удобнее вынести постоянную инструкцию в собственный пресет в разделе Workspace → Models, а в чате передавать только новые факты (документация о пресетах).
Пресет в Open WebUI — это сохранённая конфигурация поверх уже подключённой базовой модели: он хранит имя, идентификатор, выбранную основу и системную инструкцию в базе приложения, но не обучает модель заново и не меняет её веса (как хранится пресет). В этом уроке вы соберёте такой пресет на своей доступной модели, проверите сохранение карточки и протестируете ассистента в двух отдельных чатах: с полным набором данных и с намеренно пропущенным временем встречи. Анна — вымышленный пример. Шаги составлены по коду Open WebUI v0.12.3 и отдельно сохранённой официальной документации; сохранение пресета и ответы модели мы не проверяли. Вы проверите их на своей установке.
Разделите постоянные правила ассистента и сведения о встрече
Прежде чем открывать форму создания пресета, разделим содержательные входы задачи на четыре части. Это наша схема подготовки и проверки, а не четыре обязательных поля интерфейса Open WebUI:
| Часть задачи | Что содержит в примере Анны | Где живёт в Open WebUI |
|---|---|---|
| Постоянное правило | Проверить наличие книги, даты, времени и места; использовать только переданные сведения; при пропуске сначала задать вопрос; при полных данных написать три коротких предложения по-русски | Сохраняется один раз в поле System Prompt карточки пресета (сохранение params.system) |
| Текущие факты | Название книги, дата, время и место конкретной встречи | Передаются каждый раз в обычном сообщении чата (формирование списка messages) |
| Короткая справка | Постоянная деталь о площадке: Вход в читальный зал — со двора. | Передаётся текстом в том же сообщении чата вместе с фактами |
| Результат | Готовый черновик из трёх предложений либо уточняющий вопрос о недостающем сведении | Отдельный ответ модели в чате, который человек сверяет с условиями |
Короткая справка про вход со двора нужна для того, чтобы это условие попало в итоговый черновик объявления. При этом сама справка не содержит времени встречи и не может восполнить пропуск, если время забыли указать в фактах. Сведения, которые вы отправляете в обычном сообщении чата, уходят в диалог и автоматически не переписывают сохранённый System Prompt пресета. Если нужно освежить общее устройство карточек в рабочей области, вернитесь к обзору о том, как соотносятся модель и пресет ассистента.
Так как и факты встречи, и одна фраза справки занимают всего несколько строк, передавать их простым текстом в сообщении — минимальный достаточный маршрут для этой задачи. Прикреплять файлы к чату, подключать коллекции Knowledge, навыки Skills или внешние инструменты здесь не требуется (необязательные поля пресета).
Перед началом практики проверьте рабочие условия:
- Войдите в свою учётную запись Open WebUI. Для практики нужна уже работающая разрешённая модель через серверное подключение OpenAI-compatible или Ollama и обычный одиночный чат. Названия элементов приведены для Open WebUI
v0.12.3; в другой версии, локализации или при других правах подписи могут отличаться. - В стандартном серверном маршруте Open WebUI подставляет выбранную базовую модель в запрос и применяет сохранённый
System Prompt(применение инструкции через OpenAI-compatible подключение, применение инструкции через Ollama). При этом сам пресет не заменяет модельный сервер и не гарантирует, что модель обязательно выполнит все правила: точность ответа и готовность задать уточняющий вопрос зависят от самой базовой модели, шаблона чата на сервере и полного контекста беседы (от чего зависит соблюдение инструкции). Короткая инструкция и тестовые сообщения должны помещаться в контекст выбранной вами модели. - Используйте только вымышленные несекретные сведения. Карточка пресета сохраняется в базе данных Open WebUI, а текст инструкции и сообщений обрабатывается самим приложением и выбранной моделью; если ваша базовая модель работает через внешнего провайдера, отправленные тексты передаются этому провайдеру (границы хранения данных, доступ операторов и внешних провайдеров). Стоимость запросов, сроки хранения данных у провайдеров и доступ администраторов инфраструктуры зависят от вашей конкретной установки и здесь не проверялись.
Заполните карточку пресета и системную инструкцию
Перенесём постоянные правила в карточку собственного пресета. Для этого не обязательно быть администратором всей системы: обычному подтверждённому пользователю достаточно разрешения workspace.models (доступ к разделу моделей, права на создание пресета). При этом видимость вкладки Models, право создать новую запись и доступ на чтение выбранной базовой модели проверяются отдельно (доступ к пресету и базовой модели). Если раздел Workspace → Models или кнопка создания у вас отсутствуют, не пытайтесь обходить ограничения и не меняйте чужие настройки — обратитесь к администратору вашей установки или запишите это как препятствие для практики.
Откройте Workspace → Models и нажмите кнопку Create в шапке рабочей области (создание и открытие пресета). В открывшемся редакторе заполните основные поля карточки (обязательные поля карточки):
Model Name(отображаемое имя пресета):Редактор объявлений клубаModel ID(внутренний идентификатор записи без пробелов; предлагаем кандидата):redaktor-obyavleniy-klubaИмя и идентификатор выполняют разные роли: форма требует непустойModel IDбез пробельных символов и проверяет, не занят ли он другой моделью в вашей установке (проверка свободного идентификатора, ограничение на пробельные символы). Мы не знаем заранее, свободен ли кандидатredaktor-obyavleniy-klubaу вас. Если такой идентификатор уже существует, не перезаписывайте чужую или старую запись — выберите другой свободный идентификатор без пробелов (например, добавьте суффикс-2, если он свободен) и запишите фактическийModel ID.Description(краткая сводка в списке выбора моделей, сама по себе не управляет генерацией — назначение описания):Готовит черновики объявлений книжного клуба по фактам встречи и короткой справке; просит уточнить недостающее.Base Model (From)(выбор базовой модели): Выберите из выпадающего списка реально доступную и работающую в вашей установке модель. Не вписывайте выдуманные названия провайдерских моделей; сразу запишите для себя фактическое имя выбранной базовой модели и её подключение.
Теперь найдите поле System Prompt в карточке редактора пресета (не путайте его с полем ввода сообщения в обычном чате). Open WebUI не требует специального синтаксиса для системных инструкций — здесь работает обычный текст (формат системной инструкции). Скопируйте и вставьте в System Prompt точную шестистрочную инструкцию первой редакции:
В новой собственной карточке не выбирайте Knowledge, Skills, Tools и не прикрепляйте файлы (сохранение дополнительных привязок). Настройки Access оставьте как есть; числовые значения в Advanced Params для этой практики не задавайте. Навык из урока о Skills, инструкциях и файлах сюда подключать не нужно, чтобы не смешивать его правила с нашей системной инструкцией.
Сохраните пресет и заново откройте его карточку
Заполненная экранная форма ещё не означает, что конфигурация сохранена в базе. Нажмите кнопку Save & Create в нижней части редактора: при успешном создании записи интерфейс вызывает сохранение модели и возвращает вас к списку Workspace → Models (кнопки сохранения, создание записи и возврат к списку).
Даже если появилось всплывающее уведомление об успехе, проверьте сохранённую запись глазами. В списке Workspace → Models у каждой карточки есть два разных элемента управления (открытие карточки и нового чата):
- нажатие на имя пресета открывает карточку в редакторе, если у вас есть право её изменять;
- нажатие на стрелку рядом с именем (
Try in chat) открывает новый чат с этим пресетом.
Сейчас нажмите именно на имя Редактор объявлений клуба, чтобы заново открыть редактор. Сверьте пять позиций с тем, что вы вводили: отображаемое имя, фактический Model ID (у сохранённой записи это поле в редакторе заблокировано), выбранную базовую модель в Base Model (From), текст описания и все шесть строк System Prompt без обрывов (идентификатор сохранённой карточки).
Если какое-то поле не совпало или сохранение вернуло ошибку, запишите это и исправьте свою карточку до запуска чатов. Пока поля не совпали, ответы чатов нельзя оценивать как проверку подготовленной инструкции. Сохранение карточки и качество ответа проверяйте отдельно.
Проверьте объявление с полными данными в новом чате
Когда карточка проверена, переходим к первому тестовому запуску — назовём его чатом A. Перед отправкой коротко зафиксируйте для себя исходную точку: версию вашей установки Open WebUI, имя и фактический Model ID пресета, выбранную базовую модель с её подключением и то, что сохранена первая редакция инструкции. Заодно отметьте известные вам дополнительные функции, если они включены в вашем профиле или на сервере (например, память Memory или активные фильтры), и не меняйте эти условия между первым и вторым тестовыми чатами (дополнительные инструкции и контекст). Искать внутренние идентификаторы чатов не нужно; если какая-то настройка сервера вам не видна, просто отметьте это обычными словами.
Вернитесь к списку Workspace → Models и нажмите на стрелку рядом с именем вашего пресета Редактор объявлений клуба, чтобы открыть новый одиночный чат. В верхней части открывшегося окна убедитесь, что выбран именно ваш пресет, а не базовая модель напрямую. Если вам нужно напомнить себе базовые действия в окне диалога, посмотрите урок про первый чат и варианты ответа.
Скопируйте и отправьте в чат A следующее сообщение с полным набором фактов и короткой справкой:
Справка уже передана текстом сообщения: для этого упражнения читать файл или вызывать инструмент не требуется. Это не гарантирует, что на вашей установке отключены все дополнительные функции. Получив реальный ответ вашей модели, не полагайтесь на общее впечатление аккуратности — проверьте черновик по четырём конкретным критериям:
- Форма и язык: текст написан по-русски и состоит ровно из трёх коротких предложений без заголовка и без маркированного или нумерованного списка.
- Сохранение всех пяти сведений: в объявлении по смыслу сохранены книга («Капитанская дочка»), дата (12 ноября), время (19:00), место (читальный зал) и деталь из справки (вход со двора). Дословного совпадения каждой фразы не требуется.
- Отсутствие выдуманных деталей: модель не добавила от себя год, день недели, улицу или номер дома, стоимость, контакты, условия регистрации или пересказ сюжета книги.
- Граница действия: в ответе дан только черновик текста, без утверждений о том, что объявление уже опубликовано или разослано.
Запишите для себя фактический ответ модели (или текст ошибки, если запрос не прошёл) и отдельно отметьте, выполнены ли критерии по фактам, справке и форме.
Проверьте запрос без времени в отдельном чате
Удачный черновик в чате A показывает только то, что модель справилась с полным набором входных данных. Он ещё не доказывает, что ассистент остановится, когда в запросе не хватает обязательного факта. Чтобы проверить правило остановки, нужно убрать время встречи и обязательно открыть отдельный новый чат — назовём его чатом B.
Почему нельзя отправить второй запрос в продолжение чата A? В рамках одного диалога Open WebUI передаёт модели предыдущие сообщения и ответы (передача сообщений диалога). Если продолжить чат A, время 19:00 останется в истории беседы, и модель сможет подставить его из прошлого хода вместо того, чтобы заметить пропуск.
Откройте новый независимый чат B (например, снова через стрелку возле пресета Редактор объявлений клуба в списке моделей или кнопкой нового чата с проверкой того, что в селекторе выбран тот же пресет). Базовая модель, подключение, редакция System Prompt и остальные настройки должны остаться точно такими же, как в чате A.
Скопируйте и отправьте в чат B сообщение, из которого удалена только строка со временем встречи:
Из сообщения B удалена только строка Время: 19:00.. Значения времени нет и в остальных подготовленных входах: системной инструкции, имени и Model ID пресета, описании и справке Вход в читальный зал — со двора.. Отдельный новый чат не переносит историю A; известные память, фильтры и прочие настройки по-прежнему учитывайте при оценке ответа.
Оцените полученный в чате B ответ по трём критериям:
- Вопрос до черновика: модель сначала спрашивает, в какое время состоится встреча, и не выдаёт готовое объявление.
- Отказ от догадок: модель не придумывает
19:00или любое другое время от себя. - Отказ от черновика с заглушкой: модель не пишет законченный текст объявления со скобками или пропуском вроде
[укажите время]вместо вопроса.
Запишите реальный ответ модели в чате B. Если модель вместо вопроса всё равно составила объявление — зафиксируйте это как фактическое наблюдение, не пытаясь подогнать условие задачи под ответ. Даже если оба чата A и B сразу прошли по всем критериям, одна пара проверок не гарантирует безошибочной работы и одинаковых формулировок в будущем; а если модель нарушила правило, один такой сбой не доказывает поломку самого Open WebUI.
Если модель не спросила время, уточните правило
Если A и B сразу удовлетворили критериям, менять инструкцию не нужно. Если B спросил время, а в A нарушены факты или форма, запишите невыполненный критерий A: правка ниже относится к другому сбою.
Правка ниже нужна только в том случае, если в чате B модель нарушила правило: написала готовое объявление без времени, вставила заглушку или придумала час встречи. Прежде чем менять System Prompt, проверьте сохранение карточки, выбор пресета и независимость чата B:
- Убедитесь, что в чате B действительно был выбран ваш пресет
Редактор объявлений клуба, а не базовая модель напрямую. - Проверьте, что чат B был новым и отдельным, а не продолжением диалога A.
- Заново откройте карточку пресета в
Workspace→Modelsи проверьте, сохранились ли в ней все шесть строк первой редакцииSystem Promptи нужная базовая модель.
Если вы обнаружили ошибку в выборе пресета, сохранении карточки или независимости чата, сначала исправьте именно её и повторите проверку. Если же карточка сохранена и выбрана верно, чат B был чистым, но модель всё равно написала объявление без времени, уточним формулировку правила остановки.
Откройте свой пресет Редактор объявлений клуба на редактирование в Workspace → Models (для этого требуется право на запись собственной карточки; заблокированный Model ID, настройки доступа Access и базовую модель не трогаем — право на изменение пресета). Найдите в поле System Prompt четвёртую строку первой редакции:
Если хотя бы одного обязательного сведения нет, сначала задай уточняющий вопрос и пока не составляй объявление.
Замените только эту четвёртую строку на более жёсткую формулировку, оставив остальные пять строк System Prompt без изменений:
Нажмите кнопку Save & Update (в режиме редактирования она становится активной, когда конфигурация изменена). После возврата к списку моделей снова откройте карточку по имени и убедитесь, что обновлённая шестистрочная инструкция второй редакции полностью сохранилась.
После любой правки инструкции нельзя проверять только неудавшийся запрос B и нельзя дописывать время в текст сообщения ради красивого ответа. Откройте два новых независимых чата с тем же пресетом, той же базовой моделью, тем же подключением и теми же настройками. Отправьте в первый новый чат прежнее неизменное сообщение A (чтобы убедиться, что уточнение не сломало генерацию по полным данным), а во второй новый чат — прежнее неизменное сообщение B без времени. Если после одной правки правило снова не выполнено, остановитесь и запишите, что именно произошло при сохранённых условиях. Этот повторный сбой не устанавливает его причину и не доказывает, что базовая модель всегда неспособна соблюдать правило (ограничения соблюдения инструкции).
По итогам всей практики соберите для себя короткую заметку из пяти пунктов:
- Среда и карточка: дата проверки, версия Open WebUI, имя и фактический
Model IDпресета, выбранная базовая модель с подключением, сохранённая редакция инструкции и известные дополнительные настройки (например, память или фильтры). - Проверка сохранения: совпали ли имя,
Model ID, базовая модель, описание и все шесть строкSystem Promptпосле повторного открытия карточки. - Запрос A (полные данные): реальный ответ модели и отдельная оценка — сохранены ли все пять сведений вместе со справкой о входе со двора, выдержаны ли три предложения без списков и нет ли выдуманных деталей.
- Запрос B (без времени в отдельном чате): реальный ответ модели и оценка — задала ли модель вопрос о времени до написания черновика без догадок и заглушек.
- Уточнение правила (если проводилось) или преграды: какая строка менялась, что показали повторные запуски тех же сообщений A и B в двух новых чатах, либо какая ошибка прав доступа или подключения помешала выполнить шаг.
Такой порядок разделяет сохранённую настройку и проверенный результат: постоянная инструкция живёт в карточке пресета, факты и короткая справка приходят в сообщении, а пригодность каждого черновика оценивает человек по чётким критериям. Возьмите одну свою регулярную несекретную задачу — например, короткое напоминание о созвоне или аннотацию к заметке, — выпишите для неё обязательные входные сведения и повторите этот же цикл с полным и неполным запросом в двух отдельных чатах, используя ответы ассистента в работе только после ручной сверки фактов.
Перед следующей правкой разберите, как сравнить версии ассистента и вернуть настройки, что переносится в файле и как проверить доступ.

