FUZZY_MAP-Regelhandbuch¶
Regelformat¶
('replacement', r'regex_pattern', threshold, {'command_flags': re.IGNORECASE})
Position |
Name |
Beschreibung |
|---|---|---|
1 |
Ersatz |
Der Ausgabetext nach der Regel stimmt mit |
2 |
Muster |
Regex oder Fuzzy-String zum Vergleich mit |
3 |
Schwelle |
Für Regex-Regeln: ignoriert. Für Fuzzy-Regeln: Mindestübereinstimmungspunktzahl (0–100) |
4 |
Optionen |
Optionales Wörterbuch (siehe „Optionsreferenz“ unten). Für Standardwerte |
Dateibasierte Ersetzungen¶
Wenn „Ersatz“ mit einem in „FILE4REPLACEMENT_ALLOWED_PREFIXES“ konfigurierten Präfix beginnt
(Standard: - oder .), Aura behandelt es als Dateinamen und sucht nach seinem Inhalt im
Plugin-Verzeichnis, anstatt die Literalzeichenfolge zu verwenden. Dadurch bleiben Geheimnisse (Passwörter,
API-Schlüssel) aus dem Quellcode.
Weitere Informationen finden Sie unter File_Based_Replacement.md.
Roher Ersatz¶
Standardmäßig („False“) werden Ersetzungszeichenfolgen von Pythons „re.sub()“ verarbeitet, das die Verwendung von Regex-Rückverweisen wie „\1“ oder „\2“ zum Einfügen erfasster Gruppen unterstützt (zum Beispiel: „(r’\1‘, r‘(\d)\s+(?=\d)‘, 95)‘). Wenn Ihre Ersetzung eine mehrzeilige Zeichenfolge ist oder Backslashes ohne Escapezeichen enthält (z. B. Codevorlagen oder Pfade) und genau so beibehalten werden soll, wie sie ist, aktivieren Sie „raw_replacement“: True im Optionswörterbuch:
(System_Instructions, r'^(system instructions)$', 10, {'command_flags': re.IGNORECASE, 'raw_replacement': True})
Verfügbare vom Benutzer konfigurierbare Optionen:¶
command_flags(Ganzzahl): Regex-Flags, die während der Musterkompilierung verwendet werden. Beispiel:{'command_flags': re.IGNORECASE}raw_replacement(boolean): Bei „True“ wird der Ersetzungstext als reines String-Literal behandelt und durch Pythons „re.sub“-Backslash-Analyse umgangen. Entscheidend für mehrzeilige Eingabeaufforderungen oder Zeichenfolgen mit Backslashes ohne Escapezeichen (\). Beispiel:{'raw_replacement': True}cache(boolean): Schaltet den AURA-Ergebniscache um. Für Regeln, die dynamische Ausgaben generieren (z. B. aktuelle Uhrzeit, zufällige Witze), auf „False“ setzen, um sicherzustellen, dass sie bei jedem Spiel neu ausgewertet werden. Beispiel:{'cache': False}skip_list(Liste von Zeichenfolgen): Gibt Nachbearbeitungs-Pipeline-Module an, die übersprungen werden sollen, wenn diese Regel übereinstimmt. Beispiel:{'skip_list': ['LanguageTool']}(überspringt die Grammatikprüfung)only_in_windows(Liste der Regex-Strings): Beschränkt die Regel so, dass sie nur dann ausgelöst wird, wenn der Titel des aktiven Fensters mit einem der angegebenen Muster übereinstimmt. Beispiel:{'only_in_windows': [r'^Mozilla Firefox$', r'Chrome']}exclude_windows(Liste der Regex-Strings): Verhindert, dass die Regel ausgelöst wird, wenn der Titel des aktiven Fensters mit einem der angegebenen Muster übereinstimmt. Beispiel:{'exclude_windows': [r'Terminal', r'Claude']}window_ignore_case(boolean): Steuert, ob der Fensterabgleich („only_in_windows“ / „exclude_windows“) ohne Berücksichtigung der Groß-/Kleinschreibung („True“) oder unter Berücksichtigung der Groß-/Kleinschreibung („False“) ausgewertet wird. Wenn es weggelassen wird, wird auf die globale Einstellung „LOWERCASE_WINDOW_TITLES“ in „config/settings.py“ zurückgegriffen. Beispiel:{'window_ignore_case': False}on_match_exec(Liste von Pfad-/String-Objekten): Pfade zu Skripten/Plugins, die ausgeführt werden sollen, wenn diese Regel übereinstimmt (wird häufig von Catch-All- und Fallback-Regeln verwendet). Beispiel:{'on_match_exec': [SL5NET_AURA_PROJECT_ROOT / 'scripts' / 'custom_action.py']}
Pipeline-Logik¶
Regeln werden top-down verarbeitet
Pipeline-Logik¶
Regeln werden top-down verarbeitet
Alle Matching-Regeln werden angewendet (kumulativ)
Ein fullmatch (
^...$) stoppt die Pipeline sofortFrühere Regeln haben Vorrang vor späteren Regeln
Gemeinsame Muster¶
Übereinstimmung mit einem einzelnen Wort (Wortgrenze)¶
('Python', r'\bpython\b', 0, {'command_flags': re.IGNORECASE})
Passen Sie mehrere Varianten an¶
('OpenAI', r'\bopen\s*ai\b', 0, {'command_flags': re.IGNORECASE})
Fullmatch – stoppt die Pipeline¶
('hello koan', r'^.*$', 0, {'command_flags': re.IGNORECASE})
⚠️ Das passt zu allem. Die Pipeline stoppt hier. Frühere Regeln haben weiterhin Vorrang.
Beginn der Eingabe anpassen¶
('Note: ', r'^notiz\b', 0, {'command_flags': re.IGNORECASE})
Passt genau zu der Phrase¶
('New York', r'\bnew york\b', 0, {'command_flags': re.IGNORECASE})
Dateispeicherorte¶
Datei |
Phase |
Beschreibung |
|---|---|---|
|
Pre-LanguageTool |
Wird vor der Rechtschreibprüfung angewendet |
|
Post-LanguageTool |
Wird nach der Rechtschreibprüfung angewendet |
|
Pre-LanguageTool |
Zeichensetzungsregeln |
Tipps¶
Stellen Sie spezifische Regeln vor allgemeine Regeln
Verwenden Sie „^…$“ fullmatch nur, wenn Sie die gesamte weitere Verarbeitung stoppen möchten
„FUZZY_MAP_pre.py“ ist ideal für Korrekturen vor der Rechtschreibprüfung
Testregeln mit: „s your test input“ in der Aura-Konsole
Backups werden automatisch als „.peter_backup“ erstellt
Beispiele¶
FUZZY_MAP_pre = [
# Correct a common STT mistake
('Raspberry Pi', r'\braspberry\s*pie?\b', 0, {'command_flags': re.IGNORECASE}),
# Expand abbreviation
('zum Beispiel', r'\bzb\b', 0, {'command_flags': re.IGNORECASE}),
# Stop pipeline for testing
# ('test koan', r'^.*$', 0, {'command_flags': re.IGNORECASE}),
]
Ihre erste Regel – Schritt für Schritt¶
Öffnen Sie „config/maps/plugins/sandbox/de-DE/FUZZY_MAP_pre.py“.
Fügen Sie Ihre Regel in „FUZZY_MAP_pre = […]“ hinzu
Speichern – Aura wird automatisch neu geladen, kein Neustart erforderlich
Diktieren Sie Ihre Auslösephrase und beobachten Sie, wie sie ausgelöst wird
Empfohlene Dateistruktur¶
Platzieren Sie Ihre Regeln vor langen Kommentarblöcken:
# config/maps/plugins/sandbox/de-DE/FUZZY_MAP_pre.py
import re # noqa: F401
# too<-from
FUZZY_MAP_pre = [
('My Rule', r'my rule', 0, {'command_flags': re.IGNORECASE}),
]
# ============================================================
# Longer explanations, task descriptions, notes...
# can be as long as needed — they go AFTER the rules.
# ============================================================
Warum? Auras Auto-Fix scannt nur die ersten ca. 1 KB einer Datei. Wenn Ihre Regeln nach einer langen Kopfzeile angezeigt werden, kann Auto-Fix sie nicht finden oder reparieren. Der Pfadkommentar in Zeile 1 wird ebenfalls empfohlen – er hilft Benutzern, die Datei schnell zu identifizieren.