LanceDB-Ollama节点向量检索
使用 LanceDB 和 Ollama 的嵌入模型的 Node.js 向量搜索实现。
服务介绍
LanceDB Node.js 向量搜索
使用 LanceDB 和 Ollama 的嵌入模型实现的 Node.js 向量搜索。
概述
本项目演示了如何:
- 连接到 LanceDB 数据库
- 使用 Ollama 创建自定义嵌入函数
- 对存储的文档执行向量相似性搜索
- 处理并显示搜索结果
前提条件
- Node.js (v14 或更高版本)
- 本地运行的 Ollama 并带有
nomic-embed-text模型 - 具有读/写权限的 LanceDB 存储位置
安装
- 克隆仓库
- 安装依赖项:
pnpm install
依赖项
@lancedb/lancedb: LanceDB 的 Node.js 客户端apache-arrow: 用于处理列式数据node-fetch: 用于向 Ollama 发起 API 调用
使用
运行向量搜索测试脚本:
pnpm test-vector-search
或者直接执行:
node test-vector-search.js
配置
脚本连接到:
- 配置路径下的 LanceDB
http://localhost:11434/api/embeddings上的 Ollama API
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" 表中搜索 "how to define success criteria",并显示带有相似度得分的结果。
许可证
贡献
欢迎贡献!请随时提交 Pull Request。