Guía de reglas FUZZY_MAP¶
Formato de regla¶
('replacement', r'regex_pattern', threshold, {'command_flags': re.IGNORECASE})
Posición |
Nombre |
Descripción |
|---|---|---|
1 |
reemplazo |
El texto de salida después de la regla coincide con |
2 |
patrón |
Regex o cadena difusa para comparar |
3 |
umbral |
Para reglas de expresiones regulares: ignoradas. Para reglas difusas: puntuación mínima de coincidencia (0–100) |
4 |
opciones |
Diccionario opcional (consulte “Referencia de opciones” a continuación). Utilice |
Reemplazos basados en archivos¶
Si “reemplazo” comienza con un prefijo configurado en “FILE4REPLACEMENT_ALLOWED_PREFIXES”
(predeterminado: - o .), Aura lo trata como un nombre de archivo y busca su contenido en el
directorio del complemento en lugar de usar la cadena literal. Esto guarda secretos (contraseñas,
Claves API) fuera del código fuente.
Consulte File_Based_Replacement.md para obtener más detalles.
Reemplazos crudos¶
De forma predeterminada (False), las cadenas de reemplazo son procesadas por re.sub() de Python, que admite el uso de referencias inversas de expresiones regulares como \1 o \2 para insertar grupos capturados (por ejemplo: (r'\1', r'(\d)\s+(?=\d)', 95)).
Si su reemplazo es una cadena de varias líneas o contiene barras invertidas sin escape (como plantillas de código o rutas de acceso) y debe conservarse exactamente como está, habilite 'raw_replacement': True en el diccionario de opciones:
(System_Instructions, r'^(system instructions)$', 10, {'command_flags': re.IGNORECASE, 'raw_replacement': True})
Opciones disponibles configurables por el usuario:¶
command_flags(entero): indicadores Regex utilizados durante la compilación del patrón. Ejemplo:{'command_flags': re.IGNORECASE}raw_replacement(booleano): cuando esTrue, el texto de reemplazo se trata como una cadena literal pura y se omite mediante el análisis de barra invertidare.subde Python. Es crucial para mensajes de varias líneas o cadenas con barras invertidas sin escape (\). Ejemplo:{'raw_replacement': Verdadero}cache(booleano): alterna la caché de resultados de AURA. Establezca en “False” las reglas que generan resultados dinámicos (por ejemplo, hora actual, chistes aleatorios) para garantizar que se evalúen de nuevo en cada partido. Ejemplo:{'caché': Falso}skip_list(lista de cadenas): especifica los módulos de canalización de posprocesamiento que se omitirán cuando esta regla coincida. Ejemplo:{'skip_list': ['LanguageTool']}(omite la revisión gramatical)only_in_windows(lista de cadenas de expresiones regulares): restringe la regla para que solo se active si el título de la ventana activa coincide con uno de los patrones especificados. Ejemplo:{'only_in_windows': [r'^Mozilla Firefox$', r'Chrome']}exclude_windows(lista de cadenas de expresiones regulares): evita que la regla se active si el título de la ventana activa coincide con uno de los patrones especificados. Ejemplo:{'exclude_windows': [r'Terminal', r'Claude']}window_ignore_case(booleano): controla si la coincidencia de ventanas (only_in_windows/exclude_windows) se evalúa sin distinguir entre mayúsculas y minúsculas (True) o sin distinguir entre mayúsculas y minúsculas (False). Si se omite, vuelve a la configuración globalLOWERCASE_WINDOW_TITLESenconfig/settings.py. Ejemplo:{'window_ignore_case': Falso}on_match_exec(lista de rutas/objetos de cadena): rutas a scripts/complementos que deben ejecutarse cuando esta regla coincide (utilizada en gran medida por reglas generales y alternativas). Ejemplo:{'on_match_exec': [SL5NET_AURA_PROJECT_ROOT / 'scripts' / 'custom_action.py']}
Lógica de canalización¶
Las reglas se procesan de arriba hacia abajo
Lógica de canalización¶
Las reglas se procesan de arriba hacia abajo
Todas las reglas de coincidencia se aplican (acumulativas)
Una fullmatch (
^...$) detiene la canalización inmediatamenteLas reglas anteriores tienen prioridad sobre las reglas posteriores.
Patrones comunes¶
Coincidir con una sola palabra (límite de palabra)¶
('Python', r'\bpython\b', 0, {'command_flags': re.IGNORECASE})
Coincidir con múltiples variantes¶
('OpenAI', r'\bopen\s*ai\b', 0, {'command_flags': re.IGNORECASE})
Fullmatch – detiene el proceso¶
('hello koan', r'^.*$', 0, {'command_flags': re.IGNORECASE})
⚠️ Esto coincide con todo. El oleoducto se detiene aquí. Las normas anteriores siguen teniendo prioridad.
Coincidir con el inicio de la entrada¶
('Note: ', r'^notiz\b', 0, {'command_flags': re.IGNORECASE})
Coincide con la frase exacta¶
('New York', r'\bnew york\b', 0, {'command_flags': re.IGNORECASE})
Ubicaciones de archivos¶
Archivo |
Fase |
Descripción |
|---|---|---|
|
Herramienta previa al lenguaje |
Aplicado antes de la revisión ortográfica |
|
Herramienta post-idioma |
Aplicado después de la revisión ortográfica |
|
Herramienta previa al lenguaje |
Reglas de puntuación |
Consejos¶
Poner reglas específicas antes que las generales
Utilice
^...$fullmatch solo cuando desee detener todo procesamiento posteriorFUZZY_MAP_pre.pyes ideal para correcciones antes de la revisión ortográficaReglas de prueba con:
s tu entrada de pruebaen la consola AuraLas copias de seguridad se crean automáticamente como
.peter_backup
Ejemplos¶
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}),
]
Tu primera regla: paso a paso¶
Abra
config/maps/plugins/sandbox/de-DE/FUZZY_MAP_pre.pyAgregue su regla dentro de
FUZZY_MAP_pre = [...]Guardar: Aura se recarga automáticamente, no es necesario reiniciar
Dicta tu frase desencadenante y observa cómo se dispara
Estructura de archivos recomendada¶
Coloque sus reglas antes de bloques de comentarios largos:
# 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.
# ============================================================
¿Por qué? Auto-Fix de Aura escanea solo el primer ~1 KB de un archivo. Si sus reglas aparecen después de un encabezado largo, Auto-Fix no puede encontrarlas ni repararlas. También se recomienda el comentario de ruta en la línea 1: ayuda a los humanos a identificar rápidamente el archivo.