# 高度な結果キャッシュ (状態認識) ## 概要 Aura は、冗長な処理を排除するように設計された永続的なコンテキスト認識型の結果キャッシュを備えています。音声コマンドが認識され、ルールに一致すると、Aura は同じ状況でまったく同じ結果が以前に生成されたかどうかを確認します。一致が見つかった場合、Aura は **LanguageTool 文法チェック** や **Ollama LLM 生成** などの高価な操作をバイパスし、ほぼゼロのレイテンシーで結果を提供します。 ## 主な機能 - **コンテキスト認識:** キャッシュはアクティブなウィンドウのタイトルに固有です。 「LibreOffice」で実行されたコマンドは、「ターミナル」での同じコマンドとは異なるキャッシュ結果を持つ可能性があります。 - **自己修復 (自動無効化):** 基礎となるルール ファイル (`.py` マップ) を変更すると、キャッシュは自動的に期限切れになります。 - **プライバシー第一:** キャッシュされた結果はすべてローカル SQLite データベース (`data/_aura_result_cache.db`) に保存されます。 - **メンテナンス不要:** ほとんどのユーザーにとって、これは設定なしで完全にバックグラウンドで動作します。 ## 仕組み システムは、次の 3 つの変数に基づいて一意の `cache_id` を生成します。 1. **ルール出力:** マップによって生成されたテキスト。 2. **言語:** 現在アクティブな言語コード (例: `de-DE`)。 3. **アクティブ ウィンドウ:** 現在フォーカスされているウィンドウのタイトル。 ### 妥当性ロジック キャッシュにより、「古い」情報を受け取ることがなくなります。次の 2 種類の有効性チェックを使用します。 |タイプ |名前 |ロジック |ユースケース | | :--- | :--- | :--- | :--- | | **タイプ 0** | **ファイルの自動同期** |マップ ファイルの変更時刻 (`mtime`) を使用します。 | **標準。** サンドボックスまたはマップを編集すると、関連するすべてのキャッシュ エントリが即座に無効になります。 | | **タイプ 1** | **手動タイムスタンプ** |ルール属性で提供される固定の「タイムスタンプ」を使用します。 | **開発者** バージョン/タイムスタンプをハードコーディングして、特定の結果状態を強制または維持します。 | ## ルールの設定例 `FUZZY_MAP_pre.py` または `FUZZY_MAP.py` ファイル内でキャッシュ動作を直接制御できます。 ### 1. デフォルトの動作 (自動キャッシュ) デフォルトでは、キャッシュは有効になっており、ファイルの変更時刻が使用されます。 ```python # No extra attributes needed. # If this file is saved, the cache for this rule refreshes. ('Bold', r'^make it bold$', 100) ``` ### 2. キャッシュの無効化 コマンドが動的データ (現在時刻やランダムなジョークなど) を生成する場合は、キャッシュを無効にする必要があります。 ```python ('Current Time', r'^what time is it$', 100, { 'cache': False }) ``` ### 3. 手動タイムスタンプ (固定バージョン管理) ファイルの編集に関係なく (バージョンを変更しない限り) キャッシュを保持したい場合は、手動のタイムスタンプを使用します。 ```python ('Stable Command', r'^run complex task$', 100, { 'timestamp': '2026-05-09-v1' }) ``` ## パフォーマンスへの影響 - **キャッシュ ミス:** 標準処理 (LLM の使用状況に応じて 0.05 秒 - 5.0 秒)。 - **キャッシュ ヒット:** 即時処理。 このメカニズムは、CPU に負担をかけることなく、コマンドまたは修正されたタイプミスが即座に返されるというものです。