🧠 SL5 Aura: 高度なオフライン LLM 統合

ステータス: 実稼働準備完了 エンジン: オラマ (ラマ 3.2 3B) レイテンシ: 瞬時 (キャッシュ ヒットで <0.1 秒) / ~20 秒 (CPU での生成)

1. 「アーキテクト&インターン」の理念

Aura は、精度柔軟性 のバランスを取るハイブリッド モデルで動作します。

  • アーキテクト (正規表現/Python): システム コマンド (「ブラウザを開く」、「音量を上げる」など) を決定的に即時に実行します。

  • インターン (ローカル LLM): あいまいなクエリ、要約、および一般的な知識を処理します。これは、厳密なルールに一致しない場合、または特定のキーワードが使用された場合にのみトリガーされます。


2. パフォーマンスアーキテクチャ

ローカル LLM を GPU アクセラレーションなしで標準 CPU で使用できるようにするために、3 層パフォーマンス戦略 を実装しました。

レイヤ 1: 「インスタント モード」 (キーワード)

  • トリガー: 「Instant」、「Schnell」、「Sofort」などの単語。

  • ロジック: LLM を完全にバイパスします。 Set Intersection を使用して、ユーザー入力キーワードをローカル SQLite データベースと比較します。

  • 遅延: < 0.05s

レイヤ 2: スマート キャッシュ (SQLite)

  • ロジック: すべてのプロンプトはハッシュ化されます (SHA256)。 Ollama に質問する前に、llm_cache.db を確認します。

  • 機能「アクティブ バリエーション」: キャッシュ ヒットが存在する場合でも、システムは同じ質問に対して異なる表現を学習するために 新しい バリエーションを生成することがあります (20% の確率)。理想的には、質問ごとに最大 5 つのバリエーションを保存します。

  • 機能「セマンティック ハッシュ」: 長い質問 (>50 文字) の場合、LLM を使用して最初にキーワード (例: 「インストール ガイド」) を抽出し、全文の代わりにそれらをハッシュします。これは「どうやってインストールしますか?」と一致します。 「インストール手順をお願いします」と表示されます。

  • 遅延: ~0.1s

レイヤ 3: API の生成 (フォールバック)

  • ロジック: キャッシュが存在しない場合は、Ollama API (http://localhost:11434/api/generate) を呼び出します。

  • 最適化:

  • ハードリミット: num_predict=60 は、~40 ワード後にモデルを強制的に停止します。

  • 入力パイプ: OS 引数の制限を回避するために、大きなテキスト (README) は STDIN 経由で渡されます。

  • レイテンシ: ~15 ~ 25 秒 (CPU に依存)


3. システムの接地 (幻覚防止)

汎用 LLM は GUI 要素 (ボタン、メニュー) を発明する傾向があります。すべてのシステム プロンプトに厳密な AURA_TECH_PROFILE を挿入します。

  1. GUI なし: Aura はヘッドレス CLI サービスです。

  2. 構成ファイルなし: ロジックは .json/.xml ではなく、Python コードです。

  3. トリガー: 外部制御は、API ではなく、ファイル作成 (touch /tmp/sl5_record.trigger) によって機能します。

  4. インストール: 4GB モデルのダウンロードのため、10 ~ 20 分かかります (「3 秒でインストールします」という嘘を防ぎます)。


4. クリップボード ブリッジ (Linux セキュリティ)

バックグラウンド サービス (systemd) は、セキュリティ分離のため、X11/Wayland クリップボードに直接アクセスできません。

  • 解決策: ユーザーセッションスクリプト (clipboard_bridge.sh) は、クリップボードの内容を RAM ディスクファイル (/tmp/aura_clipboard.txt) にミラーリングします。

  • Aura: すべての権限の問題を回避して、このファイルを読み取ります。


5. 自己学習 (キャッシュウォーミング)

「warm_up_cache.py」スクリプトを提供します。

  1. プロジェクト「README.md」を読み込みます。

  2. LLM に、プロジェクトに関するユーザーが考えそうな質問を考え出すように依頼します。

  3. これらの質問を Aura に対してシミュレートして、データベースに事前に入力します。