Se hai configurato il tuo negozio online in modo da supportare gli incorporamenti, puoi eseguire una ricerca di somiglianze vettoriali per recuperare un elenco di entità semanticamente simili o correlate, chiamate anche vicini approssimati più prossimi. Puoi cercare in base a un ID entità o a un incorporamento.
Per cercare i vicini più prossimi approssimati, devi prima effettuare le seguenti operazioni:
Configura l'origine dati BigQuery in modo da supportare gli incorporamenti includendo la colonna
embedding
. Facoltativamente, includi le colonne di filtro e crowding. Per maggiori informazioni, consulta Linee guida per la preparazione delle origini dati.Crea un'istanza del negozio online che supporti la gestione dell'incorporamento. Per saperne di più su come creare un'istanza del negozio online che supporta la gestione dell'incorporamento, consulta Configurare la gestione dell'incorporamento per un negozio online.
Specifica la colonna
embedding
durante la creazione della visualizzazione delle caratteristiche. Per ulteriori informazioni su come creare una visualizzazione caratteristiche che supporta gli incorporamenti, consulta Configurare il recupero di vettori per una vista caratteristiche.
In questa pagina viene spiegato come svolgere le seguenti operazioni:
Recupera il nome di dominio dell'endpoint pubblico per il negozio online
Recuperare le corrispondenze del vicino più prossimo di un incorporamento
Recuperare le corrispondenze del vicino più prossimo di un'entità
Recupera il nome di dominio dell'endpoint pubblico per il negozio online
Quando crei e configuri un'istanza di un negozio online per la gestione dell'incorporamento, Vertex AI Feature Store genera un nome di dominio di endpoint pubblico per il negozio online. Prima di poter iniziare a cercare i vicini più prossimi da una visualizzazione delle funzionalità nel negozio online, devi recuperare il nome di dominio dell'endpoint pubblico dai dettagli del negozio online.
Utilizza il seguente esempio per recuperare i dettagli di un'istanza di un negozio online.
REST
Per recuperare i dettagli di una risorsa FeatureOnlineStore
nel tuo progetto, invia una richiesta GET
utilizzando il metodo featureOnlineStores.get
.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: la regione in cui si trova il negozio online, ad esempio
us-central1
. - PROJECT_ID: l'ID del tuo progetto.
- FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online.
Metodo HTTP e URL:
GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1", "createTime": "2023-09-06T23:25:04.256314Z", "updateTime": "2023-09-06T23:25:04.256314Z", "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=", "state": "STABLE", "dedicatedServingEndpoint": { "publicEndpointDomainName": "PUBLIC_ENDPOINT_DOMAIN_NAME" }, "optimized": {} }
Sarà necessario il PUBLIC_ENDPOINT_DOMAIN_NAME della risposta per recuperare i vicini più prossimi approssimati nel passaggio successivo.
Recupera i vicini più prossimi approssimati di un incorporamento
Usa il seguente esempio per utilizzare un incorporamento per eseguire la ricerca di entità semanticamente correlate specificando un incorporamento.
REST
Per cercare un incorporamento per i vicini più prossimi, invia una richiesta POST
utilizzando il metodo
featureViews.searchNearestEntities.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PUBLIC_ENDPOINT_DOMAIN_NAME: nome di dominio dell'endpoint pubblico per l'istanza del negozio online che hai recuperato utilizzando il metodo
featureOnlineStores.get
. - PROJECT_ID: l'ID del tuo progetto.
- LOCATION_ID: regione in cui si trova l'istanza del negozio online, ad esempio
us-central1
. - FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online contenente la visualizzazione della funzionalità in cui vuoi cercare corrispondenze approssimative del vicino più prossimo.
- FEATUREVIEW_NAME: il nome della visualizzazione della funzionalità in cui vuoi cercare corrispondenze approssimative del vicino più prossimo.
- EMBEDDING: incorporamento per il quale vuoi recuperare le corrispondenze approssimative del vicino più prossimo. Un incorporamento è rappresentato da un array di valori
double
. - BOOLEAN: facoltativo: specifica se vuoi includere o escludere le funzionalità per le entità nella risposta. Per includere le funzionalità insieme alle entità nella risposta, inserisci
true
. Il valore predefinito èfalse
. - NEIGHBOR_COUNT: numero di vicini più prossimi approssimativamente che vuoi recuperare.
Metodo HTTP e URL:
POST http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities
Corpo JSON della richiesta:
{ "query": { "embedding": { "value": EMBEDDING }, "neighbor_count": NEIGHBOR_COUNT }, "return_full_entity": BOOLEAN }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "nearestNeighbors": { "neighbors": [ { "entityId": "305281", "distance": -41.115459442138672 }, { "entityId": "80280", "distance": -38.703567504882812 }, { "entityId": "80280", "distance":-38.703567504882812 }, { "entityId": "903779", "distance": -38.214759826660156 }, { "entityId": "1008145", "distance": -36.271354675292969 }, { "entityId": "606431", "distance": -34.791431427001953 } ] } }
Recupera i vicini più prossimi approssimati di un'entità
Utilizza l'esempio seguente per utilizzare un incorporamento per eseguire la ricerca di entità semanticamente correlate specificando un ID entità.
REST
Per cercare un ID entità tra i vicini più prossimi, invia una richiesta POST
utilizzando il metodo
featureViews.searchNearestEntities.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PUBLIC_ENDPOINT_DOMAIN_NAME: nome di dominio dell'endpoint pubblico per l'istanza del negozio online che hai recuperato utilizzando il metodo
featureOnlineStores.get
. - PROJECT_ID: l'ID del tuo progetto.
- LOCATION_ID: regione in cui si trova l'istanza del negozio online, ad esempio
us-central1
. - FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online contenente la visualizzazione della funzionalità in cui vuoi cercare corrispondenze approssimative del vicino più prossimo.
- FEATUREVIEW_NAME: il nome della visualizzazione della funzionalità in cui vuoi cercare corrispondenze approssimative del vicino più prossimo.
- ENTITY_ID: ID entità dell'entità per la quale vuoi recuperare le corrispondenze approssimative del vicino più prossimo.
- BOOLEAN: facoltativo: specifica se vuoi includere o escludere le funzionalità per le entità nella risposta. Per includere le funzionalità insieme alle entità nella risposta, inserisci
true
. Il valore predefinito èfalse
. - NEIGHBOR_COUNT: numero di vicini più prossimi approssimativamente che vuoi recuperare.
Metodo HTTP e URL:
POST http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities
Corpo JSON della richiesta:
{ "query": { "entity_id": ENTITY_ID, "neighbor_count": NEIGHBOR_COUNT }, "return_full_entity": BOOLEAN }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "nearestNeighbors": { "neighbors": [ { "entityId": "305281", "distance": -41.115459442138672 }, { "entityId": "80280", "distance": -38.703567504882812 }, { "entityId": "80280", "distance":-38.703567504882812 }, { "entityId": "903779", "distance": -38.214759826660156 }, { "entityId": "1008145", "distance": -36.271354675292969 }, { "entityId": "606431", "distance": -34.791431427001953 } ] } }