LanceDB Vector Search

LanceDB Vector Search

🚀 LanceDB Node.js 向量搜索

本项目借助 Node.js 实现向量搜索功能,巧妙结合了 LanceDB 与 Ollama 的嵌入模型,为向量搜索应用提供了便捷高效的解决方案。

🚀 快速开始

本项目旨在演示一系列操作,具体如下:

  • 实现与 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 的指定路径
  • 运行在 http://localhost:11434/api/embeddings 的 Ollama API

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 License

贡献

欢迎贡献!请随意提交 Pull Request。

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

相似服务问题

相关AI产品