L'erogazione online consente di erogare i valori delle caratteristiche per piccoli batch di entità a bassa latenza. Per ogni richiesta, puoi pubblicare solo i valori delle caratteristiche di un singolo tipo di entità. Vertex AI Feature Store (legacy) restituisce solo l'ultimo valore non nullo di ogni caratteristica.
In genere, utilizzi l'erogazione online per erogare i valori delle caratteristiche nei modelli sottoposti a deployment per le inferenze online. Ad esempio, potresti avere una società 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 dal featurestore per eseguire un'inferenza online. In questo modo, puoi determinare l'allocazione delle risorse in tempo reale.
Valori null
Per i risultati dell'erogazione online, se l'ultimo valore di una caratteristica è null, 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 l'archivio di caratteristiche su cui stai effettuando le chiamate abbia un archivio online (il numero di nodi deve essere maggiore di 0). In caso contrario, le richieste di erogazione online restituiscono un errore. Per saperne di più, consulta Gestire
i featurestore.
Pubblicare i 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 di un'entità, invia una richiesta POST utilizzando il featurestores.entityTypes.readFeatureValues.
Il seguente esempio recupera gli ultimi valori di due caratteristiche diverse per una determinata entità. Tieni presente che per il campo ids puoi specificare
["*"] anziché gli ID delle caratteristiche per selezionare tutte le caratteristiche dell'
entità.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: regione in cui viene creato il featurestore. Ad esempio,
us-central1. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID del featurestore.
- ENTITY_TYPE_ID: ID del tipo di entità.
- ENTITY_ID: ID dell'entità per cui recuperare i valori delle caratteristiche.
- FEATURE_ID: ID della caratteristica per cui recuperare 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 di queste 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 Python, consulta Installare l'SDK Vertex AI 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 nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'Java API di Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'Node.js API di Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Pubblicare i valori di più entità
Eroga i valori delle caratteristiche di una o più entità per un determinato tipo di entità.
Per un rendimento migliore, utilizza il metodo streamingReadFeatureValues anziché inviare richieste parallele al metodo readFeatureValues.
REST
Per ottenere i valori delle caratteristiche di più entità, invia una richiesta POST utilizzando il featurestores.entityTypes.streamingReadFeatureValues.
Il seguente esempio recupera gli ultimi valori di due caratteristiche diverse per due entità diverse. Tieni presente che per il campo ids puoi specificare
["*"] anziché gli ID delle caratteristiche per selezionare tutte le caratteristiche dell'
entità.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION_ID: regione in cui viene creato il featurestore. Ad esempio,
us-central1. - PROJECT_ID: .
- FEATURESTORE_ID: ID del featurestore.
- ENTITY_TYPE_ID: ID del tipo di entità.
- ENTITY_ID: ID dell'entità per cui recuperare i valori delle caratteristiche.
- FEATURE_ID: ID della caratteristica per cui recuperare 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 di queste 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 un'esperienza di sviluppo ottimizzata utilizzando le convenzioni e gli stili naturali di ogni linguaggio supportato.
Passaggi successivi
- Scopri come eseguire l'inserimento in batch dei valori delle caratteristiche.
- Scopri come erogare le caratteristiche tramite l'erogazione batch.
- Visualizza le quote di erogazione online di Vertex AI Feature Store (legacy).
- Risolvi i problemi comuni di Vertex AI Feature Store (legacy).