本项目是一个使用 Node.js 实现的向量搜索示例,巧妙结合了 LanceDB 和 Ollama 的嵌入模型,能高效完成向量搜索任务。
此项目清晰展示了一系列操作流程,涵盖连接 LanceDB 数据库、利用 Ollama 创建自定义嵌入函数、执行向量相似度搜索来查找存储文档,以及处理并展示搜索结果等内容。
nomic-embed-text
模型pnpm install
@lancedb/lancedb
:用于连接 Node.js 的 LanceDB 客户端。apache-arrow
:处理列式数据。node-fetch
:向 Ollama API 发送请求。运行向量搜索测试脚本:
pnpm test-vector-search
或直接执行:
node test-vector-search.js
脚本会连接到以下服务:
http://localhost:11434/api/embeddings
。若要在 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
,其职责如下:
示例代码展示了如何在“ai-rag”表中搜索“how to define success criteria”,并呈现匹配结果及其相似度分数。
本项目采用 MIT License。
欢迎大家积极贡献!请随意提交 Pull Request。