Zaawansowane buforowanie wyników (z uwzględnieniem stanu)¶
Przegląd¶
Aura posiada trwałą, kontekstową pamięć podręczną wyników, zaprojektowaną w celu wyeliminowania zbędnego przetwarzania. Kiedy polecenie głosowe zostanie rozpoznane i pasuje do reguły, Aura sprawdza, czy w tych samych okolicznościach wygenerowano wcześniej dokładnie taki sam wynik. Jeśli zostanie znalezione dopasowanie, Aura omija kosztowne operacje, takie jak sprawdzanie gramatyki LanguageTool lub generowanie Ollama LLM, dostarczając wynik z niemal zerowym opóźnieniem.
Kluczowe funkcje¶
Uwzględnianie kontekstu: Pamięć podręczna jest specyficzna dla tytułu aktywnego okna. Polecenie wydane w „LibreOffice” może mieć inny wynik w pamięci podręcznej niż to samo polecenie w „Terminalu”.
Samonaprawa (automatyczne unieważnianie): Pamięć podręczna automatycznie wygasa, jeśli zmodyfikujesz podstawowy plik reguł (mapa
.py).Prywatność przede wszystkim: Wszystkie wyniki w pamięci podręcznej są przechowywane w lokalnej bazie danych SQLite (
data/_aura_result_cache.db).** Zero konserwacji:** W przypadku większości użytkowników działa to całkowicie w tle, bez konfiguracji.
Jak to działa¶
System generuje unikalny cache_id na podstawie trzech zmiennych:
Wyjście reguły: Tekst wygenerowany przez mapę.
Język: aktualny kod aktywnego języka (np.
de-DE).Aktywne okno: Tytuł aktualnie aktywnego okna.
Logika ważności¶
Pamięć podręczna gwarantuje, że nigdy nie otrzymasz „nieaktualnych” informacji. Wykorzystuje dwa rodzaje kontroli ważności:
Wpisz |
Imię |
Logika |
Przypadek użycia |
|---|---|---|---|
Typ 0 |
Automatyczna synchronizacja plików |
Wykorzystuje czas modyfikacji („mtime”) pliku mapy. |
Standard. Jeśli edytujesz piaskownicę lub mapę, wszystkie powiązane wpisy w pamięci podręcznej zostaną natychmiast unieważnione. |
Typ 1 |
Ręczny znacznik czasu |
Używa stałego „znacznika czasu” podanego w atrybutach reguły. |
Programista. Zakoduj na stałe wersję/sygnaturę czasową, aby wymusić lub utrzymać określony stan wyniku. |
Przykłady konfiguracji reguł¶
Możesz kontrolować zachowanie buforowania bezpośrednio w plikach FUZZY_MAP_pre.py lub FUZZY_MAP.py.
1. Zachowanie domyślne (automatyczne buforowanie)¶
Domyślnie buforowanie jest włączone i wykorzystuje czas modyfikacji pliku. KOD_BLOKU_0
2. Wyłączanie pamięci podręcznej¶
Jeśli polecenie generuje dane dynamiczne (takie jak bieżący czas lub losowy żart), powinieneś wyłączyć pamięć podręczną. KOD_BLOKU_1
3. Ręczny znacznik czasu (stała wersja)¶
Jeśli chcesz, aby pamięć podręczna trwała niezależnie od edycji pliku (chyba że zmienisz wersję), użyj ręcznego znacznika czasu. KOD_BLOKU_2
Wpływ na wydajność¶
Brak pamięci podręcznej: Przetwarzanie standardowe (0,05 s – 5,0 s w zależności od wykorzystania LLM).
Hit pamięci podręcznej: Natychmiastowe przetwarzanie.
Dzięki temu mechanizmowi polecenia lub poprawione literówki są natychmiast zwracane, bez obciążania procesora.