LanceDB Node.js ベクター検索
LanceDB と Ollama の埋め込みモデルを使用したベクトル検索の Node.js 実装。
概要
このプロジェクトでは、次の方法を説明します。
- LanceDBデータベースに接続する
- Ollamaを使用してカスタム埋め込み関数を作成する
- 保存されたドキュメントに対してベクトル類似性検索を実行する
- 検索結果を処理して表示する
前提条件
- Node.js (v14以降)
- Ollama は
nomic-embed-text
モデルを使用してローカルで実行されています - 読み取り/書き込み権限を持つLanceDBの保存場所
インストール
- リポジトリをクローンする
- 依存関係をインストールします:
依存関係
@lancedb/lancedb
: Node.js 用の LanceDB クライアントapache-arrow
: 列指向データの処理用node-fetch
: OllamaへのAPI呼び出しを行うため
使用法
ベクトル検索テスト スクリプトを実行します。
または直接実行します:
node test-vector-search.js
構成
スクリプトは以下に接続します:
- 設定されたパスのLanceDB
- Ollama API (
http://localhost:11434/api/embeddings
MCP構成
Claude Desktop を MCP サービスとして統合するには、MCP 構成 JSON に以下を追加します。
{
"mcpServers": {
"lanceDB": {
"command": "node",
"args": [
"/path/to/lancedb-node/dist/index.js",
"--db-path",
"/path/to/your/lancedb/storage"
]
}
}
}
パスを実際のインストール パスに置き換えます。
/path/to/lancedb-node/dist/index.js
- コンパイルされた index.js ファイルへのパス/path/to/your/lancedb/storage
- LanceDB ストレージディレクトリへのパス
カスタム埋め込み機能
このプロジェクトには、次の機能を備えたカスタムOllamaEmbeddingFunction
が含まれています。
- Ollama APIにテキストを送信します
- 768次元の埋め込みを受け取る
- LanceDB で使用できるようにフォーマットします
ベクトル検索の例
この例では、「ai-rag」テーブルで「成功基準の定義方法」を検索し、類似度スコアとともに結果を表示します。
ライセンス
MITライセンス
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。