LanceDB

LanceDB

🚀 LanceDB Node.js 向量搜索

本项目是一个使用 Node.js 实现的向量搜索示例,巧妙结合了 LanceDB 和 Ollama 的嵌入模型,能高效完成向量搜索任务。

🚀 快速开始

此项目清晰展示了一系列操作流程,涵盖连接 LanceDB 数据库、利用 Ollama 创建自定义嵌入函数、执行向量相似度搜索来查找存储文档,以及处理并展示搜索结果等内容。

✨ 主要特性

  • 实现与 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 位于指定路径。
  • 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 - Node.js 服务的实际安装位置。
  • /path/to/your/lancedb/storage - LanceDB 存储目录的实际路径。

自定义嵌入函数

项目里包含了一个自定义的OllamaEmbeddingFunction,其职责如下:

  • 将文本发送到 Ollama API 进行处理。
  • 接收 768 维的嵌入向量。
  • 格式化输出以契合 LanceDB 的要求。

向量搜索示例

示例代码展示了如何在“ai-rag”表中搜索“how to define success criteria”,并呈现匹配结果及其相似度分数。

📄 许可证

本项目采用 MIT License。

🤝 贡献指南

欢迎大家积极贡献!请随意提交 Pull Request。

  • 0 关注
  • 0 收藏,7 浏览
  • system 提出于 2025-09-23 03:42

相似服务问题