@楽曲作りまくりおじさん 楽曲作りまくりおじさん authored 1 day ago
.github Add MCP server with llama.cpp integration and docs 8 days ago
bin WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
build_assets_tmp WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
docs WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
resources WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
scripts WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
src-backend WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
src-frontend WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
test/ tmp_scripts WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
tests WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
tmp WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
.env.example WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
.gitignore refactor: ビルド資産を build_assets に集約し src/backend を整理Section内容を簡潔に。Section内容を簡潔に。Section内容を簡潔に。Section内容を簡潔に。 5 days ago
CHANGELOG.md WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
README.md WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
bun.lock chore: comprehensive project restructuring and cleanup 6 days ago
config.json WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
distance-avx2.lib WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
jsconfig.json Add MCP server with llama.cpp integration and docs 8 days ago
launch.cmd chore: release v0.1.1 6 days ago
package-lock.json WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
package.json WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
vector.pdb WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
vector_fat.dll WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
vector_static.dll WIP: 一時コミット(sqlite-vecロールバック用の作業退避) 1 day ago
README.md

🦀 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上で直接テーブル構成やデータの確認が可能です。


🏗️ システム構造

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-vector")]
        Model["Gemma 3 300M (GGUF)"]
    end
    
    UI <--> Axum
    UI <--> DBCmd
    DBCmd <--> DB
    Axum <--> ORM
    ORM <--> DB
    Llama <--> LS
    Sidecar --> LS
    LS --> Model

⚙️ ネイティブモジュール (DLL) について

Windows 環境での動作安定性のため、ベクトル検索エンジン sqlite-vector は独自のビルド構成をとっています。

  • bin/vector.dll: ベクトル検索関数を提供。
  • bin/sqlite3.dll: 拡張機能のシンボル解決に必要な SQLite ライブラリ。

実行時にこれらの DLL が正しくロードされるよう、アプリケーションは起動時に bin/ をプロセスの PATH に動的に追加します。詳細は docs/sqlite-vector-build.md を参照してください。


✨ 主な機能

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


📁 ディレクトリ構成

.
├── .agent/       # エージェント用ルール・ドキュメント
├── bin/          # 外部バイナリ (llama-server, vector.dll等)
├── data/         # データベースファイル (vector.db)
├── docs/         # 仕様・設計ドキュメント
├── journals/     # 開発記録 (Git管理外)
├── logs/         # アプリケーションログ
├── resources/    # アセット類
├── scripts/      # ユーティリティスクリプト
├── 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.