Фоновые модели, заголовки и дополнительные расходы

Разберём, какие задачи Open WebUI выполняет помимо ответа, как выбрать для них модель и отключить ненужную генерацию. Проверим настройки и источники расходов.

После урока вы сможете

  • Различать основной ответ и служебные запросы
  • Выбирать модель для фоновых задач и нужные функции
  • Проверять сохранённые настройки и понимать границы проверки расходов

Проверяемый результат: Вы знаете, какая модель назначена для служебных задач, какие функции включены и как проверить их работу в новом чате.

Когда вы отправляете сообщение в чат и получаете ответ, работа Open WebUI может не ограничиться этим единственным обращением. Рядом с основным диалогом интерфейс умеет подбирать название для боковой панели, назначать теги и предлагать варианты продолжения беседы. На экране всё выглядит как единое действие, но за этими удобствами стоят отдельные служебные задачи.

По умолчанию такая работа достаётся той же модели, с которой вы общаетесь в чате. Если основная модель работает через платный API или требует заметных вычислительных ресурсов, сопутствующие запросы тоже расходуют токены и время, а часть текста беседы уходит в модель для подготовки служебного результата. При этом в настройках легко принять подписи Local и External за гарантию приватности, значение Current Model посчитать отключением фоновых функций, а появившееся в списке чатов название воспринять как доказательство оплаченного вызова.

Для упражнения достаточно одного обычного сохраняемого текстового чата и уже работающей основной модели. Скачивать новые модели, регистрировать отдельный аккаунт, перезапускать контейнер или редактировать файлы окружения не понадобится. Определим, какая модель получает служебные запросы и контекст, оставим нужные функции и проверим выбранный режим на запросе «Составь список из трёх бытовых дел на вечер без лишних подробностей.»

Что Open WebUI делает помимо ответа

Представим обычный сохраняемый чат, в который вы отправляете первое сообщение: «Составь список из трёх бытовых дел на вечер без лишних подробностей.» Основная модель возвращает список в окне диалога. Рядом могут появиться заголовок беседы и кнопки с подсказками для следующего вопроса; иногда добавляются тематические теги.

Как описано в руководстве по Task Models, для подобных задач Open WebUI может выполнять отдельные обращения к языковой модели. Слово «фоновые» здесь обозначает служебную роль задачи, а не фиксированный момент запуска или самостоятельного агента, живущего по расписанию. У каждого действия свои условия:

  • Генерация заголовка и тегов в стандартном сценарии браузера запрашивается после завершения первого обмена репликами в новом сохраняемом чате, если эти функции разрешены в настройках. Для временного чата (Temporary Chat) генерация заголовка и тегов в этом сценарии не запрашивается.
  • Подсказки продолжения (Follow-up) могут запрашиваться после полученного ответа, чтобы предложить готовые формулировки для следующей реплики.
  • Автодополнение ввода (Autocomplete) и переформулирование поисковых запросов (Query Generation) работают до ответа модели: автодополнение при явно включённой функции может обращаться к модели прямо во время набора текста в поле ввода, а подготовка поискового запроса срабатывает на этапе поиска в интернете или извлечения данных из документов. В упражнение мы их не включаем.

Система не отправляет строго фиксированное число запросов на каждое сообщение. Всё зависит от того, какие функции включены и какой шаг диалога сейчас происходит. В официальном FAQ Open WebUI отмечено, что несколько API-запросов на одно сообщение в чате часто связаны именно с генерацией заголовка, тегов и подсказок продолжения.

Видимый заголовок в боковой панели ещё не означает вызов модели. Если генерация названий выключена или не дала заголовок, интерфейс может подставить в название чата текст вашего сообщения. Во втором случае обращение к модели уже могло состояться. Поэтому само появление названия в списке бесед ещё не доказывает, что фоновый запрос состоялся.

Дополнительные вызовы по-разному влияют на ресурсы. На внешнем коммерческом API служебные обращения могут добавлять расход токенов к вашему счёту, а при локальном запуске они занимают вычислительные ресурсы компьютера и время отклика. Экономию, скорость или стоимость нельзя свести к универсальной цифре: расход зависит от тарифов конкретного провайдера, выбранной модели и объёма переданного текста. Выбор модели определяет, куда уйдут эти служебные запросы.

