アーキテクチャ設計 (Architecture Design)
1. 全体構成
本システムは 1 プロセス(Tauri 2) 内で、GUI・MCP サーバー・ベクトル解析を完結させます。開発時も本番も Node は使わず、Tauri が静的配信(8474)と MCP API(3001)の両方を担当します。
graph TD
subgraph "Presentation (WebView2)"
UI["UI (Vanilla JS)"]
SSE_Monitor["Activity Log (SSE)"]
end
subgraph "Application (Rust / Tauri 2)"
Tauri["Tauri Core"]
Tray["System Tray"]
Static["Axum: 静的配信 :8474"]
MCP["Axum: MCP API :3001"]
LSA["LSA Engine (Community)"]
Embed["Embedding Model (Pro)"]
end
subgraph "Data"
DB["SQLite + vec0 + FTS5"]
end
UI --> Tauri
Tauri --> Static
Tauri --> MCP
MCP --> LSA
MCP --> Embed
LSA --> DB
Embed --> DB
MCP --> DB
2. プロセス・ポート
| 役割 |
プロセス |
ポート |
備考 |
| フロント配信 |
Tauri 内 Axum |
8474 |
開発時: src/frontend を静的配信。本番: 同梱済み資材。 |
| MCP API |
Tauri 内 Axum |
3001 |
SSE + JSON-RPC。LSA/埋め込みの準備完了後に listen。 |
| WebView |
Tauri |
— |
devUrl = http://127.0.0.1:8474 |
- モノリシック: beforeDevCommand は使わない。
tauri dev は Cargo ビルドのみ。同一プロセスで 8474 と 3001 を listen。
3. エディション別のベクトル経路
| エディション |
ベクトル生成 |
インデックス |
検索 |
| Community |
LSA(Vibrato 分かち書き → SVD、50 次元) |
vec_items(50 次元), items_lsa |
HNSW + FTS5 ハイブリッド |
| Pro |
埋め込みモデル(ONNX、768 次元) |
vec_items(768 次元) |
HNSW + FTS5。モデル未ロード時は FTS のみ |
- 共通: 全文検索は FTS5(trigram)。テキストと FTS/ベクトルの同期は起動時・
GET /heal で実施。
4. レイヤーと責務
| レイヤー |
主なコンポーネント |
役割 |
| Presentation |
src/frontend(Vanilla JS/CSS) |
検索・文書管理・設定・アクティビティログ。Tauri invoke / listen。 |
| Application |
src/backend(Rust) |
MCP ハンドラ、LSA/埋め込み、DB オーケストレーション、トレイ。 |
| Infrastructure |
SQLite(telos.db), vec0, FTS5 |
永続化・ベクトル検索・全文検索。 |
詳細な開発時モノリシック化の経緯・KPI は 10_monolithic_dev.md を参照。