Erweitertes Ergebnis-Caching (statusbewusst)¶
Übersicht¶
Aura verfügt über einen dauerhaften, kontextsensitiven Ergebniscache, der darauf ausgelegt ist, redundante Verarbeitung zu vermeiden. Wenn ein Sprachbefehl erkannt wird und einer Regel entspricht, prüft Aura, ob unter denselben Umständen zuvor genau dasselbe Ergebnis generiert wurde. Wenn eine Übereinstimmung gefunden wird, umgeht Aura teure Vorgänge wie LanguageTool-Grammatikprüfungen oder Ollama-LLM-Generierung und liefert das Ergebnis nahezu ohne Latenz.
Hauptmerkmale¶
Kontextbewusst: Der Cache ist spezifisch für den Titel des aktiven Fensters. Ein in „LibreOffice“ gesagter Befehl kann ein anderes zwischengespeichertes Ergebnis haben als der gleiche Befehl in „Terminal“.
Selbstheilung (automatische Invalidierung): Der Cache läuft automatisch ab, wenn Sie die zugrunde liegende Regeldatei (
.py-Karte) ändern.Datenschutz geht vor: Alle zwischengespeicherten Ergebnisse werden in einer lokalen SQLite-Datenbank („data/_aura_result_cache.db“) gespeichert.
Kein Wartungsaufwand: Für die meisten Benutzer funktioniert dies vollständig im Hintergrund ohne Konfiguration.
Wie es funktioniert¶
Das System generiert eine eindeutige „cache_id“ basierend auf drei Variablen:
Die Regelausgabe: Der von der Karte generierte Text.
Die Sprache: Der aktuell aktive Sprachcode (z. B. „de-DE“).
Das aktive Fenster: Der Titel des aktuell fokussierten Fensters.
Gültigkeitslogik¶
Der Cache stellt sicher, dass Sie niemals „veraltete“ Informationen erhalten. Es werden zwei Arten von Gültigkeitsprüfungen verwendet:
Geben Sie |
ein Name |
Logik |
Anwendungsfall |
|---|---|---|---|
Typ 0 |
Automatische Dateisynchronisierung |
Verwendet die Änderungszeit („mtime“) der Kartendatei. |
Standard. Wenn Sie Ihre Sandbox oder Karte bearbeiten, werden alle zugehörigen Cache-Einträge sofort ungültig. |
Typ 1 |
Manueller Zeitstempel |
Verwendet einen festen „Zeitstempel“, der in den Regelattributen bereitgestellt wird. |
Entwickler. Codieren Sie eine Version/einen Zeitstempel fest, um einen bestimmten Ergebnisstatus zu erzwingen oder beizubehalten. |
Beispiele für die Regelkonfiguration¶
Sie können das Caching-Verhalten direkt in Ihren Dateien „FUZZY_MAP_pre.py“ oder „FUZZY_MAP.py“ steuern.
1. Standardverhalten (automatisches Caching)¶
Standardmäßig ist das Caching aktiviert und verwendet die Änderungszeit der Datei.
# No extra attributes needed.
# If this file is saved, the cache for this rule refreshes.
('Bold', r'^make it bold$', 100)
2. Cache deaktivieren¶
Wenn ein Befehl dynamische Daten erzeugt (wie die aktuelle Uhrzeit oder einen zufälligen Witz), sollten Sie den Cache deaktivieren.
('Current Time', r'^what time is it$', 100, {
'cache': False
})
3. Manueller Zeitstempel (feste Versionierung)¶
Wenn Sie möchten, dass der Cache unabhängig von Dateiänderungen bestehen bleibt (es sei denn, Sie ändern die Version), verwenden Sie einen manuellen Zeitstempel.
('Stable Command', r'^run complex task$', 100, {
'timestamp': '2026-05-09-v1'
})
Auswirkungen auf die Leistung¶
Cache-Fehler: Standardverarbeitung (0,05 s – 5,0 s, abhängig von der LLM-Nutzung).
Cache-Treffer: Sofortige Verarbeitung.
Durch diesen Mechanismus werden Befehle oder korrigierte Tippfehler sofort zurückgegeben, ohne die CPU zu belasten.