向量搜索工具

一个基于LanceDB和Ollama嵌入模型的Node.js向量搜索实现,用于连接数据库、创建自定义嵌入函数并执行向量相似性搜索。

  • by vurtnec
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 vurtnec/mcp-lancedb-node

使用说明

LanceDB Node.js矢量搜索

使用LanceDB和Ollama的嵌入模型进行矢量搜索的Node.js实现。

概述

本项目演示了如何:

  • 连接到LanceDB数据库
  • 使用Ollama创建自定义嵌入函数
  • 对存储的文档执行向量相似性搜索
  • 处理和显示搜索结果

先决条件

  • Node.js(v14或更高版本)
  • Ollama在当地与 nomic-embed-text 模型
  • 具有读/写权限的LanceDB存储位置

安装

  1. 克隆存储库
  2. 安装依赖项:
pnpm install

依赖项

  • @lancedb/lancedb:用于Node.js的LanceDB客户端
  • apache-arrow:用于处理列数据
  • node-fetch:用于对Ollama进行API调用

用法

运行向量搜索测试脚本:

pnpm test-vector-search

或者直接执行:

node test-vector-search.js

配置

脚本连接到:

  • LanceDB位于配置的路径上
  • 使用 API http://localhost:11434/api/embeddings

MCP配置

要作为MCP服务与Claude Desktop集成,请将以下内容添加到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许可证

贡献

欢迎投稿!请随时提交拉取请求。