Если языковая модель уже работает на вашем компьютере или на отдельном сервере в локальной сети, подключим её к существующему Open WebUI. Для этого включим у сервера модели программный интерфейс (API), совместимый со стандартом OpenAI, и добавим его адрес в знакомом разделе подключений. Переустанавливать Open WebUI или менять способ его запуска не требуется.
Для этого подходят LM Studio, llama-server из пакета llama.cpp и серверный движок vLLM. Все три подключаются через OpenAI-совместимое соединение, а не через настройки Ollama. Ваш способ запуска Open WebUI сохраняется: контейнер Docker, проект Docker Compose, локальная серверная служба или настольный клиент.
Под локальным сервером здесь понимается точка подключения, которой вы управляете на своём оборудовании или на отдельном частном хосте с ускорителем. Поддержку вызова инструментов, мультимодальности и других дополнительных функций у каждой модели это не гарантирует.
Дальше мы выберем один инструмент под свою задачу, подготовим сервер, определим правильный сетевой адрес со стороны серверной части Open WebUI и проверим работу подключения коротким учебным вопросом.
Выберем один сервер модели
Устанавливать и запускать LM Studio, llama.cpp и vLLM одновременно не нужно. В этом упражнении подключим к Open WebUI одну уже работающую локальную модель и получим от неё законченный ответ. Выберите вариант под свою задачу:
- LM Studio пригодится, если вы хотите искать, скачивать и запускать модели через наглядный графический интерфейс, а локальный API включать одной кнопкой.
llama-server(llama.cpp) подойдёт, если у вас уже есть собранный исполняемый файл и готовая модель в формате GGUF, которую удобно запустить одной явной командой в терминале.- vLLM рассчитан на уже подготовленную совместимую среду Linux и задачи серверного обслуживания моделей (serving).
Это варианты для выбора маршрута в уроке, а не рейтинг скорости или полный список возможностей программ. Например, у LM Studio тоже есть консольные инструменты и режим работы без графического окна, а llama.cpp умеет задействовать графические ускорители.
Основным сквозным примером урока станет LM Studio. Если вы планируете идти по этому маршруту, проверьте системные требования LM Studio: актуальная настольная версия работает на Mac с Apple Silicon и macOS 14.0 или новее (поддержка Intel Mac не заявлена), Windows (x64 с поддержкой AVX2 или ARM) и Linux (x64 или ARM64, AppImage).
Если на компьютере, который запускает модель (компьютере инференса), уже настроен llama-server или подготовлено окружение vLLM в Linux, пропустите настройку LM Studio. Сверьтесь с правилами выбора сетевого адреса и перейдите к памяткам команд в разделе «Добавим выбранное подключение».
Подготовим API в LM Studio
Все действия этого раздела выполняются в программе LM Studio на том компьютере, где непосредственно запускается языковая модель. Открывать LM Studio внутри контейнера Open WebUI или переносить её внутрь служебной среды Ubuntu WSL2, если само приложение установлено в Windows, не нужно.
Сначала убедимся, что сама модель способна отвечать локально:
- Откройте вкладку поиска Discover в LM Studio и скачайте модель, которая подходит под объём памяти и возможности вашего оборудования.
- Перейдите в раздел Chat, выберите скачанную модель в верхнем загрузчике, дождитесь окончания загрузки в память и отправьте любое короткое сообщение. Ответ в окне LM Studio подтверждает, что модель загрузилась и отвечает локально. Названия моделей из других программ (например, короткие теги из Ollama) здесь не подойдут.
Теперь включим API-сервер. Перейдите на вкладку Developer. Подписи кнопок могут немного отличаться в зависимости от версии и перевода интерфейса. В настройках сервера (Server Settings) проверьте поле порта (Server Port): для этого урока мы явно выбираем порт 1234, если он свободен на вашем компьютере.
Если вы планируете обращаться к LM Studio из контейнера или с другого устройства в своей сети, заранее включите проверку подлинности. Начиная с версии 0.4.0, локальный сервер LM Studio поддерживает токены доступа:
- Включите переключатель Require Authentication.
- Нажмите Manage Tokens, затем Create Token, задайте нужные разрешения и создайте секретный токен.
- Сразу скопируйте полученное значение в надёжное место. Это внутренний ключ вашего локального сервера LM Studio, а не платная подписка или ключ платформы OpenAI.
После этого запустите сервер кнопкой Start server.
Остаётся узнать точный идентификатор модели, который ожидает программный интерфейс. В режиме совместимости с OpenAI LM Studio отдаёт список доступных идентификаторов по запросу GET /v1/models и показывает их в интерфейсе разработчика. Скопируйте оттуда точную строку идентификатора (id), а не произвольное название файла на диске.
При включённой автоматической подгрузке по запросу (JIT loading) список /v1/models может перечислять все скачанные в LM Studio модели, даже если они прямо сейчас не загружены в оперативную память или видеопамять. Поэтому различайте три состояния: модель скачана на диск, модель загружена в память сервера и модель реально возвращает ответ. Само присутствие имени в списке ещё не означает, что модель готова мгновенно ответить.
Определим адрес со стороны backend WebUI
Чтобы выбрать адрес сервера, проследим путь запроса:
Браузер (или окно настольного приложения) → серверная часть (backend) Open WebUI → API локального сервера модели → загруженная модель.
Сетевой запрос к порту 1234 отправляет не ваша вкладка браузера и не графическое окно Open WebUI Desktop, а именно серверная часть Open WebUI. Браузер или настольный клиент может быть открыт на компьютере с LM Studio, а серверная часть Open WebUI работать в контейнере или на другой машине. Тогда адрес 127.0.0.1 (localhost) для неё указывает внутрь контейнера или удалённого хоста, а не на компьютер с моделью.
Выберем правильный базовый адрес (Base URL) для порта 1234 по расположению серверной части Open WebUI:
| Где работает серверная часть (backend) Open WebUI | Какой Base URL указывать в настройках | Обязательное условие для работы маршрута |
|---|---|---|
| Нативно (без Docker) на том же самом компьютере, где запущена LM Studio | http://127.0.0.1:1234/v1 | Оба процесса работают в одной системе на одном хосте, сервер LM Studio слушает локальный интерфейс (loopback). |
| В контейнере под управлением Docker Desktop (Windows или macOS), а LM Studio на этом же хосте | http://host.docker.internal:1234/v1 | Специальное имя поддерживается средой Docker Desktop, а сам порт сервера модели реально достижим для контейнера; при выходе за пределы loopback включите токен и ограничения частной сети. |
| В контейнере Docker Engine на Linux или на отдельном компьютере в частной сети | http://<фактический-доступный-IP>:1234/v1 | Замените обозначение в угловых скобках реальным частным IP-адресом компьютера с LM Studio. Сервер должен слушать доступный сетевой интерфейс, а маршрут и межсетевой экран должны разрешать доступ от хоста Open WebUI. |
- Особенности контейнеров и
host.docker.internal. В сетевой документации Docker Desktop имяhost.docker.internalописано как внутреннее DNS-имя для обращения из контейнера к службам хоста. При этом само наличие имени не гарантирует, что сервер LM Studio, привязанный только к локальномуlocalhostхост-машины, окажется доступен из контейнера в любой конфигурации. В среде Linux Docker Engine опцияhost-gateway(если вы добавляли её при создании контейнера) решает только задачу преобразования имени в IP-адрес, но не открывает доступ к службам, которые слушают исключительно внутренний интерфейс127.0.0.1хоста. - Переход к локальной сети в LM Studio. Если серверная часть Open WebUI работает в контейнере Linux Docker Engine или на соседнем компьютере, один только
localhostне подойдёт. В LM Studio для этого предусмотрен режим Serve on Local Network. Прежде чем включать его, обязательно активируйте проверку токена (Require Authentication) и убедитесь, что вы находитесь в доверенной частной сети, а межсетевой экран разрешает входящие подключения к порту1234только с узла, где работает Open WebUI. Никогда не пробрасывайте этот порт на роутере в открытый интернет. - Какой адрес копировать после включения сетевого режима. Когда вы включаете Serve on Local Network, LM Studio меняет привязку сетевого интерфейса и показывает в окне актуальный адрес для подключения. В поле
Base URLиспользуйте фактический частный IP-адрес компьютера с моделью. Запись с угловыми скобками в таблице служит шаблоном; копировать её буквально нельзя. Служебное обозначение0.0.0.0, которое иногда встречается в настройках серверов, означает «слушать все доступные интерфейсы», но в качестве адреса подключения в Open WebUI никогда не вводится. Передача токена по протоколуhttp://не шифрует сетевой трафик.
Добавим выбранное подключение
Когда сервер модели запущен, а подходящий сетевой адрес определён, откроем интерфейс Open WebUI с правами администратора. Поля URL, Auth и Model IDs разобраны в уроке про настройку OpenAI-совместимых подключений. Как различать одинаковые ID с помощью Prefix ID, объясняется в уроке «Облачные модели». Здесь укажем значения для локального сервера. Существующие подключения (например, ранее настроенные локальные или облачные провайдеры) удалять или отключать не нужно.
Перейдите в Settings → Admin → Connections, найдите блок Manage OpenAI API Connections и нажмите кнопку добавления нового подключения (Add Connection). Заполните поля:
- URL (
Base URL). Укажите выбранный в предыдущем разделе адрес, который обязательно заканчивается суффиксом/v1(например,http://127.0.0.1:1234/v1для нативной установки на том же компьютере). Не вставляйте сюда собственный внутренний адрес LM Studio вида/api/v1/chatи не дописывайте в конец полный путь/chat/completions. - Проверка подлинности (
Auth). Если вы включили проверку токена в LM Studio, выберите режим Bearer и вставьте созданный вами токен сервера. Если же вы используете локальный сервер, в котором проверка ключа действительно отключена, выберите вариант None (не нужно вводить поддельные строки вродеsk-...или оставлять пустой Bearer в качестве обходного пути). - Идентификатор модели (
Model IDs). Вставьте точный идентификатор модели, который вы скопировали из LM Studio или из вывода/v1/models, и добавьте его в список. Если в вашем Open WebUI уже есть модель с точно таким же именем от другого источника, вы можете задатьPrefix ID, разобранный в уроке «Облачные модели», чтобы легко различать их в списке.
Нажмите Verify Connection, затем сохраните настройки кнопкой Save.
Если вместо LM Studio вы подключаете уже установленный на компьютере инференса llama-server или подготовленную среду vLLM, воспользуйтесь соответствующей памяткой ниже. Обе карточки рассчитаны на то, что сам инструмент и модель у вас уже есть: мы не выполняем здесь сборку или установку драйверов.
Вариант для готового llama-server (llama.cpp)
Эта карточка подойдёт, если на компьютере инференса у вас уже есть исполняемый файл llama-server и совместимый файл модели в формате .gguf. Команда выполняется на самом компьютере инференса в каталоге с бинарным файлом, а не внутри контейнера Open WebUI. Замените условный путь к файлу модели на ваш реальный полный путь. Мы явно задаём порт 8080, чтобы адрес был предсказуемым.
В терминале Linux или macOS:
В окне Windows PowerShell:
Как указано в официальном руководстве llama-server, флаг --alias позволяет задать понятное имя модели для API.
Параметры для добавления в Open WebUI:
- Условие для адреса: так как в команде указан
--host 127.0.0.1, базовый адресhttp://127.0.0.1:8080/v1сработает только в том случае, если серверная часть Open WebUI запущена нативно на этом же самом компьютере. Если backend Open WebUI работает в контейнере Docker или на другом узле, серверllama-serverдолжен слушать доступный частный интерфейс, а в качествеBase URLнужно выбрать адрес по правилам из таблицы предыдущего раздела, сохранив порт8080из этой команды. - Model ID:
local-model(значение, переданное во флаге--alias). - Auth: выберите None, так как в команде выше ключ не задан. Если вы запускаете сервер с флагом
--api-keyили--api-key-file, выберите в Open WebUI режим Bearer и укажите свой ключ (не подставляйте секретные ключи прямо в публичные заметки или общие скрипты). Оставить тип провайдера в значении по умолчанию достаточно для обычного чата; специальный режим управления llama.cpp в настройках нужен только для дополнительных административных функций.
Вариант для подготовленной среды vLLM в Linux
Этот вариант подходит, если на Linux-хосте инференса уже развёрнуто совместимое окружение vLLM и проверена поддержка оборудования. Здесь описан стандартный официальный маршрут для Linux. Нативная работа в Windows не поддерживается; специализированные ветки и плагины для других платформ выходят за рамки урока. Упомянутая в документации быстрого старта vLLM модель Qwen/Qwen2.5-1.5B-Instruct приведена только как документированный пример синтаксиса, а не как универсальная рекомендация под любое оборудование.
Команда выполняется в терминале Linux на самом хосте инференса (не внутри контейнера Open WebUI и не в локальном терминале ноутбука, если сервер удалённый):
Параметры для добавления в Open WebUI:
- Условие для адреса: при запуске с
--host 127.0.0.1базовый адресhttp://127.0.0.1:8000/v1подходит только для нативной серверной части Open WebUI, работающей на том же самом Linux-хосте. Для контейнерного или удалённого backend Open WebUI потребуется запуск на доступном частном сетевом интерфейсе, защита периметра и адрес по правилам предыдущего раздела с портом8000из этой команды. - Model ID: скопируйте точный идентификатор из ответа
GET /v1/modelsвашего сервера (для команды из примера этоQwen/Qwen2.5-1.5B-Instruct). - Auth: выберите None, если сервер запущен без проверки ключа. Если вы задали ключ флагом
--api-keyили через переменную окруженияVLLM_API_KEY, выберите Bearer и введите этот токен. Ключ проверяет доступ к API, но не заменяет межсетевой экран и не шифрует трафик. Не публикуйте порт vLLM в интернет.
Получим ответ и найдём место сбоя
Проверка соединения в настройках оценивает отклик сервера, но ещё не генерацию ответа. Одно появление имени модели в списке тоже не подтверждает её работу. Проверим весь путь до ответа:
- Откройте новый чат в Open WebUI.
- В селекторе моделей сверху выберите именно то локальное подключение и тот точный идентификатор модели (
Model ID), который вы только что добавили. - Отправьте короткий проверочный запрос:
Упражнение успешно завершено, когда выбранная локальная модель вернула в окно чата один законченный осмысленный ответ обычным текстом без сообщений об ошибке. Конкретная формулировка фразы у разных моделей будет отличаться, главное, чтобы ответ пришёл именно через созданный вами локальный маршрут.
Если проверка соединения не проходит или вместо ответа в чате появляется ошибка, не спешите переустанавливать Open WebUI или удалять тома с данными. Проверьте цепочку по шагам от сервера модели к интерфейсу:
- Состояние модели и сервера на хосте инференса. Посмотрите в окно или в терминал вашего локального сервера (LM Studio,
llama-serverили vLLM). Запущен ли сам API-сервер? Загружена ли модель в память, или сервер пытается подгрузить слишком тяжёлую модель по запросу (JIT) и сталкивается с нехваткой ресурсов? В журналах (логах) сервера на компьютере инференса поищите, дошёл ли запрос от Open WebUI и не возникла ли ошибка при генерации. - Сетевая достижимость со стороны backend Open WebUI. Если сервер модели исправно отвечает в браузере на самом компьютере инференса, это ещё не доказывает, что до него есть маршрут из изолированного контейнера Docker. Проверьте, не оставили ли вы в настройках контейнера адрес
127.0.0.1вместоhost.docker.internalили фактического частного IP-адреса. При работе через частный IP убедитесь, что в LM Studio включён режим Serve on Local Network (или указан нужный--hostв консольных серверах), а межсетевой экран разрешает подключение именно от хоста Open WebUI. Не отключайте брандмауэр полностью и не открывайте порт для всех внешних сетей ради быстрой проверки. - Точность параметров в Open WebUI. Проверьте, что
Base URLзаканчивается на/v1без лишних сегментов, режимAuthточно соответствует настройкам сервера (None для сервера без ключа или Bearer с актуальным токеном), аModel IDскопирован без опечаток из/v1/models.
Правила заполнения полей и коды ошибок доступа разобраны в уроке про настройку OpenAI-совместимых подключений, а работа с префиксами при совпадении ID моделей — в уроке «Облачные модели». Первый законченный ответ от выбранной локальной модели подтверждает работу базового текстового чата по этому маршруту.

