Aufbau eines privaten KI-Suchstapels mit SearXNG und lokalen LLMs
Ein neues Open-Source-Projekt kombiniert die Metasuche von SearXNG mit Ollama, um zitierte KI-Antworten bereitzustellen, ohne Anfragen an externe Server zu senden.
Automatisch aus dem englischen Original übersetzt.
Ein Entwickler hat PrivaSearch veröffentlicht, ein Open-Source-Tool, das Web-Suchergebnisse in KI-generierte Antworten zusammenfasst und dabei alle Daten lokal hält. Das am 8. November 2026 veröffentlichte Projekt nutzt SearXNG für die Metasuche und Ollama für die Inferenz großer Sprachmodelle (LLMs), wodurch sichergestellt wird, dass Benutzeranfragen niemals die selbst gehostete Umgebung verlassen.
Was passiert ist
PrivaSearch ist als vier Container umfassende Docker-Stack auf einem einzigen internen Netzwerk aufgebaut. Die Architektur isoliert das Frontend, das eine React-Oberfläche über nginx bereitstellt, von den Backend-Komponenten. Die API-Schicht, geschrieben in Node.js und Express, orchestriert die Kommunikation zwischen der Benutzeroberfläche, der SearXNG-Metasuchmaschine und dem lokalen LLM, das von Ollama bereitgestellt wird. Nur das Frontend gibt einen Host-Port frei, typischerweise Port 8080, während die anderen Dienste von außerhalb des Docker-Netzwerks nicht erreichbar sind.
Das System trennt den Suchprozess von der Antwortgenerierung. Wenn ein Benutzer eine Anfrage absendet, fordert der Browser zunächst paginierte Ergebnisse von SearXNG an. Anschließend sendet er die besten Ergebnisse an die API, die einen Prompt für das lokale LLM konstruiert. Das Modell streamt eine synthetisierte Antwort zurück zum Client und zitiert Quellen mit eckigen Klammern und Nummern. Diese Trennung ermöglicht es Benutzern, Antworten mit unterschiedlichen Anzahl von Quellen neu zu generieren, ohne die Web-Suchmaschinen erneut abzufragen.
Um strenge Privatsphäre zu gewährleisten, minimiert das Projekt Abhängigkeiten und steuert die Datenspeicherung. Die API verlässt sich nur auf Express und die eingebaute Fetch-Funktion von Node. Anfragen und Ergebnisse existieren nur im Prozessspeicher während der Anfrage und werden nicht auf der Festplatte gespeichert. Die einzigen persistenten Daten umfassen die Modellgewichte und die SearXNG-Konfiguration. Optionale Funktionen wie Seitenzusammenfassung und Geo-IP-Lookups sind standardmäßig deaktiviert, um zusätzliche ausgehende Anfragen zu verhindern.
Wichtige Details
- Der Stack führt vier Container aus: Frontend (nginx/React), API (Node/Express), SearXNG und Ollama in einem internen Docker-Netzwerk.
- Suche und Antwortgenerierung sind separate Schritte, sodass Benutzer die Anzahl der Quellen anpassen können, ohne die ursprüngliche Suche erneut durchzuführen.
- Der System-Prompt beschränkt das LLM darauf, nur die bereitgestellten Ergebnisse zu verwenden, Aussagen mit
[n]zu zitieren und externes Wissen zu vermeiden. - Die Standard-Temperatur ist auf 0,2 für faktische Konsistenz eingestellt, und das Modell bleibt 30 Minuten resident, um Ladezeiten zu reduzieren.
- Optionale Tor- oder VPN-Tunnel können die IP-Adresse des Servers vor Upstream-Suchmaschinen verbergen, wobei Gluetun einen Kill Switch für die VPN-Option bereitstellt.
- Das Standardmodell ist
qwen2.5:1.5b, das etwa 1 GB RAM benötigt und warme Antworten in ungefähr 8 Sekunden auf der CPU liefert.
Hintergrund
Retrieval-Augmented Generation (RAG) ist eine Technik, bei der ein KI-Modell Fragen unter Verwendung spezifischer externer Dokumente beantwortet, anstatt nur auf seine Trainingsdaten zurückzugreifen. In diesem Setup fungiert SearXNG als Retrieval-Engine und ruft Live-Web-Ergebnisse ab. Ollama verarbeitet diese Ergebnisse anschließend, um eine kohärente Zusammenfassung zu generieren. Durch das lokale Ausführen beider Komponenten vermeiden Benutzer das Senden sensibler Suchbegriffe an Drittanbieter-KI-Dienste.
SearXNG ist eine datenschutzfreundliche Metasuchmaschine, die Ergebnisse von mehreren Anbietern wie Google und Bing aggregiert, ohne Benutzer zu tracken. Ollama ist ein Tool, das das Ausführen großer Sprachmodelle auf lokaler Hardware vereinfacht. Die Kombination beider Tools ermöglicht ein Sucherlebnis, das modern und intelligent wirkt, aber vollständig unter der Kontrolle des Benutzers bleibt und wachsende Bedenken hinsichtlich Datenlecks in cloud-basierten KI-Diensten adressiert.
Warum es wichtig ist
Für Teams, die ihre Infrastruktur selbst hosten, ist die Aufrechterhaltung der Privatsphäre bei der Einführung von KI-Tools eine erhebliche Herausforderung. Öffentliche KI-APIs protokollieren Anfragen oft für Training oder Verbesserung, was interne Compliance-Richtlinien verletzen oder proprietäre Informationen preisgeben kann. PrivaSearch demonstriert, dass es möglich ist, zitierte, synthetisierte Antworten zu erhalten, ohne die Datensouveränität zu opfern. Dieser Ansatz ist besonders relevant für Organisationen, die sensible Kundendaten oder geistiges Eigentum verarbeiten.
Die Architektur hebt auch die Bedeutung minimaler Abhängigkeiten in sicherheitsbewussten Projekten hervor. Durch die Nutzung der eingebauten Fähigkeiten von Node und das Vermeiden schwerer Frameworks wird die Angriffsfläche reduziert. Dies macht den Code leichter auditierbar und wartbar, ein kritischer Faktor für Sysadmins, die der Software vertrauen müssen, die sie bereitstellen. Die explizite Behandlung von Edge-Cases, wie Modellfehler oder leere Ergebnisse, stellt eine zuverlässige Benutzererfahrung sicher, selbst wenn Komponenten unter Stress stehen.
Darüber hinaus adressieren die optionalen Tunneling-Funktionen die Lücke bei der Metadaten-Privatsphäre. Selbst wenn der Inhalt der Anfrage sicher ist, kann die IP-Adresse, die die Anfrage stellt, die Organisationsidentität offenbaren. Das Routing des Traffics über Tor oder ein VPN mit Kill Switch stellt sicher, dass Upstream-Engines nur anonymen Traffic sehen. Diese Detailtiefe zeigt ein reifes Verständnis von Datenschutzbedrohungen jenseits der reinen Inhaltsverschlüsselung.
Was Sie tun können
- Stellen Sie den Stack mit Docker Compose bereit, indem Sie
npm run setupunddocker compose up -dausführen, um den lokalen KI-Suchworkflow zu testen. - Passen Sie die Einstellung
OLLAMA_KEEP_ALIVEan, um ein Gleichgewicht zwischen Antwortgeschwindigkeit und Speichernutzung basierend auf der Kapazität Ihres Servers herzustellen. - Aktivieren Sie die Tor- oder VPN-Optionen, wenn das Verbergen der Server-IP vor Suchmaschinen eine Anforderung für Ihr Bedrohungsmodell ist.
- Überprüfen Sie die Datei
prompt.js, um zu verstehen, wie das System das LLM einschränkt, und modifizieren Sie sie, wenn Sie andere Zitierstile oder Verhaltensweisen benötigen. - Deaktivieren Sie optionale Funktionen wie
ALLOW_PAGE_FETCHundSHOW_LOCATIONin der Konfiguration, um sicherzustellen, dass keine unerwarteten ausgehenden Anfragen auftreten. - Überwachen Sie die Ressourcennutzung beim Wechsel zu größeren Modellen wie
llama3.1:8b, da diese bessere Antworten liefern, aber deutlich mehr CPU-Leistung und Zeit erfordern.