Какая модель получает служебные задачи

Назначение моделей для фоновой работы находится в панели администратора: откройте Settings → Admin → Interface и найдите блок Tasks. Здесь есть два поля выбора модели: Local Task Model и External Task Model.

Нужное поле выбирается по внутреннему типу подключения вашей основной модели чата. Его название не задаёт место обработки данных. Когда основная модель отмечена в системе как локальная (Local), Open WebUI смотрит на поле Local Task Model. При другом типе используется поле External Task Model. Здесь рассматриваем обычные административные подключения; личные подключения из браузера в это упражнение не входят.

Проверим источник текущей модели, чтобы выбрать нужное поле:

  1. Для чат-модели, с которой вы выполняете упражнение, откройте Settings → Admin → Connections и через Configure (шестерёнку) откройте её источник.
  2. В текущем окне настроек строка Connection Type показывает Local или External.
  3. Не меняя её, вернитесь в Settings → Admin → Interface → Tasks и настройте одноимённое поле: Local Task Model или External Task Model.

Надпись относится к типу подключения основной чат-модели, а фактический адрес выбранной фоновой модели проверяется отдельно. В оба выпадающих списка попадают доступные в системе модели:

  • В поле External Task Model можно выбрать локальную модель, и тогда служебные задачи внешней чат-модели будут обрабатываться локально.
  • В поле Local Task Model можно указать модель внешнего облачного провайдера.
  • Даже если сервис запущен на вашем оборудовании через OpenAI-совместимый API, его подключение может иметь тип External, пока для него явно не задан другой тип.

Фоновая модель получает служебный запрос, составленный на основе сообщений текущего диалога. Если основная модель работает локально, но в Local Task Model выбрана модель внешнего API, фрагмент вашей беседы для генерации заголовка или подсказок отправится на этот внешний адрес. Поэтому сопоставляйте выбранный в Tasks идентификатор модели с её реальным соединением точно так же, как мы разбирали в уроке про управление списком моделей и их источниками.

По умолчанию здесь выбрано Current Model. Для задач, использующих эти поля выбора, оно означает работу той же модели, которая сейчас выбрана в окне чата. Выбор Current Model не выключает генерацию заголовков, тегов или подсказок. К такому же результату приводит ситуация, когда в настройках задач сохранён идентификатор модели, которая позже исчезла из списка доступных: при отсутствии назначенного ID функция выбора возвращает задачу текущей модели чата. Этот возврат установлен для отсутствующего в реестре ID. Он не даёт оснований рассчитывать на автоматический повтор через основную модель при сетевой ошибке, отказе авторизации или другой ошибке API.

Оставим нужные функции и назначим им модель

Выберем рабочий режим для упражнения. Допустим, в обычном сохраняемом чате нам нужен только автоматический заголовок, а теги и подсказки продолжения не требуются. Назначение фоновой модели и включение самих функций работают независимо: поля в разделе Tasks решают, кто выполняет служебную работу, а переключатели в отдельном подразделе Generation определяют, какие именно задачи запускаются.

Перед тем как менять переключатели, определимся с областью действия настроек:

  • Раздел Settings → Admin → Interface задаёт правила для всего сервера и сразу влияет на всех его пользователей. Меняйте переключатели здесь только тогда, когда выбранный режим подходит для всего экземпляра Open WebUI.
  • Раздел личных настроек Settings → Interface управляет предпочтениями только вашей учётной записи. Если на общем сервере вы хотите убрать теги и подсказки только у себя, переключите соответствующие опции в личном разделе Interface, а административные переключатели оставьте включёнными. Личная настройка не может включить функцию, которую администратор отключил на уровне сервера. При необходимости администратор может снова включить переключатель и сохранить изменение.

