고급 결과 캐싱(상태 인식)

개요

Aura는 중복 처리를 제거하도록 설계된 지속적이고 상황을 인식하는 결과 캐시를 제공합니다. 음성 명령이 인식되고 규칙과 일치하면 Aura는 이전에 동일한 상황에서 정확히 동일한 결과가 생성되었는지 확인합니다. 일치하는 항목이 발견되면 Aura는 LanguageTool 문법 검사 또는 Ollama LLM 생성과 같은 비용이 많이 드는 작업을 우회하여 거의 0에 가까운 지연 시간으로 결과를 제공합니다.

주요 기능

  • 컨텍스트 인식: 캐시는 활성 창 제목에만 적용됩니다. “LibreOffice”에서 말한 명령은 “터미널”에서 사용한 명령과 다른 캐시 결과를 가질 수 있습니다.

  • 자가 치유(자동 무효화): 기본 규칙 파일(.py 맵)을 수정하면 캐시가 자동으로 만료됩니다.

  • 개인정보 보호 우선: 캐시된 모든 결과는 로컬 SQLite 데이터베이스(data/_aura_result_cache.db)에 저장됩니다.

  • 유지 관리 불필요: 대부분의 사용자에게 이는 구성 없이 전적으로 백그라운드에서 작동합니다.

작동 방식

시스템은 세 가지 변수를 기반으로 고유한 ‘cache_id’를 생성합니다.

  1. 규칙 출력: 지도에서 생성된 텍스트입니다.

  2. 언어: 현재 활성 언어 코드(예: de-DE).

  3. 활성 창: 현재 초점이 맞춰진 창의 제목입니다.

유효성 논리

캐시는 “오래된” 정보를 수신하지 않도록 보장합니다. 두 가지 유형의 유효성 검사를 사용합니다.

유형

이름

논리

사용 사례

유형 0

파일 자동 동기화

지도 파일의 수정 시간(mtime)을 사용합니다.

표준. 샌드박스 또는 맵을 편집하면 관련된 모든 캐시 항목이 즉시 무효화됩니다.

유형 1

수동 타임스탬프

규칙 속성에 제공된 고정 ‘타임스탬프’를 사용합니다.

개발자. 버전/타임스탬프를 하드코딩하여 특정 결과 상태를 강제하거나 유지합니다.

규칙 구성 예

FUZZY_MAP_pre.py 또는 FUZZY_MAP.py 파일 내에서 캐싱 동작을 직접 제어할 수 있습니다.

1. 기본 동작(자동 캐싱)

기본적으로 캐싱은 활성화되어 있으며 파일 수정 시간을 사용합니다.

# No extra attributes needed. 
# If this file is saved, the cache for this rule refreshes.
('Bold', r'^make it bold$', 100)

2. 캐시 비활성화

명령이 동적 데이터(예: 현재 시간 또는 무작위 농담)를 생성하는 경우 캐시를 비활성화해야 합니다.

('Current Time', r'^what time is it$', 100, {
    'cache': False 
})

3. 수동 타임스탬프(고정 버전 관리)

파일 편집에 관계없이(버전을 변경하지 않는 한) 캐시를 유지하려면 수동 타임스탬프를 사용하세요.

('Stable Command', r'^run complex task$', 100, {
    'timestamp': '2026-05-09-v1'
})

성능 영향

  • 캐시 부적중: 표준 처리(LLM 사용량에 따라 0.05초 - 5.0초).

  • 캐시 적중: 즉시 처리됩니다.

이 메커니즘은 CPU에 부담을 주지 않고 명령이나 수정된 오타가 즉시 반환됩니다.