Newer
Older
TelosDB / docs / specification / 02_architecture_design.md

アーキテクチャ設計 (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 を参照。