Если этот режим подходит всем пользователям сервера, настроим его в основном примере и проверим личное предпочтение для заголовков:

  1. В разделе Settings → Admin → Interface → Tasks в подходящем поле (Local Task Model или External Task Model, которое мы определили на прошлом шаге) выберите уже доступную и рабочую модель, подходящую для коротких служебных ответов. Основную модель в самом чате это не заменит. Если отдельной модели на сервере нет, оставьте Current Model: для управления функциями скачивать новую модель не нужно.
  2. В отдельном подразделе Generation страницы Settings → Admin → Interface оставьте включённым переключатель Title Generation, а Tags Generation и Follow Up Generation переведите в выключенное положение (либо отключите генерацию тегов и подсказок в личных Settings → Interface, если не хотите менять общую политику сервера).
  3. Чтобы заголовок действительно запрашивался в браузере, проверьте и личный раздел Settings → Interface: персональная опция автоматической генерации названий чатов тоже должна быть включена, так как одного серверного разрешения недостаточно, если пользователь отключил заголовки для себя.

На этой административной странице есть и другие настройки, которые мы не трогаем в упражнении. Кнопка Configure в строке Task Model Parameters задаёт отдельные параметры генерации для фоновых задач (они работают отдельно от параметров самого чата и общих настроек моделей по умолчанию), а переключатели для автодополнения и поисковых запросов управляют только своими сценариями. Отключение заголовков, тегов и подсказок убирает именно эти три вида обращений, но не блокирует работу поиска, инструментов или других разделов интерфейса, таких как генерация запросов для изображений или сжатие контекста в настройках чата.

Сохраним режим и проверим новый чат

Сначала сохраним изменения на том уровне, где вы их вносили. В основном сценарии нажмите кнопку Save на странице Settings → Admin → Interface, затем закройте и заново откройте эту же страницу настроек. Так мы убедимся, что выбранная модель и положение переключателей записались в конфигурацию сервера. Если вы меняли личные предпочтения, точно так же сохраните и повторно откройте личный раздел Settings → Interface. Перезапускать контейнер или редактировать конфигурационные файлы не требуется.

Проверим выбранный режим в новом чате:

  1. Создайте новый обычный сохраняемый чат (не Temporary Chat), оставив в нём вашу прежнюю основную модель.
  2. Отправьте точный запрос: «Составь список из трёх бытовых дел на вечер без лишних подробностей.» и дождитесь, пока модель полностью завершит ответ.
  3. Посмотрите на интерфейс вокруг ответа: при выключенных тегах и подсказках под сообщением не должны появляться кнопки продолжения и метки тегов, а в боковой панели при включённых серверной и личной опциях ожидается название нового чата.

Настройки, получатель запроса и расходы требуют разных подтверждений:

  • Что показывает экран чата. Отсутствие подсказок продолжения и тегов после ответа соответствует выбранному режиму, но само по себе не доказывает, что настройки применились: задача могла не дать результата и по другой причине. При этом название в боковой панели требует осторожности: даже при включённой генерации заголовков модель может не вернуть подходящий ответ, и тогда Open WebUI подставит в заголовок первые слова вашего сообщения про список бытовых дел. Поэтому сам текст названия или манера ответа модели не доказывают, какой именно маршрут сработал.
  • Как проверить получателя запроса. Если вам нужно точно убедиться, какая модель обработала фоновую задачу, сопоставьте время отправки сообщения и идентификатор модели в уже доступных журналах вашего сервера моделей, прокси или в истории запросов провайдера. Специально включать режим отладки, перехватывать сетевой трафик или настраивать логирование содержимого чатов для этого урока не нужно.
  • Как проверить расходы. Вид боковой панели и даже количество запросов не заменяют финансовую сводку. Фактическое списание токенов и денег при работе с платным API проверяется только в статистике использования (Usage / Billing) личного кабинета вашего провайдера. Отключение соответствующих переключателей в Generation прекращает эти виды генерации. Другие функции или расширения могут по-прежнему обращаться к внешним сервисам.

После упражнения у вас будет выбран исполнитель служебных задач и сохранён режим нужных функций. Вы также сможете отличить ожидаемое поведение интерфейса от подтверждённого запроса и расхода. Во всех этих случаях фоновая модель лишь помогает оформлять диалог вокруг обычного ответа. В следующем уроке мы перейдём к теме «Подключение внешнего агента вместо обычной модели» и посмотрим, как меняется работа чата, когда сам основной ответ формирует не языковая модель напрямую, а внешняя агентная система.

Материалы урока

Отметить прохождение

Отметьте урок после того, как получили проверяемый результат из практической части.