LSA実装における静的な語彙制限と、LLMコンポーネントによる巨大なビルドサイズを解消するため。ユーザーの指示に基づき、LLM依存を完全に排除し、Rustネイティブな近似近傍検索(ANN)ライブラリ hnsw_rs を導入して、軽量かつ安定した検索エンジンへ移行した。
sqlite-vec による線形走査に近い検索から、HNSWによるグラフベースの高速な ANN 検索に切り替える。tauri.conf.json から externalBin (llama-server) および resources (model, dll) を削除した。build.rs を修正し、bin/ 以下のDLLを一括コピーする処理を廃止、必須の vec0.dll のみに限定した。rebuild_vecs.rs を削除し、bin/ 内の巨大な .gguf ファイルを物理削除した。mcp.rs から llama-server のステータス監視ループおよび get_embedding 関数を削除した。Cargo.toml に hnsw_rs を追加した。AppState に hnsw_index を追加し、起動時の LSA トレーニング後に全ベクトルをインメモリの HNSW 構造にロードするよう実装した。search_text ツールを更新し、HNSW インデックスが存在する場合に優先的に使用するよう変更した。lsa.rs において、クエリベクトルの正規化時に微小値を許容するようにし、未知語のみのクエリに対しても安全に零ベクトルを返すよう堅牢化した。hnsw_rs (純粋なRust) による実装へ切り替えた。graph TD
A[MCP Request: add_item] --> B[Tokenizer]
B --> C[LSA Projection]
C --> D[SQLite Insert]
C --> E[HNSW Incremental Insert]
F[MCP Request: search_text] --> G[LSA Projection]
G --> H{HNSW Index exists?}
H -- Yes --> I[HNSW ANN Search]
H -- No --> J[sqlite-vec Linear Search]
I --> K[Result Formatting]
J --> K