Cache de resultados avançado (com reconhecimento de estado)¶
Visão geral¶
O Aura apresenta um cache de resultados persistente e sensível ao contexto, projetado para eliminar processamento redundante. Quando um comando de voz é reconhecido e corresponde a uma regra, o Aura verifica se exatamente o mesmo resultado foi gerado antes nas mesmas circunstâncias. Se uma correspondência for encontrada, o Aura ignora operações caras, como verificações gramaticais do LanguageTool ou geração Ollama LLM, entregando o resultado com latência quase zero.
Principais recursos¶
Context-Aware: O cache é específico para o título da janela ativa. Um comando dito no “LibreOffice” pode ter um resultado em cache diferente do mesmo comando no “Terminal”.
Self-Healing (Auto-Invalidation): O cache expira automaticamente se você modificar o arquivo de regra subjacente (mapa
.py).Privacidade em primeiro lugar: Todos os resultados armazenados em cache são armazenados em um banco de dados SQLite local (
data/_aura_result_cache.db).Manutenção Zero: Para a maioria dos usuários, isso funciona inteiramente em segundo plano, sem configuração.
Como funciona¶
O sistema gera um cache_id exclusivo baseado em três variáveis:
A saída da regra: O texto gerado pelo mapa.
O Idioma: O código do idioma ativo atual (por exemplo,
de-DE).A Janela Ativa: O título da janela atualmente em foco.
Lógica de Validade¶
O cache garante que você nunca receba informações “obsoletas”. Ele usa dois tipos de verificações de validade:
Tipo |
Nome |
Lógica |
Caso de uso |
|---|---|---|---|
Digite 0 |
Sincronização automática de arquivos |
Usa o horário de modificação ( |
Padrão. Se você editar seu Sandbox ou Mapa, todas as entradas de cache associadas serão invalidadas instantaneamente. |
Tipo 1 |
Carimbo de data e hora manual |
Usa um |
Desenvolvedor. Codifique uma versão/carimbo de data/hora para forçar ou manter um estado de resultado específico. |
Exemplos de configuração de regras¶
Você pode controlar o comportamento do cache diretamente nos arquivos FUZZY_MAP_pre.py ou FUZZY_MAP.py.
1. Comportamento padrão (cache automático)¶
Por padrão, o cache está habilitado e usa o horário de modificação do arquivo.
# No extra attributes needed.
# If this file is saved, the cache for this rule refreshes.
('Bold', r'^make it bold$', 100)
2. Desativando cache¶
Se um comando produzir dados dinâmicos (como a hora atual ou uma piada aleatória), você deverá desabilitar o cache.
('Current Time', r'^what time is it$', 100, {
'cache': False
})
3. Carimbo de data/hora manual (versão fixa)¶
Se você quiser que o cache persista independentemente das edições do arquivo (a menos que você altere a versão), use um carimbo de data/hora manual.
('Stable Command', r'^run complex task$', 100, {
'timestamp': '2026-05-09-v1'
})
Impacto no desempenho¶
Cache Miss: Processamento padrão (0,05s - 5,0s dependendo do uso do LLM).
Cache Hit: Processamento instantâneo.
Este mecanismo faz com que comandos ou erros de digitação corrigidos sejam retornados instantaneamente sem sobrecarregar a CPU.