| .github | 8 days ago | ||
| document | 6 days ago | ||
| resources/ icons | 6 days ago | ||
| scripts | 6 days ago | ||
| src | 6 days ago | ||
| test | 6 days ago | ||
| .env.example | 6 days ago | ||
| .gitignore | 6 days ago | ||
| README.md | 6 days ago | ||
| bun.lock | 6 days ago | ||
| jsconfig.json | 8 days ago | ||
| launch.cmd | 7 days ago | ||
| package-lock.json | 6 days ago | ||
| package.json | 6 days ago | ||
SQLite と Rust で構築された、ローカル向けベクトル検索サーバー
Model Context Protocol (MCP) に準拠した、ローカル実行用のベクトル検索サーバーです。以前の設計から Tauri v2 および Rust をベースにした構成に整理しました。
Gemma 3 300M Embedding モデルや llama-server をサイドカー(外部プロセス)として利用することで、外部ネットワークに依存せず、ローカル環境のみでテキストのベクトル化と検索を行うことができます。
sqlite-vec を利用した高速なベクトル近傍検索(MATCH 演算子)に対応しています。llama.cpp の llama-server をアプリケーション内に内蔵(Sidecar)しています。created_at や updated_at の自動付与、トリガーによる更新日時の管理、WAL モードの有効化などを内部で自動処理します。tauri-plugin-log を利用したログ記録(標準出力、および OS 標準のログディレクトリへの出力)。bun setup を実行するだけで、必要なサイドカーバイナリや LLM モデルを自動的に収集・配置します。.env ファイルで柔軟にカスタマイズ可能です。プロジェクトの役割に応じて、以下のようにディレクトリを整理しています。
. ├── bin/ # 外部バイナリ (llama-server等) ├── data/ # データベースファイル (vector.db) ├── document/ # 仕様・設計ドキュメント ├── journals/ # 開発記録 ├── logs/ # 開発用ログ ├── resources/ # アイコン等のアセット ├── scripts/ # 各種ユーティリティ ├── src/ │ ├── backend/ # Rust / Tauri バックエンド │ └── frontend/ # Webview 用 UI ├── target/ # ビルド成果物 └── test/ # テストコード
本システムは、高い分離性と連携性を両立したアーキテクチャを採用しています。詳細な設計については document/architecture.md を参照してください。
graph TD
subgraph "Frontend Layer (WebView2)"
UI["Status UI (JS/HTML)"]
end
subgraph "Tauri Backend Layer (Rust)"
Axum["MCP Server (SSE/JSON-RPC)"]
Tray["System Tray Manager"]
Sidecar["Sidecar Manager (tokio::process)"]
ORM["SeaORM Layer"]
Llama["Llama API Client (reqwest)"]
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 <-->|Tauri Commands| Tray
Axum <--> ORM
ORM <--> DB
Llama <-->|HTTP/JSON| LS
Sidecar -->|Process Control| LS
LS -->|Memory Map| Model
プロジェクトの実行に必要なアセットを一括で準備します。環境構築の詳細は document/development_guide.md に記載されています。
bun install bun setup
bun setup の実行内容:
bin/: llama-server と依存 DLL をダウンロードmodels/: ベクトル生成用モデルをダウンロードbun dev
または、launch.cmd を実行しても起動できます。
利用可能なツールとプロトコルの詳細は document/mcp_specification.md を参照してください。
| ツール名 | 用途 |
|---|---|
add_item_text |
文書の追加とベクトル化 |
search_text |
文書の類似検索 |
add_item |
ベクトル指定での追加 |
search_vector |
ベクトル検索 |
llm_generate |
テキスト生成 |
document/ フォルダには、システムの理解を深めるための詳細な資料を整備しています。
llama.cpp の外部プロセス実行、DLL の探索パス解決、Vulkan 対応についての詳細。sqlite-vec による仮想テーブル、自動更新トリガーの仕組み。本プロジェクトには、バージョンアップとブランチ作成を自動化するスクリプトが用意されています。
# 例: バージョン 0.2.0 をリリースする場合 bun run release 0.2.0
このコマンドにより、リリースブランチの作成、各設定ファイルのバージョン更新、およびコミットが自動で行われます。詳細は 開発ガイド を参照してください。
ISC License.