Przejdź do głównej zawartości

Wyszukiwanie w internecie

Libre WebUI może przeszukiwać internet i przekazywać wyniki modelom bez konta dostawcy Libre WebUI ani komercyjnego API wyszukiwarki. Wyszukiwanie odbywa się przez wybraną przez administratora instancję SearXNG. SearXNG wysyła zapytania do agregowanych publicznych wyszukiwarek; mogą one obserwować żądanie z wdrożenia SearXNG i stosować własne zasady logowania, przechowywania i sieci.

Jak każda funkcja podwójnego zastosowania w Libre WebUI, jest dostarczana wyłączona. Administrator włącza ją raz; wcześniej interfejs wyszukiwania nie istnieje.

Sposób działania

System ma cztery elementy, a każdy jest niewidoczny do czasu istnienia poprzedniego:

  1. Instancja SearXNG osiągalna z zaplecza. Dołączony prywatny stos ją zawiera; działa każda z włączonym API JSON.
  2. Ustawienie administratora — Ustawienia > Połączenia > Wyszukiwanie (karta tylko dla administratorów). Podaj URL, włącz Wyszukiwanie w internecie i użyj Testuj połączenie z prawdziwym zapytaniem.
  3. Kto może korzystać — karta Wyszukiwanie w internecie w Settings → Zarządzanie użytkownikami obok dostępu Work i pobierania modeli. Wyłączona (domyślnie) zachowuje wyszukiwanie tylko dla administratorów mimo globalnego włączenia; włączona udostępnia wszystkim aktywnym użytkownikom. Zaplecze egzekwuje to przy każdym żądaniu.
  4. Sterowanie per użycie dla dozwolonych osób:
    • Pobieranie dla czatu: przełącznik globusa w kompozytorze. Model sesji planuje skupione zapytania słów kluczowych z opcjonalnymi wskazówkami świeżości i kategorii. Gdy planowanie zawiedzie, Libre używa surowej wiadomości. Wyniki trafiają jako kontekst, a odpowiedź pokazuje numerowane etykiety źródeł. Działa z modelami bez narzędzi.
    • Narzędzia czatu: dozwolone modele mogą wywołać wbudowane web_search, gdy narzędzia są włączone w turze.
    • Work: zadania z siecią otrzymują web_search w pętli agenta. Model decyduje o użyciu. Zadania offline nigdy nie widzą narzędzia, mimo że żądanie wyszłoby z zaplecza, nie piaskownicy.

Błąd wyszukiwania nie powoduje błędu tury: model odpowiada bez kontekstu i uruchomienie trwa dalej.

Konfiguracja dołączonego stosu

deploy/private/docker-compose.yml zawiera usługę searxng: tylko wewnętrzną, niepublikowaną na hoście, wzmocnioną i połączoną przez SEARXNG_URL=http://searxng:8080.

  1. Dodaj sekret do .env:

    SEARXNG_SECRET=any-long-random-value
  2. docker compose up -d.

  3. Jako administrator otwórz Ustawienia > Połączenia > Wyszukiwanie — URL jest wypełniony ze środowiska — włącz i wybierz Testuj połączenie.

Własna instancja SearXNG

Działa każda osiągalna instancja, pod warunkiem włączenia formatu JSON w settings.yml (większość publicznych go wyłącza):

search:
formats:
- html
- json

Wklej bazowy URL, np. http://127.0.0.1:8888 lub https://search.example.com, w Ustawienia > Połączenia > Wyszukiwanie.

Zmienne środowiskowe

ZmiennaDomyślnaCel
SEARXNG_URLnieustawionaWstępnie wypełnia URL; włączenie nadal wymaga działania administratora

Ustawienie (włączone + URL) jest utrwalone w bazie, przetrwa restart i działa natychmiast bez ponownego wdrożenia.

Prywatność i zakres

  • Wyszukiwania działają po stronie serwera. Przeglądarki nie łączą się bezpośrednio z SearXNG. Libre WebUI nie potrzebuje konta wyszukiwarki, choć własne SearXNG może używać silników z poświadczeniami.
  • Terminy opuszczają proces do SearXNG, a potem do wybranych silników. Samodzielne hostowanie bramy kontroluje ten skok, ale samo nie czyni publicznego wyszukiwania lokalnym ani anonimowym.
  • Tekst wyników jest ograniczony przed kontekstem modelu (500 znaków na wynik). Administrator wybiera limit 1–100; domyślnie 6. Zachowywane są tylko URL-e http(s).
  • Dołączona instancja jest osiągalna tylko w sieci stosu. Jej ogranicznik jest dlatego wyłączony; nie publikuj jej.

Rozwiązywanie problemów

Brak globusa / brak web_search w Work. Wyszukiwanie nie jest włączone (Ustawienia > Połączenia > Wyszukiwanie) lub konto nie ma dostępu; zwykli użytkownicy wymagają przełącznika w Settings → Zarządzanie użytkownikami.

Test połączenia zwraca HTTP 403. Instancja nie dopuszcza JSON. Dodaj json do search.formats w settings.yml i uruchom ponownie.

Test nie osiąga usługi. URL musi być osiągalny z zaplecza, nie przeglądarki. W dołączonym stosie to http://searxng:8080; localhost w kontenerze oznacza ten kontener.

Odpowiedzi ignorują wyniki. Model nadal decyduje, czego użyć. Małe modele lepiej śledzą wstrzyknięty kontekst przy konkretnym pytaniu; źródła zawsze pokazują pobrane dane.