Der Bereich „Aktionen & Filter“ im Localmind Cockpit bietet leistungsstarke Werkzeuge zur Anpassung und Kontrolle der Interaktionen zwischen Benutzern und dem KI-Modell.

Übersicht der Aktionen & Filter
- Suchleiste: Am oberen Rand befindet sich eine Suchleiste zur schnellen Suche nach spezifischen Aktionen und Filtern.
- Steuerelemente: Jede Aktion und jeder Filter hat Optionen für Einstellungen (Zahnrad-Symbol) und weitere Aktionen (Drei-Punkte-Menü), sowie einen Ein/Aus-Schalter. Im Drei-Punkte-Menü sind folgende Aktionen möglich
- Filter global aktivieren
- Filter bearbeiten
- Teilen
- Klonen
- Exportieren
- Löschen
- Import/Export-Funktionen: Am unteren Rand gibt es Optionen zum Importieren und Exportieren von Aktionen und Filtern.
- Neue Aktionen & Filter entdecken: Ein Bereich zum Entdecken und Beziehen benutzerdefinierter Aktionen und Filter ist vorhanden.
- Hinzufügen neuer Elemente: Ein „+“ Symbol in der oberen rechten Ecke ermöglicht das Hinzufügen neuer Aktionen oder Filter.
Funktionsweise der Filter
Filter sind ein zentrales Element zur Verarbeitung und Modifikation von Ein- und Ausgaben im Chatprozess.
- Eingehende Nachrichten (Inlet):
- Filter können auf eingehende Benutzernachrichten angewendet werden.
- Sie können den Inhalt analysieren, modifizieren oder bestimmte Aktionen auslösen, bevor die Nachricht an das KI-Modell weitergeleitet wird.
- Ausgehende Nachrichten (Outlet):
- Nach der Verarbeitung durch das KI-Modell können Filter auf die ausgehenden Nachrichten angewendet werden.
- Dies ermöglicht eine Nachbearbeitung oder Anpassung der KI-Antworten, bevor sie dem Benutzer präsentiert werden.
- Anwendungsmöglichkeiten: Filter können verschiedene Aufgaben erfüllen:
- Überwachung von Nachrichten (z.B. Integration mit Monitoring-Plattformen)
- Modifikation von Nachrichteninhalten
- Blockieren unerwünschter oder toxischer Inhalte
- Übersetzung von Nachrichten
- Implementierung von Ratenbegrenzungen für bestimmte Benutzer
- Flexibilität:
- Filter können für spezifische Modelle oder Pipelines aktiviert werden.
- Sie lassen sich an individuelle Bedürfnisse und Workflows anpassen.
Vorteile der Filter-Funktionalität
- Kontrolle: Ermöglicht präzise Steuerung des Nachrichtenflusses.
- Sicherheit: Hilft bei der Implementierung von Sicherheitsmaßnahmen wie dem Blockieren unerwünschter Inhalte.
- Anpassbarkeit: Filter können an spezifische Bedürfnisse und Workflows angepasst werden.
- Monitoring: Erleichtert die Integration von Überwachungs- und Analysewerkzeugen.
Erstellung eines Filters

