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:
- Instancja SearXNG osiągalna z zaplecza. Dołączony prywatny stos ją zawiera; działa każda z włączonym API JSON.
- 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.
- 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.
- 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_searchw 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.
-
Dodaj sekret do
.env:SEARXNG_SECRET=any-long-random-value -
docker compose up -d. -
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
| Zmienna | Domyślna | Cel |
|---|---|---|
SEARXNG_URL | nieustawiona | Wstę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.