Установите Docker и запустите контейнер
Одной командой. Порт 3000 можно заменить на любой свободный, данные сохраняются в томе open-webui между перезапусками.
Open WebUI ставится одной командой и даёт свой чат ко всем моделям в браузере. Разбираем, куда вписать адрес и ключ и почему после этого список моделей бывает пуст.
Коротко: Open WebUI — это открытый веб-интерфейс для чата с нейросетями, который вы ставите у себя: на ноутбуке, на сервере команды или в облаке. Внешне похож на ChatGPT: история диалогов, несколько пользователей, загрузка файлов, выбор модели в выпадающем списке. Своих моделей у него нет: он работает с локальной Ollama и с любым OpenAI-совместимым API по адресу и ключу.
Ставится через Docker одной командой, после чего открывается на localhost:3000. Первый зарегистрированный пользователь становится администратором. Подключение внешнего API лежит в Settings → Connections (у администратора — Admin → Settings → Connections): поле OpenAI API base URL и поле ключа. После сохранения Open WebUI сам запрашивает список моделей у сервера и показывает их в чате.
Если список моделей после этого пуст, причин две: base URL без /v1 или с лишним хвостом, либо неверный ключ. Кнопка Verify connection рядом с полями проверяет оба сразу и пишет, что не так.
В Open WebUI добавьте одно соединение с нашим адресом и ключом — в списке появятся все модели каталога. Для команды удобно выпустить отдельный ключ с лимитом.
https://api.kosareva.cloud/v1, ключ из кабинетаfrom openai import OpenAI client = OpenAI( api_key="ВАШ_API_КЛЮЧ", base_url="https://api.kosareva.cloud/v1", ) response = client.chat.completions.create( model="gpt-5-6", messages=[{"role": "user", "content": "Привет!"}], stream=True, )
import OpenAI from "openai"; const client = new OpenAI({ apiKey: "ВАШ_API_КЛЮЧ", baseURL: "https://api.kosareva.cloud/v1", }); const response = await client.chat.completions.create({ model: "gpt-5-6", messages: [{ role: "user", content: "Привет!" }], stream: true, });
curl https://api.kosareva.cloud/v1/chat/completions \ -H "Authorization: Bearer ВАШ_API_КЛЮЧ" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-5-6","messages":[{"role":"user","content":"Привет!"}],"stream":true}'
Open WebUI запрашивает /models относительно адреса; без /v1 сервер отвечает 404, и список пуст.
Ответ 401, Verify connection не проходит, моделей нет.
Лишний хвост ломает и список моделей, и сами запросы.
Docker без доступа наружу или прокси, который режет запросы к API: Verify connection висит и падает по таймауту.
У каждого соединения есть переключатель; после обновления он иногда оказывается в положении «выкл».
Одной командой. Порт 3000 можно заменить на любой свободный, данные сохраняются в томе open-webui между перезапусками.
Откройте http://localhost:3000 и зарегистрируйтесь. Первый аккаунт получает права администратора, остальным вы выдаёте доступ сами.
Admin → Settings → Connections → OpenAI API. Впишите адрес с /v1 и ключ, нажмите Verify connection, затем Save.
Если Verify connection не проходит, тот же адрес и ключ проверьте curl с машины, где стоит Docker. Ответ должен быть JSON со списком моделей.
В том же окне подключения можно перечислить только нужные модели: без этого в выпадающем списке будут все, что отдаёт сервер, а у крупного шлюза их десятки.
Локальные модели через Ollama и облачные через API живут в одном списке; пользователь выбирает модель на каждый диалог.
Те же параметры в compose-файле; переменные OPENAI_API_BASE_URL и OPENAI_API_KEY задают подключение без входа в настройки.
Open WebUI за nginx с HTTPS, пользователи регистрируются сами, администратор включает им доступ и назначает модели.
Подключений может быть несколько, у каждого свой адрес и ключ; модели с одинаковыми именами лучше развести префиксами.
Да. Ollama нужна только для локальных моделей. С внешним API достаточно контейнера Open WebUI и подключения в Connections.
Проверьте, что подключение включено переключателем и что для пользователя не ограничен список моделей в Admin → Users. Иногда помогает обновить страницу после Save.
Остановить и удалить контейнер, скачать свежий образ и запустить той же командой. Данные в томе open-webui сохраняются.
У вас, в базе внутри тома open-webui; по умолчанию это SQLite. Там же лежат пользователи и настройки, поэтому резервная копия тома сохраняет всё сразу. Провайдер API получает только сами запросы, а архив переписки остаётся на вашей машине или сервере.
Да, как пакет Python: pip install open-webui, затем open-webui serve, и интерфейс откроется на порту 8080. Разработчики советуют Python 3.11. Docker удобнее тем, что данные и обновления не зависят от Python в системе.
OpenAI-совместимый адрес, оплата в рублях, ключ сразу после регистрации. Пополнение картой от 50 ₽.