""" title: Personal Information Filter version: 1.0.0 license: MIT """ import re from pydantic import BaseModel, Field from typing import Optional class Filter: class Valves(BaseModel): priority: int = Field(default=0, description="Prioritätslevel für Filter.") redact_email: bool = Field(default=True, description="Email-Adressen entfernen") redact_ssn: bool = Field(default=True, description="SSNs entfernen") redact_credit_card: bool = Field( default=True, description="Kreditkartennummern entfernen" ) redact_ip_address: bool = Field( default=True, description="IP Adressen entfernen" ) enabled_for_admins: bool = Field( default=False, description="PI-Filter auch für Admins aktivieren", ) def __init__(self): self.file_handler = False self.valves = self.Valves() self.patterns = { "email": re.compile(r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"), "ssn": re.compile(r"\b\d{3}-\d{2}-\d{4}\b"), "credit_card": re.compile(r"\b(?:\d{4}[-\s]?){3}\d{4}\b"), "ip_address": re.compile(r"\b(?:\d{1,3}\.){3}\d{1,3}\b"), } def redact_pii(self, text: str) -> str: if self.valves.redact_email: text = self.patterns["email"].sub("[EMAIL VERSTECKT]", text) if self.valves.redact_ssn: text = self.patterns["ssn"].sub("[SSN VERSTECKT]", text) if self.valves.redact_credit_card: text = self.patterns["credit_card"].sub("[KREDITKARTE VERSTECKT]", text) if self.valves.redact_ip_address: text = self.patterns["ip_address"].sub("[IP ADRESSE VERSTECKT]", text) return text def inlet(self, body: dict, __user__: Optional[dict] = None) -> dict: print(f"inlet:{__name__}") print(f"inlet:body:{body}") print(f"inlet:user:{__user__}") if ( __user__ is None or not __user__.get("role") == "admin" or self.valves.enabled_for_admins ): messages = body.get("messages", []) for message in messages: if message.get("role") == "user": message["content"] = self.redact_pii(message["content"]) return body def outlet(self, body: dict, __user__: Optional[dict] = None) -> dict: print(f"outlet:{__name__}") print(f"outlet:body:{body}") print(f"outlet:user:{__user__}") return body
Filter testen und optimieren
Testen Sie Ihren Filter gründlich mit verschiedenen Eingaben und passen Sie ihn bei Bedarf an. Berücksichtigen Sie Aspekte wie Performanz und Genauigkeit.
Filter aktivieren
Nachdem Sie Ihren Filter erstellt und getestet haben, können Sie ihn in Localmind aktivieren:
- Navigieren Sie zum Bereich „Aktionen & Filter“.
- Klicken Sie auf das „+“ Symbol, um einen neuen Filter hinzuzufügen.
- Laden Sie Ihren Filter-Code hoch oder fügen Sie ihn direkt ein.
- Konfigurieren Sie die Valves (in diesem Fall den
profanity_level
) nach Bedarf. - Aktivieren Sie den Filter mit dem Ein/Aus-Schalter.
Durch die Erstellung und Aktivierung dieses Profanity Filters können Sie sicherstellen, dass unangemessene Sprache aus den Benutzereingaben entfernt wird, bevor sie das KI-Modell erreichen. Dies trägt zu einer sichereren und angemesseneren Interaktion bei.
Funktionsweise der Aktionen
Aktionen in Localmind sind benutzerdefinierte Funktionen, die es ermöglichen, interaktive Elemente in Form von Schaltflächen zur Nachrichtentoolbar hinzuzufügen. Diese Funktion erweitert die Interaktionsmöglichkeiten zwischen Benutzern und dem KI-System erheblich.
Hauptmerkmale der Aktionen:
- Benutzerdefinierte Schaltflächen: Aktionen erscheinen als klickbare Buttons in der Nachrichtentoolbar, die Benutzer direkt aufrufen können.
- Erweiterte Interaktivität: Sie ermöglichen eine dynamischere und vielseitigere Kommunikation über den reinen Textaustausch hinaus.
- Aufgabenspezifische Funktionen: Aktionen können für verschiedene Zwecke programmiert werden, um spezifische Aufgaben oder Prozesse auszuführen.
Anwendungsbeispiele:
- Berechtigungsanfragen: Benutzer können aufgefordert werden, bestimmte Aktionen explizit zu genehmigen, bevor sie ausgeführt werden.
- Datenvisualisierung: Generierung und Anzeige von Visualisierungen basierend auf strukturierten Daten aus dem Chat.
- Multimedia-Integration: Erstellung und Download von Audio-Snippets aus Chatverläufen.
- Dateimanagement: Hochladen, Herunterladen oder Teilen von Dateien direkt aus dem Chatinterface.
- Externe Integrationen: Ausführung von Aktionen in Drittanbieter-Systemen oder APIs.
Vorteile der Aktionen:
- Verbesserte Benutzerfreundlichkeit: Komplexe Aufgaben können durch einfache Buttonklicks initiiert werden.
- Erhöhte Effizienz: Reduzierung der notwendigen Texteingaben für häufig durchgeführte Aktionen.
- Kontextsensitive Interaktionen: Aktionen können basierend auf dem aktuellen Gesprächskontext dynamisch angepasst werden.
- Erweiterbarkeit: Das System kann leicht um neue Funktionen erweitert werden, ohne die Kernfunktionalität zu beeinträchtigen.
Erstellung einer Aktion
Aktionen im Localmind Cockpit ermöglichen es, benutzerdefinierte Funktionen als interaktive Elemente in die Nachrichtentoolbar einzufügen. Im Folgenden sehen Sie eine Beispiel-Aktion „Als PDF speichern“, welche eine PDF-Generierungs-API von Localmind nutzt (zur freien Verwendung).
""" title: Text als PDF speichern version: 1.0.0 license: MIT """ import requests from typing import Optional from pydantic import BaseModel, Field class Action: class Valves(BaseModel): API_BASE_URL: str = Field( default="https://skills-api.localmind.io", description="Base URL for the PDF generation API.", ) API_KEY: str = Field( default="ein_api_key_hier_zu_platzieren", description="API key for authentication with the PDF generation service.", ) def __init__(self): self.type = "action" self.name = "Letzte Assistentennachricht als PDF speichern" self.description = "Speichert die letzte Assistentennachricht in der Konversation als PDF-Datei." self.valves = self.Valves() async def action( self, body: dict, __user__=None, __event_emitter__=None, __event_call__=None ) -> Optional[dict]: if not __event_emitter__: return {"error": "Event emitter is not available."} await __event_emitter__( { "type": "status", "data": { "description": "PDF wird vorbereitet...", "done": False, }, } ) messages = body.get("messages", []) last_assistant_message = next( ( msg["content"] for msg in reversed(messages) if msg["role"] == "assistant" ), None, ) if not last_assistant_message: await __event_emitter__( { "type": "status", "data": { "description": "Keine Assistentennachricht gefunden.", "done": True, }, } ) return { "error": "Keine Assistentennachricht gefunden, um ein PDF zu erstellen." } sanitized_text = last_assistant_message.replace("\x00", "").strip() url = f"{self.valves.API_BASE_URL}/tools/save-as-pdf" headers = { "accept": "application/json", "X-API-Key": self.valves.API_KEY, "Content-Type": "application/json", } data = {"text": sanitized_text} try: await __event_emitter__( { "type": "status", "data": { "description": "PDF-Generierungsanfrage wird übermittelt...", "done": False, }, } ) response = requests.post(url, headers=headers, json=data) response.raise_for_status() await __event_emitter__( { "type": "status", "data": { "description": "API-Antwort wird verarbeitet...", "done": False, }, } ) result = response.json() if "document_url" in result: document_url = result["document_url"] await __event_emitter__( { "type": "status", "data": { "description": "PDF erfolgreich erstellt.", "done": True, }, } ) await __event_emitter__( { "type": "message", "data": { "content": f"\n\n[PDF-Datei downloaden]({document_url})" }, } ) return {"success": True, "document_url": document_url} else: raise ValueError("Die PDF-Generierung hat nicht geklappt.") except requests.RequestException as e: error_message = f"Fehler bei der Kommunikation mit der PDF-API: {str(e)}" except ValueError as e: error_message = str(e) except Exception as e: error_message = f"Unerwarteter Fehler: {str(e)}" await __event_emitter__( { "type": "status", "data": {"description": f"Fehler: {error_message}", "done": True}, } ) return {"error": f"Fehler beim Generieren des PDFs: {error_message}"}
Aktion testen und optimieren
Testen Sie Ihre Aktion gründlich mit verschiedenen Szenarien und optimieren Sie sie bei Bedarf. Achten Sie besonders auf die Fehlerbehandlung und Benutzerfreundlichkeit.
Aktion aktivieren
Nach der Erstellung und dem Testen können Sie die Aktion im Localmind Cockpit aktivieren:
- Navigieren Sie zum Bereich „Aktionen & Filter“.
- Klicken Sie auf das „+“ Symbol, um eine neue Aktion hinzuzufügen.
- Laden Sie Ihren Aktions-Code hoch oder fügen Sie ihn direkt ein.
- Konfigurieren Sie die Valves und UserValves nach Bedarf.
- Aktivieren Sie die Aktion mit dem Ein/Aus-Schalter.
Diese „Als PDF speichern“-Aktion ermöglicht es Benutzern, die letzte Nachricht des Assistenten mit einem einfachen Klick als PDF-Datei zu speichern und herunterzuladen.
War dieser Artikel hilfreich?
Das ist großartig!
Vielen Dank für das Feedback
Leider konnten wir nicht helfen
Vielen Dank für das Feedback
Feedback gesendet
Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren