Online serving lets you serve feature values for small batches of entities at low latency. For each request, you can only serve feature values from a single entity type. Vertex AI Feature Store (Legacy) returns only the latest non-null value of each feature.
Typically, you use online serving to serve feature values to deployed models for online predictions. For example, you might have a bike-sharing company and you want to predict how long a particular user will rent a bike. You can include real-time inputs from the user and data from the featurestore to perform an online prediction. That way, you can determine resource allocation in real time.
Null values
For online serving results, if the latest value for a feature is null, Vertex AI Feature Store (Legacy) returns the latest non-null value. If there is no previous value, Vertex AI Feature Store (Legacy) returns null.
Before you begin
Check that the featurestore you're making calls against has an online store (the
number of nodes must be greater than 0
). Otherwise, online serving requests
return an error. For more info, see Manage
featurestores.
Serve values from a single entity
Serve feature values from a single entity for a particular entity type.
REST
To get feature values from an entity, send a POST request by using the featurestores.entityTypes.readFeatureValues method.
The following sample gets the latest values for two different features for a
particular entity. Note that for the ids
field you can specify
["*"]
instead of the feature IDs to select all features for the
entity.
Before using any of the request data, make the following replacements:
- LOCATION_ID: Region where the featurestore is created. For example,
us-central1
. - PROJECT_ID: Your project ID.
- FEATURESTORE_ID: ID of the featurestore.
- ENTITY_TYPE_ID: ID of the entity type.
- ENTITY_ID: ID of the entity to get feature values for.
- FEATURE_ID: ID of feature to get values for.
HTTP method and URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:readFeatureValues
Request JSON body:
{ "entityId": "ENTITY_ID", "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID_1", "FEATURE_ID_2"] } } }
To send your request, choose one of these options:
curl
Save the request body in a file named request.json
,
and execute the following command:
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
Save the request body in a file named request.json
,
and execute the following command:
$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
You should receive a JSON response similar to the following:
{ "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
To learn how to install or update the Vertex AI SDK for Python, see Install the Vertex AI SDK for Python. For more information, see the Python API reference documentation.
Java
Before trying this sample, follow the Java setup instructions in the Vertex AI quickstart using client libraries. For more information, see the Vertex AI Java API reference documentation.
To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
Node.js
Before trying this sample, follow the Node.js setup instructions in the Vertex AI quickstart using client libraries. For more information, see the Vertex AI Node.js API reference documentation.
To authenticate to Vertex AI, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.
Serve values from multiple entities
Serve feature values from one or more entities for a particular entity type.
For better performance, use the streamingReadFeatureValues
method instead
of sending parallel requests to the readFeatureValues
method.
REST
To get feature values from multiple entities, send a POST request by using the featurestores.entityTypes.streamingReadFeatureValues method.
The following sample gets the latest values for two different features for two
different entities. Note that for the ids
field you can specify
["*"]
instead of the feature IDs to select all features for the
entity.
Before using any of the request data, make the following replacements:
- LOCATION_ID: Region where the featurestore is created. For example,
us-central1
. - PROJECT_ID: Your project ID.
- FEATURESTORE_ID: ID of the featurestore.
- ENTITY_TYPE_ID: ID of the entity type.
- ENTITY_ID: ID of the entity to get feature values for.
- FEATURE_ID: ID of feature to get values for.
HTTP method and URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:streamingReadFeatureValues
Request JSON body:
{ "entityIds": ["ENTITY_ID_1", "ENTITY_ID_2"], "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID_1", "FEATURE_ID_2"] } } }
To send your request, choose one of these options:
curl
Save the request body in a file named request.json
,
and execute the following command:
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
Save the request body in a file named request.json
,
and execute the following command:
$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
You should receive a JSON response similar to the following:
[{ "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" } } } ] } }]
Additional languages
You can install and use the following Vertex AI client libraries to call the Vertex AI API. Cloud Client Libraries provide an optimized developer experience by using the natural conventions and styles of each supported language.
What's next
- Learn how to batch ingest feature values.
- Learn how to serve features through batch serving.
- View the Vertex AI Feature Store (Legacy) online serving quotas.
- Troubleshoot common Vertex AI Feature Store (Legacy) issues.