本システムは、Tauri v2 を基盤とした常駐型デスクトップアプリケーションであり、ローカル LLM (Gemma 3) を活用したベクトル検索バックエンドを提供します。
システムは大きく分けて「フロントエンド」「Rust バックエンド」「Sidecar (LLM サーバー)」の3つの層で構成されています。
graph TD
subgraph "Frontend Layer (WebView2)"
UI[React / HTML / JS]
end
subgraph "Rust Backend Layer (Tauri v2)"
Core[Tauri Core]
Axum[Axum SSE / MCP Server]
SeaORM[SeaORM / DB Logic]
LlamaClient[Llama Client / reqwest]
SidecarMgr[Sidecar Process Manager]
end
subgraph "Sidecar Layer (External Process)"
LS[llama-server.exe]
Model[Gemma 3 300M GGUF]
end
subgraph "Data Layer"
DB[(SQLite + sqlite-vec)]
end
UI <-->|Invoke / Events| Core
Core <--> Axum
Core <--> SeaORM
Core <--> LlamaClient
Core <--> SidecarMgr
Axum <--> DB
SeaORM <--> DB
LlamaClient <-->|HTTP/JSON| LS
SidecarMgr -->|Spawn / Lifecycle| LS
LS -->|Load| Model
invoke を通じて Rust 側のコマンドを呼び出し、システムの状態を取得または操作。llama-server と通信し、文章のベクトル化 (Embedding) やテキスト生成を依頼。llama-server プロセスの起動、環境変数パスの解決、DLL 依存関係の処理。llama.cpp の HTTP サーバー版。Gemma 3 アーキテクチャをサポートし、Vulkan によるハードウェア加速を利用。vec0 仮想テーブルを用いた高速な ANN (Approximate Nearest Neighbor) 検索を提供。| カテゴリ | 採用技術 |
|---|---|
| Core Framework | Tauri v2 |
| Language | Rust / JavaScript |
| Database | SQLite (rusqlite) |
| ORM | SeaORM |
| Vector Engine | sqlite-vec (vec0) |
| LLM Engine | llama.cpp (llama-server) |
| MCP Protocol | Axum (SSE) |
| Model | Gemma 3 300M |