LanceDB Node.js Vector Search

Pesquisa vetorial usando o banco de dados vetorial LanceDB e modelos de embedding Ollama.

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

  1. Clone o repositório
  2. Instale as dependências:
pnpm install

Dependências

  • @lancedb/lancedb: Cliente LanceDB para Node.js
  • apache-arrow: Para lidar com dados colunares
  • node-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

Licença MIT

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.