При попытке использовать веб-поиск в OpenWebUI результат оказался слабым. Гайдов по качественной настройке на русском и английском практически нет. В этой статье — собрана вся полезная информация, чтобы добиться приемлемого результата.
Решение не сравнится с платными проприетарными сервисами, но локальные модели имеют свои преимущества: защита данных, отсутствие оплаты, возможность использовать unrestricted-модели.
Настройка выполнена для видеокарты NVIDIA RTX 3090 (24 Гб), 32 Гб ОЗУ, Windows 10 (22H2).
Установка и запуск llama.cpp
- Обновите драйверы видеокарты.
- Скачайте llama.cpp для Windows x64 (CUDA 13) и CUDA 13.1 DLL. Распакуйте в одну папку, например: G:\llama-b8477-bin-win-cuda-13.1-x64. Альтернатива — использовать Docker-образы. Чтобы не копировать DLL при каждом обновлении, установите NVIDIA CUDA Toolkit 13.1.
- Скачайте модели в формате GGUF в отдельную папку, например: G:\llm.
- Qwen3.5-27B-UD-Q4_K_XL — основная модель для ответов.
- mmproj-BF16.gguf — переименуйте в Qwen3.5-27B-UD-Q4_K_XL-mmproj-BF16.gguf. Нужен для распознавания изображений.
- Qwen3-Embedding-4B-f16 — для генерации эмбеддингов при веб-поиске.
- Qwen3-Reranker-4B-f16 — для сортировки результатов поиска.
- Qwen3.5-2B-BF16 — для мелких задач: генерация названий чатов, формулировка запросов и т.д.
В папке с моделями создайте файл start-all.ini с параметрами запуска.
Также создайте start-all.bat для запуска llama-server.
Пояснение ключевых параметров
- no-mmap = true — модель загружается только в VRAM, без использования RAM.
- metrics = true — метрики доступны по эндпоинту /metrics, например: http://127.0.0.1:9999/metrics?model=Qwen3.5-27B-UD-Q4_K_XL-thinking.
- cache-ram = 0 — отключает кеш. Не нужен при разнообразных запросах одного пользователя.
- sleep-idle-seconds = 1200 — модель выгружается из VRAM через 20 минут бездействия.
- n-gpu-layers = all — все слои модели загружаются в видеопамять.
- ctx-size = 65536 — размер контекста.
- load-on-startup = false — модель не загружается при старте, только по запросу.
- parallel = 4 — модель обрабатывает до 4 запросов параллельно. Контекст делится на количество параллельных запросов (65536 / 4 = 16384).
- chat-template-kwargs = {"enable_thinking":false} — отключает режим «рассуждений».
- --models-max 1 — одновременно в памяти только одна модель. Крупная модель занимает всю VRAM. Загрузка второй приведёт к тормозам. Идеально — лимит по памяти, но такой опции пока нет.
Остальные параметры можно изучить в документации llama.cpp.
Запустите start-all.bat. После запуска откройте http://127.0.0.1:9999/ — можно использовать llama.cpp напрямую. При первом запросе модель загрузится (до минуты).
Если нужен только чат — можно остановиться здесь.
Установка и запуск Open WebUI
Open WebUI запускается в Docker, поэтому нужны WSL и Docker Desktop.
Установите WSL командой: wsl --install. Если ранее удаляли WSL — используйте wsl --update. При первом запуске может потребоваться создать пользователя (логин и пароль).
Скачайте и установите Docker Desktop — установка стандартная.
Создайте файл docker-compose.yml в папке, например: G:\openwebui.
Откройте командную строку в этой папке и выполните: docker compose up -d. Дождитесь загрузки образов и запуска контейнеров.
Откройте http://localhost:3000/. Укажите почту и пароль для администратора.
В правом верхнем углу нажмите на иконку пользователя → «Панель администратора» → «Настройки» → «Подключения» → «+».
Добавьте подключение с URL: http://host.docker.internal:9999/v1, нажмите «Сохранить».
Перейдите в «Интерфейс» и установите:
- Модель локальной задачи — Qwen3.5-2B-BF16
- Модель внешней задачи — Qwen3.5-2B-BF16
Нажмите «Сохранить» в правом нижнем углу.
Создайте новый чат → «Arena model». Доступны модели:
- Qwen3.5-27B-UD-Q4_K_XL-instruct — для быстрых ответов без рассуждений.
- Qwen3.5-27B-UD-Q4_K_XL-thinking — для ответов с пошаговыми размышлениями.
При запросе дождитесь загрузки модели. У автора это занимает до минуты.
Важно: если во время генерации ответа открыта вкладка с чатом, GPU загружается на 100% (3D-раздел), а CUDA — не используется. Ответ может «зависнуть». Решение — свернуть браузер или переключиться на другую вкладку. Проблема наблюдается и в Firefox, и в Edge, и при прямом обращении к llama.cpp.
С мелкими моделями такой проблемы нет.
Настройка веб-поиска
Для качественного веб-поиска используется RAG. Стандартные настройки дают плохой результат — нужно вручную настроить компоненты.
Перейдите в «Панель администратора» → «Настройки» → «Documents» и задайте:
- Механизм извлечения контента: Tika, URL — http://host.docker.internal:9998
- Движок модели встраивания: URL — http://host.docker.internal:9999/v1, модель — Qwen3-Embedding-4B-f16
- Движок реранжирования: «Внешнее», URL — http://host.docker.internal:9999/v1/rerank, модель — Qwen3-Reranker-4B-f16
Нажмите «Сохранить».
Для веб-поиска автор выбрал Brave Search — даёт $5 в месяц при привязке карты. Можно установить лимит, чтобы не превысить сумму.
Не забудьте сохранить настройки.
При запросе включите «Веб-поиск». Результат будет основан на актуальных данных.
При обычном запросе сначала загружается основная модель, затем — Qwen3.5-2B-BF16 для генерации названия чата. Не используйте «рассуждающие» модели для этой задачи — они медленные и часто не срабатывают. У автора проблема была при выборе «Текущая модель» в настройках интерфейса.
При веб-поиске дополнительно загружаются модели эмбеддингов и реранкинга. Следить за процессом можно в логах llama-server.
- Документация: Open WebUI — множество функций.
- Статья: как запустить большую модель, если не влезает в VRAM — Запускаем GPT-OSS-120B на 6 Гб GPU и ускоряем до 30 t/s.
- Статья на unsloth.ai: Qwen3.5 — How to Run Locally. Также есть гайды по другим моделям.
- Вместо Tika можно использовать Docling для сложных документов (не тестировалось).
- Другие поисковые API (частично с бесплатными запросами): exa.ai, tavily, serper, linkup, valyu.
- Можно использовать SearXNG в Docker. Иногда поисковики временно блокируют запросы. Есть публичные инстансы.
- Для веб-загрузки — Playwright в Docker. Работает медленно (минуты). Настройка: запустите контейнер с WebSocket на порту 3000, укажите URL ws://playwright:3000 и таймаут 30000 мс.
- Open WebUI поддерживает распознавание речи и генерацию изображений.
- Можно подключать внешние сервисы: perplexity.ai, openrouter.ai, parallel.ai, firecrawl.dev, jina.ai — для моделей, эмбеддингов, реранкинга и парсинга.
- Альтернативы Open WebUI: LibreChat.
- Можно настроить OpenCode для работы с запущенным llama-server.