LanceDB Node.js Vector Search
Pesquisa vetorial usando o banco de dados vetorial LanceDB e modelos de embedding Ollama.
GitHubExperimente este MCPPatrocinado
Documentação
LanceDB Node.js Vector Search
Uma implementação em Node.js para busca vetorial usando LanceDB e o modelo de embeddings do Ollama.
Visão Geral
Este projeto demonstra como:
- Conectar-se a um banco de dados LanceDB
- Criar funções personalizadas de embeddings usando Ollama
- Realizar busca por similaridade vetorial em documentos armazenados
- Processar e exibir resultados de busca
Pré-requisitos
- Node.js (v14 ou posterior)
- Ollama rodando localmente com o modelo
nomic-embed-text - Local de armazenamento LanceDB com permissões de leitura e escrita
Instalação
- Clone o repositório
- Instale as dependências:
pnpm install
Dependências
@lancedb/lancedb: Cliente LanceDB para Node.jsapache-arrow: Para lidar com dados colunaresnode-fetch: Para fazer chamadas de API ao Ollama
Uso
Execute o script de teste de busca vetorial:
pnpm test-vector-search
Ou execute diretamente:
node test-vector-search.js
Configuração
O script se conecta a:
- LanceDB no caminho configurado
- API do Ollama em
http://localhost:11434/api/embeddings
Configuração MCP
Para integrar com o Claude Desktop como um serviço MCP, adicione o seguinte ao seu JSON de configuração MCP:
{
"mcpServers": {
"lanceDB": {
"command": "node",
"args": [
"/path/to/lancedb-node/dist/index.js",
"--db-path",
"/path/to/your/lancedb/storage"
]
}
}
}
Substitua os caminhos pelos seus caminhos reais de instalação:
/path/to/lancedb-node/dist/index.js- Caminho para o arquivo index.js compilado/path/to/your/lancedb/storage- Caminho para o diretório de armazenamento LanceDB
Função Personalizada de Embedding
O projeto inclui um OllamaEmbeddingFunction personalizado que:
- Envia texto para a API do Ollama
- Recebe embeddings com 768 dimensões
- Formata-os para uso com LanceDB
Exemplo de Busca Vetorial
O exemplo busca por "como definir critérios de sucesso" na tabela "ai-rag", exibindo os resultados com suas pontuações de similaridade.
Licença
Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.