LanceDB Node.js矢量搜索
使用LanceDB和Ollama的嵌入模型进行矢量搜索的Node.js实现。
概述
本项目演示了如何:
- 连接到LanceDB数据库
- 使用Ollama创建自定义嵌入函数
- 对存储的文档执行向量相似性搜索
- 处理和显示搜索结果
先决条件
- Node.js(v14或更高版本)
- Ollama在当地与
nomic-embed-text模型 - 具有读/写权限的LanceDB存储位置
安装
- 克隆存储库
- 安装依赖项:
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”表中搜索“如何定义成功标准”,显示结果及其相似性得分。
许可证
贡献
欢迎投稿!请随时提交拉取请求。
