diff --git a/README.md b/README.md index 82d3eae..1cfa59c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# 🦀 SQLite Vector MCP Server (Tauri 2 Edition) +# 🦀 TelosDB (Tauri 2 Edition) -> **SQLite と Rust で構築された、ローカル向けベクトル検索サーバー** +> **SQLite と Rust で構築された、ローカル向けベクトル検索サーバー & DBブラウザ** [![Tauri 2](https://img.shields.io/badge/Tauri-2.0-blue?style=for-the-badge&logo=tauri)](https://tauri.app/) [![Rust](https://img.shields.io/badge/Rust-LATEST-orange?style=for-the-badge&logo=rust)](https://www.rust-lang.org/) @@ -12,36 +12,20 @@ Gemma 3 300M Embedding モデルや `llama-server` をサイドカーとして利用することで、外部ネットワークに依存せず、ローカル環境のみでテキストのベクトル化と検索を行うことができます。 +また、内蔵の **SQLite DBブラウザ** により、GUI上で直接テーブル構成やデータの確認が可能です。 + --- ## ✨ 主な機能 1. **Tauri v2 + Rust**: 軽量で高速なバックエンド基盤。 2. **SQLite + sqlite-vec**: リレーショナルデータとベクトルデータの一元管理。 -3. **MCP 準拠**: SSE プロトコルにより、外部エージェント(Claude 等)からのツール呼び出しに対応。 -4. **Sidecar LLM**: `llama-server` を内蔵し、オフラインでのテキスト処理が可能。 -5. **SeaORM**: 型安全なデータベース操作。 -6. **運用支援**: 詳細なログ記録とステータス可視化。 - ---- - -## 📁 ディレクトリ構成 - -```text -. -├── .agent/ # エージェント用ルール・ドキュメント -├── bin/ # 外部バイナリ (llama-server等) -├── data/ # データベースファイル (vector.db) -├── document/ # 仕様・設計ドキュメント -├── journals/ # 開発記録 (Git管理外) -├── logs/ # アプリケーションログ -├── resources/ # アセット類 -├── scripts/ # ユーティリティスクリプト (analyze_nesting, count_lines等) -├── src/ -│ ├── backend/ # Rust / Tauri バックエンド -│ └── frontend/ # Webview UI -└── test/ # テストコード -``` +3. **DBブラウザ (New!)**: テーブル一覧、スキーマ表示、データ閲覧(ページネーション対応)が可能なモダンなGUI。 +4. **MCP 準拠**: SSE プロトコルにより、外部エージェント(Claude 等)からのツール呼び出しに対応。 +5. **Sidecar LLM**: `llama-server` を内蔵し、オフラインでのテキスト処理が可能。 +6. **SeaORM**: 型安全なデータベース操作。 +7. **長文対応**: 入力テキストの自動チャンキングと Mean Pooling により、コンテキスト制限を超える文書もベクトル化可能。 +8. **運用支援**: 詳細なログ記録とステータス可視化。 --- @@ -50,7 +34,7 @@ ```mermaid graph TD subgraph "Frontend Layer (WebView2)" - UI["Status UI (JS/HTML)"] + UI["DB Browser & Status UI"] end subgraph "Tauri Backend Layer (Rust)" @@ -59,6 +43,7 @@ Sidecar["Sidecar Manager"] ORM["SeaORM Layer"] Llama["Llama API Client"] + DBCmd["DB Browser Commands"] end subgraph "External Process Layer" @@ -71,6 +56,8 @@ end UI <--> Axum + UI <--> DBCmd + DBCmd <--> DB Axum <--> ORM ORM <--> DB Llama <--> LS @@ -80,36 +67,40 @@ --- -## 🚀 セットアップ +## 📁 ディレクトリ構成 -### 開発用 - -```bash -bun install -bun setup -bun dev +```text +. +├── .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/ # 一時ファイル ``` -### インストーラー作成 - -```bash -bun run build -``` - -生成された MSI インストーラーは `src/backend/target/release/bundle/msi/` に出力されます。 - -詳細は [document/development_guide.md](document/development_guide.md) を参照してください。 - --- ## 🛠️ MCP ツール | ツール名 | 用途 | | :--- | :--- | -| `save_document` | 文書の追加とベクトル化 | -| `find_documents` | 文書の類似検索 | -| `llm_generate` | テキスト生成 | -| ... | (詳細は `mcp_specification.md` 参照) | +| `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 によるテキスト生成 | ---