La pubblicazione online ti consente di pubblicare i valori delle funzionalità per piccoli batch di entità a bassa latenza. Per ogni richiesta, puoi pubblicare solo i valori delle funzionalità di un singolo tipo di entità. Vertex AI Feature Store (legacy) restituisce solo il valore non nullo più recente di ogni funzionalità.
In genere, utilizzi la pubblicazione online per fornire i valori delle caratteristiche ai modelli di cui è stato eseguito il deployment per le previsioni online. Ad esempio, potresti avere un'azienda di bike sharing e voler prevedere per quanto tempo un determinato utente noleggerà una bicicletta. Puoi includere input in tempo reale dell'utente e dati del feature store per eseguire una previsione online. In questo modo, puoi determinare l'allocazione delle risorse in tempo reale.
Valori null
Per i risultati della pubblicazione online, se il valore più recente di una funzionalità è nullo, Vertex AI Feature Store (legacy) restituisce l'ultimo valore non nullo. Se non è presente alcun valore precedente, Vertex AI Feature Store (legacy) restituisce null.
Prima di iniziare
Verifica che il feature store a cui effettui le chiamate abbia un negozio online (il numero di nodi deve essere maggiore di 0
). In caso contrario, le richieste di pubblicazione online restituiscono un errore. Per saperne di più, consulta Gestire i feature store.
Pubblicare valori di una singola entità
Pubblica i valori delle caratteristiche di una singola entità per un determinato tipo di entità.
REST
Per ottenere i valori delle caratteristiche da un'entità, invia una richiesta POST utilizzando il metodo featurestores.entityTypes.readFeatureValues.
L'esempio seguente recupera i valori più recenti di due funzionalità diverse per una determinata entità. Tieni presente che per il campo ids
puoi specificare ["*"]
anziché gli ID elemento per selezionare tutte le funzionalità per l'entità.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: regione in cui viene creato il feature store. Ad esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID dell'archivio di funzionalità.
- ENTITY_TYPE_ID: ID del tipo di entità.
- ENTITY_ID: l'ID dell'entità per cui ottenere i valori delle funzionalità.
- FEATURE_ID: ID dell'elemento per cui ottenere i valori.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:readFeatureValues
Corpo JSON della richiesta:
{ "entityId": "ENTITY_ID", "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID_1", "FEATURE_ID_2"] } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:readFeatureValues"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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 "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:readFeatureValues" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "header": { "entityType": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID", "featureDescriptors": [ { "id": "FEATURE_ID_1" }, { "id": "FEATURE_ID_2" } ] }, "entityView": { "entityId": "ENTITY_ID", "data": [ { "value": { "VALUE_TYPE_1": "FEATURE_VALUE_1", "metadata": { "generateTime": "2019-10-28T15:38:10Z" } } }, { "value": { "VALUE_TYPE_2": "FEATURE_VALUE_2", "metadata": { "generateTime": "2019-10-28T15:38:10Z" } } } ] } }
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di Vertex AI. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Vertex AI.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Pubblicare valori di più entità
Pubblica i valori delle caratteristiche di una o più entità per un determinato tipo di entità.
Per migliorare le prestazioni, utilizza il metodo streamingReadFeatureValues
anziché inviare richieste parallele al metodo readFeatureValues
.
REST
Per ottenere i valori delle funzionalità da più entità, invia una richiesta POST utilizzando il metodo featurestores.entityTypes.streamingReadFeatureValues.
L'esempio seguente recupera i valori più recenti per due funzionalità diverse per due entità diverse. Tieni presente che per il campo ids
puoi specificare ["*"]
anziché gli ID elemento per selezionare tutte le funzionalità per l'entità.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION_ID: regione in cui viene creato il feature store. Ad esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID dell'archivio di funzionalità.
- ENTITY_TYPE_ID: ID del tipo di entità.
- ENTITY_ID: l'ID dell'entità per cui ottenere i valori delle funzionalità.
- FEATURE_ID: ID dell'elemento per cui ottenere i valori.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:streamingReadFeatureValues
Corpo JSON della richiesta:
{ "entityIds": ["ENTITY_ID_1", "ENTITY_ID_2"], "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID_1", "FEATURE_ID_2"] } } }
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:streamingReadFeatureValues"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
$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 "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:streamingReadFeatureValues" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
[{ "header": { "entityType": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID", "featureDescriptors": [ { "id": "FEATURE_ID_1" }, { "id": "FEATURE_ID_2" } ] } }, { "entityView": { "entityId": "ENTITY_ID_1", "data": [ { "value": { "VALUE_TYPE_1": "FEATURE_VALUE_A", "metadata": { "generateTime": "2019-10-28T15:38:10Z" } } }, { "value": { "VALUE_TYPE_2": "FEATURE_VALUE_B", "metadata": { "generateTime": "2019-10-28T15:38:10Z" } } } ] } }, { "entityView": { "entityId": "ENTITY_ID_2", "data": [ { "value": { "VALUE_TYPE_1": "FEATURE_VALUE_C", "metadata": { "generateTime": "2019-10-28T21:21:37Z" } } }, { "value": { "VALUE_TYPE_2": "FEATURE_VALUE_D", "metadata": { "generateTime": "2019-10-28T21:21:37Z" } } } ] } }]
Linguaggi aggiuntivi
Puoi installare e utilizzare le seguenti librerie client di Vertex AI per chiamare l'API Vertex AI. Le librerie client di Cloud offrono agli sviluppatori un'esperienza ottimizzata utilizzando gli stili e le convenzioni naturali di ogni linguaggio supportato.
Passaggi successivi
- Scopri come importare in batch i valori delle caratteristiche.
- Scopri come pubblicare funzionalità tramite la pubblicazione collettiva.
- Visualizza le quote di pubblicazione online di Vertex AI Feature Store (legacy).
- Risolvi i problemi comuni di Vertex AI Feature Store (legacy).