Newer
Older
TelosDB / README.md
@楽曲作りまくりおじさん 楽曲作りまくりおじさん 1 day ago 4 KB docs: README.mdを更新 (DBブラウザ機能の追加反映)

🦀 TelosDB (Tauri 2 Edition)

SQLite と Rust で構築された、ローカル向けベクトル検索サーバー & DBブラウザ

Tauri 2 Rust Gemma 3

📝 イントロダクション

Model Context Protocol (MCP) に準拠した、ローカル実行用のベクトル検索サーバーです。Tauri v2 および Rust をベースに構築されています。

Gemma 3 300M Embedding モデルや llama-server をサイドカーとして利用することで、外部ネットワークに依存せず、ローカル環境のみでテキストのベクトル化と検索を行うことができます。

また、内蔵の SQLite DBブラウザ により、GUI上で直接テーブル構成やデータの確認が可能です。


✨ 主な機能

  1. Tauri v2 + Rust: 軽量で高速なバックエンド基盤。
  2. SQLite + sqlite-vec: リレーショナルデータとベクトルデータの一元管理。
  3. DBブラウザ (New!): テーブル一覧、スキーマ表示、データ閲覧(ページネーション対応)が可能なモダンなGUI。
  4. MCP 準拠: SSE プロトコルにより、外部エージェント(Claude 等)からのツール呼び出しに対応。
  5. Sidecar LLM: llama-server を内蔵し、オフラインでのテキスト処理が可能。
  6. SeaORM: 型安全なデータベース操作。
  7. 長文対応: 入力テキストの自動チャンキングと Mean Pooling により、コンテキスト制限を超える文書もベクトル化可能。
  8. 運用支援: 詳細なログ記録とステータス可視化。

🏗️ システム構造

graph TD
    subgraph "Frontend Layer (WebView2)"
        UI["DB Browser & Status UI"]
    end
    
    subgraph "Tauri Backend Layer (Rust)"
        Axum["MCP Server (SSE/JSON-RPC)"]
        Tray["System Tray Manager"]
        Sidecar["Sidecar Manager"]
        ORM["SeaORM Layer"]
        Llama["Llama API Client"]
        DBCmd["DB Browser Commands"]
    end
    
    subgraph "External Process Layer"
        LS["llama-server.exe (Sidecar)"]
    end
    
    subgraph "Data Layer"
        DB[("SQLite + sqlite-vec")]
        Model["Gemma 3 300M (GGUF)"]
    end
    
    UI <--> Axum
    UI <--> DBCmd
    DBCmd <--> DB
    Axum <--> ORM
    ORM <--> DB
    Llama <--> LS
    Sidecar --> LS
    LS --> Model

📁 ディレクトリ構成

.
├── .agent/       # エージェント用ルール・ドキュメント
├── bin/          # 外部バイナリ (llama-server等)
├── data/         # データベースファイル (vector.db)
├── docs/         # 仕様・設計ドキュメント
├── journals/     # 開発記録 (Git管理外)
├── logs/         # アプリケーションログ
├── resources/    # アセット類
├── scripts/      # ユーティリティスクリプト (analyze_nesting, count_lines等)
├── src-backend/  # Rust / Tauri バックエンド
├── src-frontend/ # Webview UI
├── tests/        # テストコード
└── tmp/          # 一時ファイル

🛠️ MCP ツール

ツール名 用途
save_document 文書の追加とベクトル化 (長文対応: 自動チャンキング)
find_documents テキストによる類似文書検索
find_by_vector ベクトルによる類似文書検索
delete_item 指定IDの文書削除
get_document 指定IDの文書内容取得
get_vector 指定IDのベクトル取得
list_documents 文書一覧の取得 (ページネーション対応)
get_documents_count 登録文書数の取得
read_recent_items 最近追加された文書の取得
llm_generate LLM によるテキスト生成

📜 ライセンス

ISC License.