LanceDB Node.js Vector Search
Búsqueda vectorial utilizando la base de datos vectorial LanceDB y los modelos de incrustación de Ollama.
Documentación
LanceDB Node.js Vector Search
Una implementación en Node.js para búsqueda vectorial usando LanceDB y el modelo de embeddings de Ollama.
Resumen
Este proyecto demuestra cómo:
- Conectarse a una base de datos LanceDB
- Crear funciones de embedding personalizadas usando Ollama
- Realizar búsquedas de similitud vectorial contra documentos almacenados
- Procesar y mostrar resultados de búsqueda
Requisitos previos
- Node.js (v14 o posterior)
- Ollama ejecutándose localmente con el modelo
nomic-embed-text - Ubicación de almacenamiento de LanceDB con permisos de lectura/escritura
Instalación
- Clonar el repositorio
- Instalar dependencias:
pnpm install
Dependencias
@lancedb/lancedb: Cliente de LanceDB para Node.jsapache-arrow: Para manejar datos columnaresnode-fetch: Para hacer llamadas API a Ollama
Uso
Ejecute el script de prueba de búsqueda vectorial:
pnpm test-vector-search
O ejecute directamente:
node test-vector-search.js
Configuración
El script se conecta a:
- LanceDB en la ruta configurada
- API de Ollama en
http://localhost:11434/api/embeddings
Configuración de MCP
Para integrarse con Claude Desktop como servicio MCP, agregue lo siguiente a su JSON de configuración de MCP:
{
"mcpServers": {
"lanceDB": {
"command": "node",
"args": [
"/path/to/lancedb-node/dist/index.js",
"--db-path",
"/path/to/your/lancedb/storage"
]
}
}
}
Reemplace las rutas con sus rutas de instalación reales:
/path/to/lancedb-node/dist/index.js- Ruta al archivo index.js compilado/path/to/your/lancedb/storage- Ruta a su directorio de almacenamiento de LanceDB
Función de Embedding Personalizada
El proyecto incluye un OllamaEmbeddingFunction personalizado que:
- Envía texto a la API de Ollama
- Recibe embeddings con 768 dimensiones
- Los formatea para usarlos con LanceDB
Ejemplo de Búsqueda Vectorial
El ejemplo busca "cómo definir criterios de éxito" en la tabla "ai-rag", mostrando los resultados con sus puntuaciones de similitud.
Licencia
Contribuciones
¡Las contribuciones son bienvenidas! No dude en enviar un Pull Request.