La publicación online te permite publicar valores de características de pequeños lotes de entidades con baja latencia. En cada solicitud, solo puede proporcionar valores de características de un único tipo de entidad. Vertex AI Feature Store (antigua) solo devuelve el valor no nulo más reciente de cada característica.
Normalmente, se usa el servicio online para proporcionar valores de funciones a los modelos implementados para las inferencias online. Por ejemplo, puede que tengas una empresa de alquiler de bicicletas y quieras predecir cuánto tiempo alquilará una bicicleta un usuario concreto. Puedes incluir entradas en tiempo real del usuario y datos del almacén de características para realizar una inferencia online. De esta forma, puedes determinar la asignación de recursos en tiempo real.
valores nulos
En el caso de los resultados de la entrega online, si el valor más reciente de una característica es nulo, Vertex AI Feature Store (antigua) devuelve el valor no nulo más reciente. Si no hay ningún valor anterior, Vertex AI Feature Store (antigua) devuelve un valor nulo.
Antes de empezar
Comprueba que el almacén de características al que llamas tiene una tienda online (el número de nodos debe ser superior a 0
). De lo contrario, las solicitudes de servicio online devuelven un error. Para obtener más información, consulta Gestionar feature stores.
Servir valores de una sola entidad
Sirve valores de características de una sola entidad para un tipo de entidad concreto.
REST
Para obtener los valores de las características de una entidad, envía una solicitud POST mediante el método featurestores.entityTypes.readFeatureValues.
En el siguiente ejemplo se obtienen los valores más recientes de dos funciones diferentes de una entidad concreta. Ten en cuenta que, en el campo ids
, puedes especificar ["*"]
en lugar de los IDs de las funciones para seleccionar todas las funciones de la entidad.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: región en la que se crea el almacén de características. Por ejemplo,
us-central1
. - PROJECT_ID: tu ID de proyecto.
- FEATURESTORE_ID: ID del almacén de características.
- ENTITY_TYPE_ID: ID del tipo de entidad.
- ENTITY_ID: ID de la entidad de la que se van a obtener los valores de las funciones.
- FEATURE_ID: ID de la función de la que se van a obtener los valores.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:readFeatureValues
Cuerpo JSON de la solicitud:
{ "entityId": "ENTITY_ID", "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID_1", "FEATURE_ID_2"] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API Python.
Java
Antes de probar este ejemplo, sigue las Java instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las Node.js instrucciones de configuración de la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Servir valores de varias entidades
Sirve valores de características de una o varias entidades de un tipo de entidad concreto.
Para mejorar el rendimiento, usa el método streamingReadFeatureValues
en lugar de enviar solicitudes paralelas al método readFeatureValues
.
REST
Para obtener valores de características de varias entidades, envíe una solicitud POST mediante el método featurestores.entityTypes.streamingReadFeatureValues.
En el siguiente ejemplo se obtienen los valores más recientes de dos funciones diferentes para dos entidades distintas. Ten en cuenta que, en el campo ids
, puedes especificar ["*"]
en lugar de los IDs de las funciones para seleccionar todas las funciones de la entidad.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- LOCATION_ID: región en la que se crea el almacén de características. Por ejemplo,
us-central1
. - PROJECT_ID: .
- FEATURESTORE_ID: ID del almacén de características.
- ENTITY_TYPE_ID: ID del tipo de entidad.
- ENTITY_ID: ID de la entidad de la que se van a obtener los valores de las funciones.
- FEATURE_ID: ID de la función de la que se van a obtener los valores.
Método HTTP y URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:streamingReadFeatureValues
Cuerpo JSON de la solicitud:
{ "entityIds": ["ENTITY_ID_1", "ENTITY_ID_2"], "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID_1", "FEATURE_ID_2"] } } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la siguiente:
[{ "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" } } } ] } }]
Idiomas adicionales
Puedes instalar y usar las siguientes bibliotecas de cliente de Vertex AI para llamar a la API Vertex AI. Las bibliotecas de cliente de Cloud ofrecen una experiencia de desarrollo optimizada mediante el uso de las convenciones y los estilos naturales de cada lenguaje admitido.
Siguientes pasos
- Consulta cómo ingestar valores de características por lotes.
- Consulta cómo servir funciones mediante el servicio por lotes.
- Consulta las cuotas de entrega online de Vertex AI Feature Store (antigua).
- Soluciona problemas habituales de Vertex AI Feature Store (antigua).