Newer
Older
TelosDB / journals / 20260206-Tauri移行とGemma3統合.md
@楽曲作りまくりおじさん 楽曲作りまくりおじさん 9 hours ago 2 KB refactor(journals): mask absolute paths and update environment docs

2026-02-06 まとめ:Tauri v2 移行と Gemma 3 統合基盤の構築

1. プロジェクトの完全移行と技術刷新

Electron + Bun ベースの常駐型 MCP サーバーを、軽量・高性能な Tauri v2 + Rust 構成へ完全に移植した。

主な技術的変更

  • GUIフレームワーク: WebView2 を採用し、メモリ使用量を劇的に削減。
  • データ層: SeaORM を導入。SQLite + sqlite-vec を型安全に操作し、ベクトル検索(MATCH句)を実現。
  • 通信層: axum による MCP SSE サーバー実装と、reqwest による llama.cpp サーバー連携。

2. 実装ハイライト

常駐アプリとしての基盤 (Tray & Window)

  • TrayIconBuilder を使用したシステムトレイメニュー(表示・終了)の実装。
  • ウィンドウの「×」ボタンによる終了を抑制し、トレイ常駐を維持するライフサイクル管理。

Gemma 3 300M Embedding モデルの統合(完了)

  • Gemma 3 モデル(embeddinggemma-300m-q4_0.gguf)は models/ ディレクトリに組み込み済み。
  • 最新の llama-server をSidecar形式で起動し、モデルファイルの自動セットアップもPowerShellスクリプトで実現。
  • サーバー起動・連携ロジックはTauriバックエンドに統合済み。

今後は安定化・運用自動化・UI連携の強化が課題。

解析スクリプトのポーティング

  • analyze_nesting.js および count_lines.js を Rust 向けに調整し、コード品質の自動チェック体制を構築。

3. システム構成図

graph TD
    UI["Frontend: HTML/JS"] <-->|Tauri Command| Rust["Backend: Rust"]
    Rust --> DB[("SQLite + sqlite-vec")]
    Rust --> MCP["MCP SSE Server: Axum"]
    Rust --> LLM["Llama Client: reqwest"]
    
    subgraph "SeaORM Layer"
        DB
    end
    
    subgraph "Sidecar (External)"
        LS[llama-server] --> Model["Gemma 3 300M"]
    end
    
    LLM <-->|HTTP| LS

4. 検証結果

  • mockito を利用した単体テスト、インメモリDBを用いた統合テスト(全 4 ケース)が正常に PASS。
  • デバッグモード (tauri dev) およびスタンドアロンビルドの両方でフロントエンド資産のロードとコマンド実行を確認。

5. 課題とネクストステップ

  • Sidecarの安定化: Windows 環境での DLL 依存関係問題の解決(b7956 ビルドへの更新)。
  • リリースビルドの最適化: バンドルされるバイナリのサイズ調整。