| .github | 8 days ago | ||
| document | 6 days ago | ||
| scripts | 7 days ago | ||
| src | 6 days ago | ||
| src-tauri | 6 days ago | ||
| test | 6 days ago | ||
| .env.example | 6 days ago | ||
| .gitignore | 6 days ago | ||
| README.md | 6 days ago | ||
| analyze_nesting.js | 7 days ago | ||
| bun.lock | 7 days ago | ||
| count_lines.js | 7 days ago | ||
| generate-icon.js | 8 days ago | ||
| jsconfig.json | 8 days ago | ||
| launch.cmd | 7 days ago | ||
| mcp.json.sample | 8 days ago | ||
| package-lock.json | 8 days ago | ||
| package.json | 6 days ago | ||
SQLite と Rust で構築された、ローカル向けベクトル検索サーバー
Model Context Protocol (MCP) に準拠した、ローカル実行用のベクトル検索サーバーです。以前の設計から Tauri v2 および Rust をベースにした構成に整理しました。
Gemma 3 300M Embedding モデルや llama-server をサイドカー(外部プロセス)として利用することで、外部ネットワークに依存せず、ローカル環境のみでテキストのベクトル化と検索を行うことができます。
Rust で実装されており、システムトレイに常駐して MCP プロトコルのリクエストに応答します。
sqlite-vec 拡張を利用しており、SQLite 上で効率的なベクトル検索を行うことができます。
llama-server を外部プロセスとして管理し、アプリケーションの起動に合わせて自動的に Embedding エンジンを準備します。
SeaORM を利用し、メタデータや更新日時の管理を自動化しています。
動作ログを適切に記録し、一定のサイズに達すると自動でローテーションを行います。
プロジェクトの役割に応じて、以下のようにディレクトリを整理しています。
. ├── bin/ # 外部バイナリ (llama-server等) ├── data/ # データベースファイル (vector.db) ├── document/ # 仕様・設計ドキュメント ├── journals/ # 開発記録 ├── logs/ # 開発用ログ ├── resources/ # アイコン等のアセット ├── scripts/ # 各種ユーティリティ ├── src/ │ ├── backend/ # Rust / Tauri バックエンド │ └── frontend/ # Webview 用 UI ├── target/ # ビルド成果物 └── test/ # テストコード
graph TD
subgraph "Frontend"
UI["UI (JS)"]
end
subgraph "Backend (Rust)"
Axum["MCP Server"]
SeaORM["DB Access"]
Sidecar["Sidecar Manager"]
end
subgraph "External"
LS["llama-server"]
DB["SQLite"]
end
UI <--> Axum
Axum <--> SeaORM
SeaORM <--> DB
Sidecar --> LS
依存関係のインストールとバイナリのダウンロードを行います。
bun install bun setup
bun setup の実行内容:
bin/: llama-server と依存 DLL をダウンロードmodels/: ベクトル生成用モデルをダウンロードbun dev
または、launch.cmd を実行しても起動できます。
| ツール名 | 用途 |
|---|---|
add_item_text |
文書の追加とベクトル化 |
search_text |
文書の類似検索 |
add_item |
ベクトル指定での追加 |
search_vector |
ベクトル検索 |
llm_generate |
テキスト生成 |
詳細は document/ 配下のファイルを参照してください。
ISC License.