FUZZY_MAP 규칙 가이드¶
규칙 형식¶
('replacement', r'regex_pattern', threshold, {'command_flags': re.IGNORECASE})
위치 |
이름 |
설명 |
|---|---|---|
1 |
교체 |
규칙이 일치한 후의 출력 텍스트 |
2 |
패턴 |
일치시킬 정규식 또는 퍼지 문자열 |
3 |
임계값 |
정규식 규칙의 경우: 무시됩니다. 퍼지 규칙의 경우: 최소 일치 점수(0–100) |
4 |
옵션 |
선택적 사전(아래 “옵션 참조” 참조). 기본값으로 |
파일 기반 교체¶
replacement가 FILE4REPLACEMENT_ALLOWED_PREFIXES에 구성된 접두사로 시작하는 경우
(기본값: - 또는 .), Aura는 이를 파일 이름으로 처리하고
리터럴 문자열을 사용하는 대신 플러그인의 디렉터리를 사용합니다. 이는 비밀(비밀번호,
API 키)를 소스 코드에서 가져옵니다.
자세한 내용은 File_Based_Replacement.md를 참조하세요.
원시 교체¶
기본적으로(False) 대체 문자열은 Python의 re.sub()에 의해 처리됩니다. 이는 캡처된 그룹을 삽입하기 위해 \1 또는 \2와 같은 정규식 역참조 사용을 지원합니다(예: (r'\1', r'(\d)\s+(?=\d)', 95)).
대체 항목이 여러 줄 문자열이거나 이스케이프되지 않은 백슬래시(예: 코드 템플릿 또는 경로)를 포함하고 있는 그대로 정확하게 보존해야 하는 경우 옵션 사전에서 'raw_replacement': True를 활성화하세요.
(System_Instructions, r'^(system instructions)$', 10, {'command_flags': re.IGNORECASE, 'raw_replacement': True})
사용 가능한 사용자 구성 옵션:¶
command_flags(정수): 패턴 컴파일 중에 사용되는 정규식 플래그입니다. 예:{'command_flags': re.IGNORECASE}raw_replacement(부울):True인 경우 대체 텍스트는 순수 문자열 리터럴로 처리되고 Python의re.sub백슬래시 구문 분석을 통해 무시됩니다. 여러 줄 프롬프트나 이스케이프되지 않은 백슬래시(\)가 있는 문자열에 중요합니다. 예:{'raw_replacement': True}cache(부울): AURA 결과 캐시를 토글합니다. 동적 출력(예: 현재 시간, 무작위 농담)을 생성하는 규칙에 대해 ‘False’로 설정하면 매 경기마다 새로 평가됩니다. 예:{'캐시': 거짓}skip_list(문자열 목록): 이 규칙이 일치할 때 건너뛸 후처리 파이프라인 모듈을 지정합니다. 예:{'skip_list': ['LanguageTool']}(문법 검사 건너뛰기)only_in_windows(정규식 문자열 목록): 활성 창 제목이 지정된 패턴 중 하나와 일치하는 경우에만 트리거되도록 규칙을 제한합니다. 예:{'only_in_windows': [r'^Mozilla Firefox$', r'Chrome']}exclude_windows(정규식 문자열 목록): 활성 창 제목이 지정된 패턴 중 하나와 일치하는 경우 규칙이 트리거되지 않도록 합니다. 예:{'exclude_windows': [r'Terminal', r'Claude']}window_ignore_case(부울): 창 일치(only_in_windows/exclude_windows)가 대소문자를 구분하지 않고(True) 또는 대소문자를 구분하여(False) 평가되는지 여부를 제어합니다. 생략하면config/settings.py의 전역 설정LOWERCASE_WINDOW_TITLES로 대체됩니다. 예:{'window_ignore_case': False}on_match_exec(경로/문자열 개체 목록): 이 규칙이 일치할 때 실행되어야 하는 스크립트/플러그인에 대한 경로입니다(포괄 규칙과 폴백 규칙에서 많이 사용됨). 예:{'on_match_exec': [SL5NET_AURA_PROJECT_ROOT / 'scripts' / 'custom_action.py']}
파이프라인 로직¶
규칙은 하향식으로 처리됩니다.
파이프라인 로직¶
규칙은 하향식으로 처리됩니다.
모든 일치 규칙이 적용됩니다(누적).
fullmatch(
^...$)는 파이프라인을 즉시 중지합니다.이전 규칙이 이후 규칙보다 우선합니다.
일반적인 패턴¶
단일 단어 일치(단어 경계)¶
('Python', r'\bpython\b', 0, {'command_flags': re.IGNORECASE})
여러 변형 일치¶
('OpenAI', r'\bopen\s*ai\b', 0, {'command_flags': re.IGNORECASE})
Fullmatch – 파이프라인을 중지합니다.¶
('hello koan', r'^.*$', 0, {'command_flags': re.IGNORECASE})
⚠️ 모든 항목과 일치합니다. 파이프라인은 여기서 멈춥니다. 이전 규칙은 여전히 우선순위를 갖습니다.
입력 시작 일치¶
('Note: ', r'^notiz\b', 0, {'command_flags': re.IGNORECASE})
정확한 구문 일치¶
('New York', r'\bnew york\b', 0, {'command_flags': re.IGNORECASE})
파일 위치¶
파일 |
단계 |
설명 |
|---|---|---|
|
사전 언어 도구 |
맞춤법 검사 전에 적용됨 |
|
포스트 언어 도구 |
맞춤법 검사 후 적용 |
PUNCTUATION_MAP.py` |
사전 언어 도구 |
구두점 규칙 |
팁¶
일반 규칙 앞에 특정 규칙을 추가하세요.
추가 처리를 모두 중지하려는 경우에만
^...$전체 일치를 사용하세요.FUZZY_MAP_pre.py는 철자 검사 전 수정에 이상적입니다.Aura 콘솔에서
s your test input을 사용하여 규칙을 테스트합니다.백업은 ‘.peter_backup’으로 자동 생성됩니다.
예¶
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}),
]
첫 번째 규칙 — 단계별¶
config/maps/plugins/sandbox/de-DE/FUZZY_MAP_pre.py를 엽니다.FUZZY_MAP_pre = [...]안에 규칙을 추가하세요.저장 - Aura가 자동으로 다시 로드되므로 다시 시작할 필요가 없습니다.
트리거 문구를 받아쓰고 실행되는 것을 지켜보세요.
권장 파일 구조¶
긴 댓글 블록 앞에 규칙을 입력하세요.
# 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.
# ============================================================
이유는 무엇입니까? Aura의 Auto-Fix는 파일의 처음 ~1KB만 검사합니다. 규칙이 긴 헤더 뒤에 나타나는 경우 자동 수정에서는 해당 규칙을 찾거나 복구할 수 없습니다. 1행의 경로 주석도 권장됩니다. 이는 사람이 파일을 빠르게 식별하는 데 도움이 됩니다.