Перейти к содержанию
modelium.
Начать с задачи
←

Open WebUI и SearXNG: почему веб-поиск возвращает 403

Когда Open WebUI обращается к SearXNG за результатами в формате JSON, а этот формат запрещён в настройках SearXNG, сервис возвращает 403. Проверьте, что код пришёл именно от вашего SearXNG, затем добавьте `json` к разрешённым форматам и перезапустите сервис. Если 403 возвращает сайт из выдачи или прокси, эта настройка не поможет.

Если при веб-поиске в Open WebUI появляется 403 Forbidden, сперва выясните, кто отказал в доступе. В одной частой ситуации запрос к собственному SearXNG — программе, собирающей результаты из поисковых систем, — просит ответ в формате JSON (структурированные данные), а этот формат на сервере не разрешён. Но тот же код могут вернуть прокси или найденный сайт; исправление ниже касается только ответа самого SearXNG. s1 s2 s3

Инструкция по документации и коду, сверенным 29 октября 2026 года. Редакция не запускала Open WebUI вместе с SearXNG и не измеряла успешность на вашем сервере. Это разбор для человека, у которого оба сервиса уже работают: нужен доступ к настройкам SearXNG и журналу ошибки. Конкретная модель, ОС и видеокарта здесь не задаются; настраивается веб-поиск, а не запуск модели. s1 s2

Как понять, что 403 вернул именно SearXNG?

Посмотрите сообщение об ошибке в Open WebUI и адрес запроса в журнале. Если там указано 403 Client Error: Forbidden при обращении к вашему SearXNG /search, проверьте его настройки. Если поиск уже вернул список ссылок, но чтение отдельной найденной страницы закончилось 403, причина может быть на стороне внешнего сайта: включение JSON в SearXNG её не устранит. s1 s2

В настройках Open WebUI откройте Settings → Admin → Web Search: движок поиска должен быть searxng, а его Query URL должен вести к доступному из Open WebUI адресу SearXNG с окончанием /search. Не вставляйте в это поле тестовый запрос: Open WebUI сам добавляет параметры q и format=json. Если сервисы работают в разных контейнерах, их адреса из вашего браузера и из контейнера Open WebUI могут различаться. s2

Где разрешить JSON и что проверить после перезапуска?

  1. Найдите фактически используемый SearXNG файл settings.yml и сохраните копию перед изменением. В примере установки авторов Open WebUI через searxng-docker это searxng/settings.yml; у других установок путь может быть иным. s2
  2. В разделе search найдите список formats. Сохраните имеющийся html и добавьте к нему отдельным элементом json на том же уровне отступа: итоговый список содержит - html и - json. Не заменяйте HTML на JSON и не добавляйте второе поле search. Стандартный образец SearXNG разрешает только HTML; код отклоняет запрос запрещённого формата кодом 403. s1 s3 s4
  3. Сохраните файл и перезапустите именно ваш SearXNG. В варианте searxng-docker из официальной инструкции это повторный запуск его сервиса через Compose; если используется другая установка, следуйте её способу перезапуска. Затем запросите у своего SearXNG /search с параметрами q=test и format=json из сети, где находится Open WebUI. Например, только если SearXNG доступен на этом же компьютере по порту 8080, откройте в браузере http://localhost:8080/search?q=test&format=json; для отдельного контейнера или сервера замените адрес на реально доступный ему. Вместо 403 должен прийти ответ в JSON; это проверка формата, а не качества найденных страниц. Не публикуйте тестовый экземпляр в открытый интернет ради проверки. s1 s2 s3
  4. Повторите веб-поиск в Open WebUI и убедитесь, что появились результаты. Если прямой JSON-запрос работает, а приложение всё ещё выдаёт 403, проверьте URL подключения, журналы прокси и точный адрес отказа. Не делайте вывод о причине только по числу 403. s1 s2

Что остаётся за пределами этой настройки?

Поиск через SearXNG обращается к внешним поисковым системам, а Open WebUI может отдельно загружать найденные страницы: даже если сама чат-модель локальна, весь сценарий не становится офлайн. Ошибки доступа к сторонним сайтам, настройка прокси и ограничения источников требуют отдельной диагностики. Этот текст не утверждает, что мы воспроизвели исправление на конкретной ОС или модели. Для контраста откройте разбор офлайн-режима Open WebUI; чтобы снова настроить интерфейс, перейдите к Open WebUI. s1 s2

Источники

  1. Open WebUI Docs — Web Search Troubleshooting, закреплённая ревизия — revision f49837687d164a2697c48556172abe694a64a5b0; Раздел о 403 от SearXNG; отдельно упоминает 403 сторонних сайтов при извлечении содержимого.. Получено 29.10.2026.
  2. Open WebUI Docs — SearXNG provider, закреплённая ревизия — revision f49837687d164a2697c48556172abe694a64a5b0; Путь файла в примере Docker, раздел Admin → Web Search; URL должен оканчиваться /search, параметры q и format=json добавляются приложением.. Получено 29.10.2026.
  3. SearXNG — проверка выходного формата в webapp.py — revision c360868e5b7c01e463a362a53518190d5a3b1097; Неизвестный для search.formats output_format вызывает flask.abort(403).. Получено 29.10.2026.
  4. SearXNG — закреплённые настройки форматов — revision c360868e5b7c01e463a362a53518190d5a3b1097; В настройках по умолчанию в search.formats разрешён html; json надо включать отдельно.. Получено 29.10.2026.