Websuche
Libre WebUI kann das Web durchsuchen und Ergebnisse an Modelle übergeben, ohne ein Libre WebUI-Anbieterkonto oder eine kommerzielle Such-API zu verlangen. Die Suche läuft über eine vom Administrator gewählte SearXNG-Instanz. SearXNG sendet Anfragen an aggregierte öffentliche Suchmaschinen. Diese können die Anfrage vom SearXNG-Standort sehen und eigene Protokollierungs-, Aufbewahrungs- und Netzwerkrichtlinien anwenden.
Wie jede Funktion mit doppeltem Verwendungszweck wird sie deaktiviert ausgeliefert. Ein Administrator aktiviert sie einmal; bis dahin gibt es keine Suchoberfläche.
Funktionsweise
Es gibt vier Teile, die jeweils erst nach dem vorherigen sichtbar werden:
- Eine erreichbare SearXNG-Instanz. Der integrierte private Stack enthält eine; jede Instanz mit aktivierter JSON-API funktioniert.
- Administratoreinstellung – Einstellungen > Verbindungen > Suche (nur Administratoren). Setze die URL, aktiviere Websuche aktivieren und teste mit Verbindung testen eine echte Anfrage.
- Berechtigte Benutzer – die Karte Websuche unter Einstellungen → Benutzerverwaltung neben Work-Zugriff und Modelldownload. Aus (Standard) bedeutet nur Administratoren, selbst wenn Suche aktiviert ist; ein öffnet sie für alle aktiven Benutzer. Das Backend prüft jede Anfrage.
- Steuerelemente pro Verwendung:
- Chat-Abruf: Globus im Editor. Das Sitzungsmodell plant fokussierte Stichwortsuchen mit optionaler Aktualität und Kategorie. Schlägt die Planung fehl, nutzt Libre die Rohmeldung. Ergebnisse gelangen als Kontext in den Prompt, die Antwort zeigt nummerierte Quellen-Chips. Werkzeugaufrufe sind nicht nötig.
- Chat-Werkzeuge: Erlaubte werkzeugfähige Modelle können bei aktivierten
Werkzeugen
web_searchaufrufen. - Work: Aufgaben mit Netzwerk erhalten
web_searchin der Agentenschleife. Das Modell entscheidet über Aufrufe. Offline-Aufgaben sehen es nie, obwohl die Suche vom Backend und nicht aus der Sandbox ausgehen würde.
Eine fehlgeschlagene Suche lässt die Runde nicht scheitern; das Modell antwortet ohne Kontext und die Ausführung läuft weiter.
Einrichtung mit integriertem Stack
deploy/private/docker-compose.yml enthält bereits searxng: nur intern, gehärtet
und über SEARXNG_URL=http://searxng:8080 vorkonfiguriert.
-
Füge ein Geheimnis zu
.envhinzu:SEARXNG_SECRET=any-long-random-value -
docker compose up -d. -
Als Administrator: Einstellungen > Verbindungen > Suche – URL ist aus der Umgebung vorausgefüllt – aktivieren und Verbindung testen.
Eigene SearXNG-Instanz
Jede erreichbare Instanz funktioniert, wenn das JSON-Format in settings.yml
aktiviert ist (öffentliche Instanzen deaktivieren es meist):
search:
formats:
- html
- json
Füge anschließend die Basis-URL (etwa http://127.0.0.1:8888 oder
https://search.example.com) unter Einstellungen > Verbindungen > Suche ein.
Umgebungsvariablen
| Variable | Standard | Zweck |
|---|---|---|
SEARXNG_URL | nicht gesetzt | Füllt die URL voraus; Aktivierung bleibt eine Administratoraktion |
Die Einstellung (aktiviert und URL) wird in der Datenbank gespeichert, übersteht Neustarts und wirkt sofort ohne erneute Bereitstellung.
Datenschutz und Umfang
- Suchen laufen serverseitig. Browser kontaktieren SearXNG nie direkt. Libre WebUI braucht kein Suchanbieterkonto; eine eigene Instanz kann dennoch Engines mit eigenen Anmeldedaten konfigurieren.
- Suchbegriffe verlassen Libre WebUI Richtung SearXNG und ausgewählte Engines. Selbsthosting kontrolliert diesen Sprung, macht öffentliche Suche aber nicht lokal oder anonym.
- Ergebnistext wird vor dem Modellkontext begrenzt (500 Zeichen je Ergebnis).
Administratoren wählen 1–100; Standard ist 6. Nur
http(s)-URLs bleiben erhalten. - Die integrierte Instanz ist nur im internen Netzwerk erreichbar. Ihr Rate-Limiter ist deshalb aus; veröffentliche sie nicht.
Fehlerbehebung
Kein Globus / kein web_search in Work. Suche ist nicht aktiviert
(Einstellungen > Verbindungen > Suche) oder das Konto nicht berechtigt. Reguläre
Benutzer brauchen den Schalter Websuche unter Einstellungen → Benutzerverwaltung.
Verbindungstest schlägt mit HTTP 403 fehl. JSON ist nicht erlaubt. Füge json
zu search.formats in settings.yml hinzu und starte neu.
Verbindungstest erreicht den Dienst nicht. Die URL muss vom Backend erreichbar
sein. Im Stack ist es http://searxng:8080; localhost im Container bezeichnet den
Container selbst.
Antworten ignorieren Ergebnisse. Das Modell entscheidet über die Nutzung. Kleine Modelle folgen eingespeistem Kontext bei konkreten Fragen besser; die Quellen zeigen immer den Abruf.