La pubblicazione online consente di pubblicare valori delle caratteristiche per piccoli batch di entità a bassa latenza. Per ogni richiesta, puoi pubblicare valori delle caratteristiche solo da un singolo tipo di entità. Vertex AI Feature Store (legacy) restituisce solo il valore non-null più recente di ogni caratteristica.
In genere si usa la pubblicazione online per fornire valori delle caratteristiche ai modelli di cui è stato eseguito il deployment per le previsioni online. Supponiamo, ad esempio, che tu abbia un'azienda di bike sharing e vuoi prevedere per quanto tempo un determinato utente noleggia una bicicletta. Puoi includere input in tempo reale dell'utente e dati dell'archivio di caratteristiche per eseguire una previsione online. In questo modo, puoi determinare l'allocazione delle risorse in tempo reale.
Valori null
Per i risultati di pubblicazione online, se il valore più recente di una caratteristica è null, Vertex AI Feature Store (legacy) restituisce il valore non null più recente. Se non è presente alcun valore precedente, Vertex AI Feature Store (legacy) restituisce null.
Prima di iniziare
Verifica che l'archivio di caratteristiche per il quale stai effettuando 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 ulteriori informazioni, consulta Gestire
i Featurestore.
Pubblica valori da 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.
Il seguente esempio recupera i valori più recenti per due funzionalità diverse per una determinata entità. Tieni presente che, per il campo ids
, puoi specificare ["*"]
anziché gli ID funzionalità per selezionare tutte le funzionalità per l'entità.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui viene creato l'archivio di caratteristiche. Ad esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID dell'archivio di caratteristiche.
- ENTITY_TYPE_ID: ID del tipo di entità.
- ENTITY_ID: ID dell'entità per la quale ottenere i valori delle funzionalità.
- FEATURE_ID: ID della caratteristica per la quale 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:
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 \
"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
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 "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.
Python
La libreria client per Vertex AI è inclusa nell'installazione dell'SDK Vertex AI per Python. Per scoprire come installare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per maggiori informazioni, consulta la documentazione di riferimento dell'SDK Vertex AI per l'API Python.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js riportate nella guida rapida di Vertex AI sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js Vertex AI.
Per eseguire l'autenticazione in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Pubblica valori da più entità
Pubblica i valori delle caratteristiche di una o più entità per un determinato tipo di entità.
Per ottenere prestazioni migliori, utilizza il metodo streamingReadFeatureValues
anziché inviare richieste parallele al metodo readFeatureValues
.
REST
Per ottenere i valori delle caratteristiche da più entità, invia una richiesta POST utilizzando il metodo featurestores.entityTypes.streamingReadFeatureValues.
Il seguente esempio recupera i valori più recenti per due caratteristiche diverse per due diverse entità. Tieni presente che, per il campo ids
, puoi specificare ["*"]
anziché gli ID funzionalità per selezionare tutte le funzionalità per l'entità.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: regione in cui viene creato l'archivio di caratteristiche. Ad esempio,
us-central1
. - PROJECT_ID: il tuo ID progetto.
- FEATURESTORE_ID: ID dell'archivio di caratteristiche.
- ENTITY_TYPE_ID: ID del tipo di entità.
- ENTITY_ID: ID dell'entità per la quale ottenere i valori delle funzionalità.
- FEATURE_ID: ID della caratteristica per la quale 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:
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 \
"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
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 "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 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 gruppo i valori delle caratteristiche.
- Scopri come pubblicare le caratteristiche tramite la pubblicazione in gruppo.
- Visualizza le quote di pubblicazione online di Vertex AI Feature Store (legacy).
- Risolvi i problemi comuni di Vertex AI Feature Store (legacy).