Depois de criar e implantar o índice, é possível executar consultas para encontrar os vizinhos mais próximos.
Veja alguns exemplos de uma consulta de correspondência para encontrar os próximos vizinhos mais próximos usando o algoritmo de vizinhos k-mais próximo (k-NN).
Exemplos de consultas para o endpoint público
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Linha de comando
O publicEndpointDomainName
listado abaixo pode ser encontrado em
Implantar e está formatado como
<number>.<region>-<number>.vdb.vertexai.goog
.
$ curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://1957880287.us-central1-181224308459.vdb.vertexai.goog/v1/projects/181224308459/locations/us-central1/indexEndpoints/3370566089086861312:findNeighbors -d '{deployed_index_id: "test_index_public1", queries: [{datapoint: {datapoint_id: "0", feature_vector: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}, neighbor_count: 5}]}'
Este exemplo de curl demonstra como realizar chamadas de clientes http(s)
,
embora o endpoint público dê suporte ao protocolo duplo para RESTful e
grpc_cli
.
$ curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://1957880287.us-central1-181224308459.vdb.vertexai.goog/v1/projects/${PROJECT_ID}/locations/us-central1/indexEndpoints/${INDEX_ENDPOINT_ID}:readIndexDatapoints -d '{deployed_index_id:"test_index_public1", ids: ["606431", "896688"]}'
Este exemplo de curl demonstra como consultar com restrições de número e token.
$ curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${PUBLIC_ENDPOINT_DOMAIN}/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexEndpoints/${INDEX_ENDPOINT_ID}:findNeighbors -d '{deployed_index_id:"${DEPLOYED_INDEX_ID}", queries: [{datapoint: {datapoint_id:"x", feature_vector: [1, 1], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}, numeric_restricts: [{namespace: "int-ns", value_int: -2, op: "GREATER"}, {namespace: "int-ns", value_int: 4, op: "LESS_EQUAL"}, {namespace: "int-ns", value_int: 0, op: "NOT_EQUAL"}], restricts: [{namespace: "color", allow_list: ["red"]}]}}]}'
Console
Use estas instruções para consultar um índice implantado em um endpoint público pelo console.
- Na seção Vertex AI do console Google Cloud , acesse a seção Implantar e usar. Selecione Pesquisa de vetor.
- Selecione o índice que você quer consultar. A página Informações do índice é aberta.
- Role para baixo até a seção Índices implantados e selecione o índice implantado que você quer consultar. A página Informações do índice implantado é aberta.
- Na seção Índice de consulta, selecione se você quer consultar por um valor de incorporação densa, esparsa, híbrida (incorporações densas e esparsas) ou um ponto de dados específico.
- Insira os parâmetros de consulta para o tipo de consulta selecionado. Por exemplo, se você estiver consultando por um embedding denso, insira o vetor de embedding para consultar.
- Execute a consulta com o comando curl fornecido ou com o Cloud Shell.
- Se for usar o Cloud Shell, selecione Executar no Cloud Shell.
- Executar no Cloud Shell
- Os resultados retornam os vizinhos mais próximos.
Consultas híbridas
A pesquisa híbrida usa embeddings densos e esparsos para pesquisas baseadas em uma combinação de pesquisa por palavra-chave e pesquisa semântica.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Consultas com filtragem e recolhimento
Com a filtragem de correspondências de vetores, é possível restringir os resultados de vizinho mais próximo a categorias específicas. Os filtros também podem designar categorias a serem excluídas dos resultados.
Limites de vizinhos por recolhimento podem aumentar a diversidade de resultados ao limitar o número de resultados retornados de qualquer tag de recolhimento nos dados do índice.
Python
Para saber como instalar o SDK da Vertex AI para Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Configurações de tempo de consulta que afetam o desempenho
Os parâmetros de tempo de consulta a seguir podem afetar a latência, a disponibilidade e o custo ao usar a pesquisa de vetor. Essa orientação se aplica à maioria dos casos. No entanto, sempre teste as configurações para garantir que elas funcionem com seu caso de uso.
Para definições de parâmetro, consulte Parâmetros de configuração de índice.
Parâmetro | Sobre | Impacto no desempenho |
---|---|---|
approximateNeighborsCount |
Informa ao algoritmo o número de resultados aproximados a serem recuperados de cada fragmento.
O valor de
O nome da API REST correspondente para esse campo é
|
Aumentar o valor de
Aumentar o valor de
|
setNeighborCount |
Especifica o número de resultados que a consulta deve retornar.
O nome da API REST correspondente para esse campo é
|
Valores inferiores ou iguais a 300 mantêm o desempenho na maioria dos casos de uso. Para valores maiores, teste cada caso de uso específico. |
fractionLeafNodesToSearch |
Controla a porcentagem de nós de folha a serem visitados ao pesquisar vizinhos
mais próximos. Isso está relacionado a leafNodeEmbeddingCount ,
porque quanto mais embeddings por nó de folha, mais dados examinados por folha.
O nome da API REST correspondente para esse campo é
|
Aumentar o valor de
Diminuir o valor de
|