Guia de regras FUZZY_MAP¶
Formato da regra¶
('replacement', r'regex_pattern', threshold, {'command_flags': re.IGNORECASE})
Posição |
Nome |
Descrição |
|---|---|---|
1 |
substituição |
O texto de saída após a regra corresponder |
2 |
padrão |
Regex ou string difusa para correspondência |
3 |
limiar |
Para regras regex: ignorado. Para regras difusas: pontuação mínima de correspondência (0–100) |
4 |
opções |
Dicionário opcional (veja “Referência de opções” abaixo). Use |
Substituições baseadas em arquivo¶
Se replacement começar com um prefixo configurado em FILE4REPLACEMENT_ALLOWED_PREFIXES
(padrão: - ou .), Aura o trata como um nome de arquivo e procura seu conteúdo no
diretório do plugin em vez de usar a string literal. Isso mantém segredos (senhas,
Chaves de API) fora do código-fonte.
Consulte File_Based_Replacement.md para obter detalhes.
Substituições brutas¶
Por padrão (False), as strings de substituição são processadas pelo re.sub() do Python, que suporta o uso de referências anteriores de regex como \1 ou \2 para inserir grupos capturados (por exemplo: (r'\1', r'(\d)\s+(?=\d)', 95)).
Se a sua substituição for uma string multilinha ou contém barras invertidas sem escape (como modelos de código ou caminhos) e deve ser preservada exatamente como está, habilite 'raw_replacement': True no dicionário de opções:
(System_Instructions, r'^(system instructions)$', 10, {'command_flags': re.IGNORECASE, 'raw_replacement': True})
Opções configuráveis pelo usuário disponíveis:¶
command_flags(inteiro): Flags Regex usados durante a compilação do padrão. Exemplo:{'command_flags': re.IGNORECASE}raw_replacement(booleano): QuandoTrue, o texto de substituição é tratado como uma string literal pura e ignorado pela análise de barra invertidare.subdo Python. Crucial para prompts multilinhas ou strings com barras invertidas sem escape (\). Exemplo:{'raw_replacement': True}cache(booleano): Alterna o cache de resultados do AURA. Defina comoFalsepara regras que geram resultados dinâmicos (por exemplo, hora atual, piadas aleatórias) para garantir que sejam avaliadas de forma atualizada em cada partida. Exemplo:{'cache': False}skip_list(lista de strings): Especifica módulos de pipeline de pós-processamento a serem ignorados quando esta regra corresponder. Exemplo:{'skip_list': ['LanguageTool']}(ignora a verificação gramatical)only_in_windows(lista de strings regex): Restringe a regra para ser acionada apenas se o título da janela ativa corresponder a um dos padrões especificados. Exemplo:{'only_in_windows': [r'^Mozilla Firefox$', r'Chrome']}exclude_windows(lista de strings regex): Impede que a regra seja acionada se o título da janela ativa corresponder a um dos padrões especificados. Exemplo:{'exclude_windows': [r'Terminal', r'Claude']}window_ignore_case(booleano): Controla se a correspondência de janela (only_in_windows/exclude_windows) é avaliada sem distinção entre maiúsculas e minúsculas (True) ou com distinção entre maiúsculas e minúsculas (False). Se omitido, volta para a configuração globalLOWERCASE_WINDOW_TITLESemconfig/settings.py. Exemplo:{'window_ignore_case': False}on_match_exec(lista de objetos Path/string): Caminhos para scripts/plugins que devem ser executados quando esta regra corresponder (muito usado por regras catch-all e fallback). Exemplo:{'on_match_exec': [SL5NET_AURA_PROJECT_ROOT / 'scripts' / 'custom_action.py']}
Lógica de pipeline¶
As regras são processadas de cima para baixo
Lógica de pipeline¶
As regras são processadas de cima para baixo
Todas as regras correspondentes são aplicadas (cumulativas)
Um fullmatch (
^...$) interrompe o pipeline imediatamenteAs regras anteriores têm prioridade sobre as regras posteriores
Padrões Comuns¶
Corresponder a uma única palavra (limite da palavra)¶
('Python', r'\bpython\b', 0, {'command_flags': re.IGNORECASE})
Combine múltiplas variantes¶
CODE_BLOCO_3
Fullmatch – interrompe o pipeline¶
('OpenAI', r'\bopen\s*ai\b', 0, {'command_flags': re.IGNORECASE})
⚠️ Isso combina com tudo. O pipeline para aqui. As regras anteriores ainda têm prioridade.
Corresponde ao início da entrada¶
CODE_BLOCO_5
Corresponde à frase exata¶
('hello koan', r'^.*$', 0, {'command_flags': re.IGNORECASE})
Locais de arquivos¶
Arquivo |
Fase |
Descrição |
|---|---|---|
|
Pré-IdiomaFerramenta |
Aplicado antes da verificação ortográfica |
|
Ferramenta Pós-Linguagem |
Aplicado após verificação ortográfica |
|
Pré-IdiomaFerramenta |
Regras de pontuação |
Pontas¶
Coloque regras específicas antes das regras gerais
Use
^...$fullmatch somente quando quiser interromper todo o processamento adicionalFUZZY_MAP_pre.pyé ideal para correções antes da verificação ortográficaRegras de teste com:
é sua entrada de testeno console do AuraOs backups são criados automaticamente como
.peter_backup
Exemplos¶
('Note: ', r'^notiz\b', 0, {'command_flags': re.IGNORECASE})
Sua primeira regra - passo a passo¶
Abra
config/maps/plugins/sandbox/de-DE/FUZZY_MAP_pre.pyAdicione sua regra dentro de
FUZZY_MAP_pre = [...]Salvar – Aura recarrega automaticamente, não é necessário reiniciar
Dite sua frase-gatilho e observe-a disparar
Estrutura de arquivo recomendada¶
Coloque suas regras antes de longos blocos de comentários:
('New York', r'\bnew york\b', 0, {'command_flags': re.IGNORECASE})
Por quê? O Auto-Fix do Aura verifica apenas o primeiro ~1KB de um arquivo. Se suas regras aparecerem após um cabeçalho longo, o Auto-Fix não poderá localizá-las ou repará-las. O comentário do caminho na linha 1 também é recomendado — ajuda os humanos a identificar rapidamente o arquivo.