Интеграция Open WebUI с локальным сервером llama.cpp для создания AI-стека

Источник

В пятой части руководства по сборке локального AI-стека рассматривается установка Open WebUI, который служит веб-интерфейсом для взаимодействия с сервером llama-server. В отличие от родного интерфейса на Svelte, предназначенного для отладки, Open WebUI предоставляет функции аутентификации, ведения истории чатов, настройки параметров моделей и управления доступом. Архитектура системы строится так, чтобы сервер llama-server работал только на localhost (127.0.0.1:10000), оставаясь недоступным из внешней сети, в то время как Open WebUI слушает порт 8080 на всех интерфейсах (0.0.0.0), предоставляя доступ пользователям из локальной сети (LAN). Оба компонента взаимодействуют через совместимый с OpenAI API протокол, где Open WebUI выступает клиентом для llama-server.

Для обеспечения безопасности ключи API для llama-server и сессионные ключи для WebUI хранятся в защищенном файле .secrets с правами доступа 600. Критически важно использовать статичный ключ WEBUI_SECRET_KEY, сгенерированный один раз скриптом init_secrets.sh, чтобы избежать сброса всех пользовательских сессий при каждом перезапуске сервиса. Установка Open WebUI производится в ту же виртуальную среду (venv), что и остальные компоненты, с предварительной установкой CPU-версии PyTorch для предотвращения подтягивания тяжелых CUDA-зависимостей. Настройка запуска включает отключение автоматического поиска Ollama и Whisper для работы в оффлайн-режиме, а также включение веб-поиска через DuckDuckGo.

Оркестратор run_webui.sh автоматизирует процесс: он проверяет наличие окружения и портов, запускает llama-server в фоновом режиме и ждет его готовности, после чего стартует Open WebUI. Скрипт корректно обрабатывает сигнал Ctrl+C, останавливая оба процесса в правильном порядке. По умолчанию сервер работает в режиме роутера (router mode), позволяя загружать модели по требованию, но можно запустить конкретную модель сразу, передав её имя как аргумент. Первый зарегистрированный пользователь автоматически получает права администратора, после чего регистрация закрывается, а управление доступом осуществляется через панель администратора. Open WebUI позволяет настраивать системные промпты и параметры сэмплирования (temperature, top_k и др.) для каждой модели индивидуально, что невозможно в базовом интерфейсе llama.cpp.

Текст подготовлен нейросетью Loople по материалам источника.

Читайте также

Похожие новости

Поиск по Loople

Назад