Wenn du LLMs/KI-Modelle mit OpenWebUI verwendest, die nicht lokal laufen, besteht immer das Risiko, dass du versehentlich persönliche Daten preisgibst. Oder du hostest OpenWebUI in deinem Unternehmen mit mehreren Benutzern, die sich der Risiken beim Upload von persönlichen Daten nicht bewusst sind?
Pasteguard (ehemals LLM Shield) hilft dir beim Schutz dieser eingefügten Daten. Es fungiert als Proxy zwischen dir und dem API-Endpunkt des LLM/KI-Anbieters (OpenAI/ChatGPT, Anthropic/Claude oder OpenRouter).
Über 30 Arten sensibler Daten in 24 Sprachen werden von Pasteguard erkannt und geschützt: Namen, E-Mails, Telefonnummern, Kreditkarten, IBANs, IP-Adressen, Standorte, API-Schlüssel, SSH-Schlüssel, JWT-Token, Passwörter, Verbindungszeichenfolgen, private Schlüssel und Bearer-Token.
Disclaimer: Pasteguard ist vibecoded, aber vom Ersteller architektonisch entworfen und überprüft.
Der Code ist auf Github - sgasser/pasteguard verfügbar.
Quelle: Offizielle Dokumentation
Für eine schnelle Einrichtung ohne weitere Konfiguration und ohne persistente Logs, führe diesen Befehl aus:
docker run --rm -p 3000:3000 ghcr.io/sgasser/pasteguard:en
Wähle den Tag :en am Ende, wenn du mit deiner KI nur Englisch schreibst. Wenn du aus Europa kommst, kannst du :eu wählen, um Unterstützung für mehr europäische Sprachen zu erhalten.
Wenn du persistente Logs über erkannte und geschützte Prompts wünschst, benötigst du die config.yaml (verfügbar im offiziellen Repository).
Kopiere diese in dein Arbeitsverzeichnis (z.B. /opt/docker/pasteguard) und erstelle ein Datenverzeichnis.
Jetzt kannst du die config.yaml nach deinen Wünschen bearbeiten. Schau dir die heruntergeladene Beispielkonfiguration an und passe sie an deine Präferenzen an. Meine angepasste Konfiguration:
In meiner Konfiguration scanne ich alle verfügbaren Arten persönlicher Daten in den Sprachen Englisch und Deutsch. Außerdem aktiviere ich das visualle Dashboard von Pasteguard.
Mit dieser config.yaml und dem erstellten data-Verzeichnis kannst du den Docker-Container starten (Befehl im Verzeichnis ausführen, in dem sich deine ./data und ./config.yaml befinden):
Starte den Container mit docker compose up -d in deinem Arbeitsverzeichnis (Tipp: docker-compose mit Bindestrich anstelle von docker compose für alte Docker-Versionen).
Nach ein paar Sekunden kannst du das Dashboard unter http://localhost:3000/dashboard besuchen. Wenn du es auf einem Headless-Server ausführst, besuche es unter der IP des Servers - zum Beispiel 192.168.178.5: http://192.168.178.5:3000/dashboard.
Du solltest nun das Dashboard sehen:
Da ich es bereits getestet habe, habe ich schon einige maskierte Anfragen erhalten. In deinem Fall wird das Dashboard noch leer sein.
Wenn du das Dashboard nicht erhältst oder Fehlermeldungen auftreten, schau in die Logs deines Containers mit docker logs pasteguard.
Ich hatte Probleme bei der Verwendung des Datenverzeichnisses, die ich (noch) nicht beheben konnte – siehe dieses Problem auf Github.
Hast du auch dieses Problem? Lösche einfach ./data:/pasteguard/data aus deinem docker run-Befehl / deiner docker-compose.yml.
Pasteguard funktioniert auch ohne, aber deine Logs sind nicht persistent und gehen nach einem Neustart des Containers verloren, was nur ein Problem ist, wenn du sie z.B. für Audits benötigst. In meinem Fall sind sie interessant, aber nicht wichtig.
OpenWebUI für die Verwendung von Pasteguard konfigurieren
#
Um Pasteguard in OpenWebUI zu verwenden, musst du nun deine Verbindung in OpenWebUI bearbeiten, um den neuen Pasteguard-Proxy zu verwenden.
Melde dich auf deiner OpenWebUI-Website an.
Öffne das Admin-Panel:
Wechsle zu den Einstellungen:
Und öffne die Verbindungen aus dem Menü.
Im Verbindungsmenü kannst du nun deine Pasteguard-URL als OpenAI API-Verbindung einfügen. Die URL-Syntax ist http://localhost:3000/openai/v1 oder, wenn du Pasteguard auf einem anderen Server (z.B. mit der IP [IP_ADDRESS]) ausführst: http://192.168.178.5:3000/openai/v1:
Vergiss nicht, deinen API-Schlüssel für OpenAI in die Verbindung einzugeben.
Und das war’s – deine Chats werden nun an Pasteguard gesendet, welches sie schützt, bevor sie an den KI-Anbieter weitergeleitet werden.
Teste es in OpenWebUI mit einem Beispiel-Chat wie “Meine E-Mail-Adresse ist info@xyz.com und meine Telefonnummer ist +40 111 123456”, und du solltest diese Anfrage im Pasteguard Dashboard als “maskierte Daten…” sehen.
In dieser Anleitung wird die Integration von Openrouter erklärt. Grundsätzlich musst du nur eine Funktion für Openrouter in OpenWebUI hinzufügen.
Die in dieser Anleitung verwendete Funktion benötigt eine kleine Anpassung, um Pasteguard anstelle der Openrouter-API zu verwenden.
Öffne die hinzugefügte Funktion (https://openwebui.com/f/preswest/openrouter_integration_for_openwebui) in OpenWebUI und bearbeite Zeile 307 im Code der Funktion von:
url = "https://openrouter.ai/api/v1/chat/completions"
zu:
url = "http://localhost:3000/openai/v1"
oder, wenn Pasteguard auf einem anderen Server läuft (verwende die richtige IP):
url = "http://[IP_ADDRESS]:3000/openai/v1".
Bearbeite nun die config.yaml deines Pasteguard-Containers (zuvor gezeigt). Passe in der Konfiguration die base_url an, von:
openai:base_url:https://api.openai.com/v1
zu:
openai:base_url:https://openrouter.ai/api/v1
Nachdem du die config.yaml bearbeitet und den Container neu gestartet hast, sollte OpenWebUI die Chats nun korrekt weiterleiten. Teste es in OpenWebUI mit einem Beispiel-Chat wie “Meine E-Mail-Adresse ist info@xyz.com und meine Telefonnummer ist +40 111 123456”, und du solltest diese Anfrage im Pasteguard Dashboard als “maskierte Daten…” sehen.
Wenn du auf Probleme stößt, Fragen oder Wünsche nach zusätzlichen Informationen hast, kannst du gerne einen Kommentar unten hinterlassen (keine Anmeldung erforderlich).