Dopo aver creato e implementato l'indice, puoi eseguire query per ottenere i vicini più prossimi.
Ecco alcuni esempi di query di corrispondenza per trovare i primi vicini più prossimi utilizzando l'algoritmo k-Nearest Neighbors (k-NN).
Query di esempio per l'endpoint pubblico
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Riga di comando
Il publicEndpointDomainName
elencato di seguito è disponibile in
Deploy ed è formattato come
<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}]}'
Questo esempio di curl mostra come chiamare dai client http(s)
,
anche se l'endpoint pubblico supporta il doppio protocollo per 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"]}'
Questo esempio di curl mostra come eseguire query con token e limiti numerici.
$ 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
Segui queste istruzioni per eseguire query su un indice di cui è stato eseguito il deployment su un endpoint pubblico dalla console.
- Nella sezione Vertex AI della console Google Cloud , vai alla sezione Deployment e utilizzo. Seleziona Vector Search.
- Seleziona l'indice su cui vuoi eseguire la query. Viene visualizzata la pagina Informazioni indice.
- Scorri verso il basso fino alla sezione Indici implementati e seleziona l'indice implementato per cui vuoi eseguire la query. Viene visualizzata la pagina Informazioni sull'indice di cui è stato eseguito il deployment.
- Nella sezione Indice query, seleziona se eseguire query in base a un valore di incorporamento denso, un valore di incorporamento sparso, un valore di incorporamento ibrido (incorporamenti densi e sparsi) o un punto dati specifico.
- Inserisci i parametri di ricerca per il tipo di query selezionato. Ad esempio, se esegui una query in base a un embedding denso, inserisci il vettore di embedding in base al quale eseguire la query.
- Esegui la query utilizzando il comando curl fornito o eseguendola con Cloud Shell.
- Se utilizzi Cloud Shell, seleziona Esegui in Cloud Shell.
- Esegui in Cloud Shell.
- I risultati restituiscono i vicini più prossimi.
Query ibride
La ricerca ibrida utilizza incorporamenti densi e sparsi per le ricerche basate su una combinazione di ricerca per parole chiave e ricerca semantica.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Query con filtri e affollamento
Il filtraggio delle corrispondenze vettoriali ti consente di limitare i risultati del vicino più prossimo a categorie specifiche. I filtri possono anche designare categorie da escludere dai risultati.
I limiti per vicino di crowding possono aumentare la diversità dei risultati limitando il numero di risultati restituiti da un singolo tag di crowding nei dati dell'indice.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Impostazioni in fase di query che influiscono sul rendimento
I seguenti parametri di query possono influire su latenza, disponibilità e costo quando utilizzi la ricerca vettoriale. Queste indicazioni si applicano alla maggior parte dei casi. Tuttavia, sperimenta sempre le tue configurazioni per assicurarti che funzionino per il tuo caso d'uso.
Per le definizioni dei parametri, vedi Parametri di configurazione dell'indice.
Parametro | Informazioni | Impatto sulle prestazioni |
---|---|---|
approximateNeighborsCount |
Indica all'algoritmo il numero di risultati approssimativi da recuperare da ogni shard.
Il valore di
Il nome dell'API REST corrispondente per questo campo è
|
L'aumento del valore di
La riduzione del valore di
|
setNeighborCount |
Specifica il numero di risultati che vuoi che la query restituisca.
Il nome dell'API REST corrispondente per questo campo è
|
I valori inferiori o uguali a 300 rimangono efficienti nella maggior parte dei casi d'uso. Per valori più grandi, esegui il test per il tuo caso d'uso specifico. |
fractionLeafNodesToSearch |
Controlla la percentuale di nodi foglia da visitare durante la ricerca dei vicini più
prossimi. Questo è correlato a leafNodeEmbeddingCount in
in quanto più incorporamenti per nodo foglia, più dati vengono esaminati per foglia.
Il nome dell'API REST corrispondente per questo campo è
|
Aumentare il valore di
Diminuendo il valore di
|