uec-i4s/cobo
3.2
If you are the rightful owner of cobo and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This is a Japanese vector search system using sqlite-vec, optimized for fast and efficient searches with support for the Model Context Protocol (MCP).
日本語ベクトル検索システム
sqlite-vecを使用した日本語ベクトル検索システムです。
特徴
- 高速検索: sqlite-vecによる最適化されたベクトル検索
- 日本語対応: pfnet/plamo-embedding-1bモデルを使用
- 軽量: SQLiteベースで依存関係が少ない
- MCP対応: Model Context Protocolツールサーバー
- パフォーマンス最適化: キャッシュ、接続プール、PRAGMA最適化
プロジェクト構成
.
├── lib/ # コアライブラリ
│ ├── vector_utils.py # ベクトル検索ユーティリティ
│ └── data_processing.py # データ処理・DB構築
├── test_search.py # シンプルな検索テスト
├── benchmark.py # パフォーマンス測定
├── build_db.py # データベース構築スクリプト
├── server.py # MCPサーバー
├── srv.sh # サーバー起動スクリプト
└── README.md
セットアップ
1. 依存関係のインストール
uv sync
2. データベース構築
uv run build_db.py
3. 動作確認
uv run test_search.py info
使用方法
基本的な検索テスト
# データベース情報表示
uv run test_search.py info
# 単発検索
uv run test_search.py "大学"
# インタラクティブモード
uv run test_search.py
パフォーマンス測定
# 基本ベンチマーク
uv run benchmark.py
# 詳細分析
uv run benchmark.py --detailed
# カスタムクエリ
uv run benchmark.py --queries "大学" "授業" "履修"
MCPサーバー
# サーバー起動
./srv.sh start
# サーバー状態確認
./srv.sh status
# サーバー停止
./srv.sh stop
パフォーマンス最適化
実装済み最適化
- 埋め込みキャッシュ: 同一クエリの高速化
- 接続プール: データベース接続の再利用
- PRAGMA最適化: SQLite設定の最適化
- WALモード
- 大容量キャッシュ (20,000ページ)
- メモリ一時ストレージ
- 4KBページサイズ
- 256MB mmap
パフォーマンス結果
- 初回検索: ~0.1秒
- キャッシュヒット: ~0.05秒
- DB検索: ~0.007秒
設定
データソース設定
.envファイルで設定可能:
# FTPソース使用
USE_FTP_SOURCE=true
FTP_HOST=192.168.7.48
FTP_USER=anonymous
FTP_PASS=
FTP_DATA_DIR=/data
# ローカルソース使用
USE_FTP_SOURCE=false
LOCAL_DIR=./data
サーバー設定
.server_configファイルで設定可能:
TRANSPORT=streamable-http
PORT=8080
HOST=0.0.0.0
STATELESS=false
システム要件
- Python 3.12以上
- 2GB以上のRAM(モデル読み込み用)
- Apple Silicon推奨(MPS対応)
技術詳細
使用技術
- ベクトルDB: sqlite-vec v0.1.6
- 埋め込みモデル: pfnet/plamo-embedding-1b (2048次元)
- MCPフレームワーク: FastMCP
- 言語: Python 3.12
アーキテクチャ
- データ処理: Markdownファイルの解析・チャンク化
- ベクトル化: 日本語テキストの埋め込み生成
- インデックス: sqlite-vecによる高速検索インデックス
- 検索: KNN検索による類似文書取得
トラブルシューティング
よくある問題
-
モデル読み込みエラー
# キャッシュクリア rm -rf ~/.cache/huggingface/ -
データベースエラー
# DB再構築 rm search.db* uv run python build_db.py -
パフォーマンス問題
# 詳細分析実行 uv run benchmark.py --detailed
ライセンス
MIT License