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 Neighbor (K-NN).
Esempi di query per l'endpoint pubblico
SDK Vertex AI per Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la Documentazione di riferimento dell'API Vertex AI SDK per Python.
Riga di comando
publicEndpointDomainName
elencato di seguito è disponibile in Deployment 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 effettuare chiamate 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 limitazioni numeriche.
$ 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 in un endpoint pubblico dalla console.
- Nella sezione Vertex AI della Google Cloud console, vai alla sezione Esegui il deployment e utilizza. Seleziona Ricerca vettoriale.
- Seleziona l'indice su cui vuoi eseguire una query. Viene visualizzata la pagina Informazioni sull'indice.
- Scorri verso il basso fino alla sezione Indici di cui è stato eseguito il deployment e seleziona l'indice di cui vuoi eseguire la query. Viene visualizzata la pagina Informazioni sull'indice di cui è stato eseguito il deployment.
- Nella sezione Indice query, scegli se eseguire una query in base a un valore di embedding denso, a un valore di embedding sparso, a un valore di embedding ibrido (embedding densi e sparsi) o a 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ù vicini.
Query ibride
La ricerca ibrida utilizza sia embedding densi che sparsi per le ricerche basate sulla combinazione di ricerca per parole chiave e ricerca semantica.
SDK Vertex AI per Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la Documentazione di riferimento dell'API Vertex AI SDK per Python.
Query con filtri e affollamento
Il filtro 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 di vicini per crowding possono aumentare la diversità dei risultati limitando il numero di risultati restituiti da un singolo tag di crowding nei dati dell'indice.
SDK Vertex AI per Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per ulteriori informazioni, consulta la Documentazione di riferimento dell'API Vertex AI SDK per Python.
Impostazioni al momento della query che influiscono sul rendimento
I seguenti parametri relativi al momento della query possono influire su latenza, disponibilità e costo quando utilizzi la ricerca vettoriale. Queste indicazioni si applicano alla maggior parte dei casi. Tuttavia, fai sempre esperimenti con le configurazioni per assicurarti che funzionino per il tuo caso d'uso.
Per le definizioni dei parametri, consulta Parametri di configurazione dell'indice.
Parametro | Informazioni | Impatto sulle prestazioni |
---|---|---|
approximateNeighborsCount |
Indica all'algoritmo il numero di risultati approssimativi da recuperare da ciascun shard.
Il valore di
Il nome dell'API REST corrispondente per questo campo è
|
L'aumento del valore di
La diminuzione 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 mantengono un buon rendimento nella maggior parte dei casi d'uso. Per valori più elevati, 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 al leafNodeEmbeddingCount in quanto più embedding per nodo a foglia, più dati esaminati per foglia.
Il nome dell'API REST corrispondente per questo campo è
|
L'aumento del valore di
La riduzione del valore di
|
Passaggi successivi
Per un esempio end-to-end su come creare un indice, come eseguirlo in un endpoint pubblico e come eseguire query, consulta il notebook ufficiale: Utilizzo di Vector Search e degli incorporamenti di Vertex AI per il testo per le domande di StackOverflow.
- Scopri come aggiornare e ricostruire l'indice
- Scopri come filtrare le corrispondenze di vettori
- Scopri come monitorare un indice