Entrega valores de atributos

Vertex AI Feature Store te permite entregar valores de atributos en línea desde una vista de atributos dentro de una tienda en línea. Por ejemplo, puedes entregar los valores de los atributos desde una vista de atributos para las predicciones en línea. Una vista de atributos debe sincronizarse al menos una vez para que puedas entregar atributos en línea desde esa función.

Si la vista de atributos se define en función de grupos de atributos y atributos, Vertex AI Feature Store recupera los valores de atributos más recientes correspondientes a un ID de entidad específico. Si hay varios registros con el mismo valor en la columna de ID, Vertex AI Feature Store recupera los valores de atributos no nulos más recientes, según la columna feature_timestamp.

Si la vista de atributos está asociada directamente con una fuente de datos de BigQuery sin asociar grupos de atributos y atributos, Vertex AI Feature Store recupera todos los valores de los atributos de la fuente de datos. En este caso, cada fila de la fuente de datos debe contener un ID único.

Solo puedes entregar valores de atributos desde un ID por solicitud.

Según el tipo de entrega en línea configurada para tu tienda en línea, puedes entregar valores de atributos de una de las siguientes maneras:

Recupera valores de atributos a través de la entrega en línea de Bigtable

Usa el siguiente ejemplo para recuperar los valores de atributos según un ID de la entidad específico a través de la entrega en línea de Bigtable.

REST

Para recuperar todos los valores de atributos más recientes de un ID de entidad específico de una instancia FeatureView, envía una solicitud POST mediante el método featureViews. Método .fetchFeatureValues.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: Es el nombre de la tienda en línea que contiene la vista de atributos.
  • FEATUREVIEW_NAME: Es el nombre de la vista de atributos desde la que deseas entregar los valores de los atributos.
  • ENTITY_ID: El valor de la columna de ID en el registro de atributos desde el que deseas entregar los valores de atributos más recientes.
  • FORMAT: Opcional: El formato en el que deseas recuperar los valores del atributo. Los formatos compatibles incluyen el par clave-valor JSON y los formatos proto Struct.

HTTP method and URL:

POST http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues

Cuerpo JSON de la solicitud:

{
  data_key: "ENTITY_ID",
  data_format: "FORMAT"
}

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 \
"http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

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 "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

key_values {
  features {
    value {
      int64_value: 258348
    }
    name: "feature_0"
  }
  features {
    value {
      double_value: 0.96300036744534068
    }
    name: "feature_1"
  }
  features {
    value {
      double_value: 0.42787383695351083
    }
    name: "feature_2"
  }
  features {
    value {
      double_value: 0.12219888824743128
    }
    name: "feature_3"
  }
  features {
    value {
      double_value: 0.037523154697944622
    }
    name: "feature_4"
  }
  features {
    value {
      double_value: 0.1766952509448767
    }
    name: "feature_5"
  }
}

Python

Usa el siguiente ejemplo para recuperar valores de atributos según un ID de la entidad específico a través de la entrega en línea de Bigtable.

from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.types import feature_online_store_service as feature_online_store_service_pb2

data_client = FeatureOnlineStoreServiceClient(
  client_options={"api_endpoint": f"LOCATION_ID-aiplatform.googleapis.com"}
)
data_client.fetch_feature_values(
  request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
    feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
    data_key=feature_online_store_service_pb2.FeatureViewDataKey(key="ENTITY_ID"),
    data_format=feature_online_store_service_pb2.FeatureViewDataFormat.FORMAT,
  )
)

Reemplaza lo siguiente:

  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.

  • PROJECT_ID: ID del proyecto

  • FEATUREONLINESTORE_NAME: Es el nombre de la tienda en línea que contiene la vista de atributos.

  • FEATUREVIEW_NAME: Es el nombre de la vista de atributos desde la que deseas entregar los valores de los atributos.

  • ENTITY_ID: El valor de la columna de ID en el registro de atributos desde el que deseas entregar los valores de atributos más recientes.

  • FORMAT: Opcional: El formato en el que deseas recuperar los valores del atributo. Los formatos compatibles incluyen el par JSON KEY_VALUE y los formatos proto PROTO_STRUCT.

Recupera valores de atributos mediante la entrega en línea optimizada desde un extremo público

Si configuraste la instancia de tu tienda en línea para que entregue valores de atributos mediante la entrega optimizada en línea desde un extremo público, debes realizar los siguientes pasos a fin de recuperar valores de atributos desde una vista de atributos en línea. almacenamiento:

  1. Recupera el nombre de dominio del extremo público de la instancia FeatureOnlineStore.

  2. Recupera los valores de atributos de un ID de entidad mediante el nombre de dominio del extremo público.

Recupera el nombre de dominio del extremo público de la tienda en línea

Cuando creas y configuras una instancia de almacén en línea para la entrega en línea optimizada con un extremo público, Vertex AI Feature Store genera el nombre de dominio del extremo público para el almacén en línea. Antes de comenzar a entregar valores de atributos desde una vista de atributos en el almacén en línea, debes recuperar el nombre de dominio del extremo público de los detalles del almacén en línea.

Usa la siguiente muestra para recuperar los detalles de una instancia de tienda en línea.

REST

Para recuperar los detalles de un recurso FeatureOnlineStore en tu proyecto, envía una solicitud GET mediante el método featureOnlineStores.get.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: El nombre de la instancia de tienda en línea.

HTTP method and URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"

PowerShell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
  "createTime": "2023-09-06T23:25:04.256314Z",
  "updateTime": "2023-09-06T23:25:04.256314Z",
  "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
  "state": "STABLE",
  "dedicatedServingEndpoint": {
    "publicEndpointDomainName": "PUBLIC_ENDPOINT_DOMAIN_NAME"
  },
  "optimized": {}
}

Necesitarás el PUBLIC_ENDPOINT_DOMAIN_NAME de la respuesta para recuperar los valores de los atributos en el siguiente paso.

Recupera valores de atributos de un ID de entidad

Después de recuperar el nombre de dominio del extremo público para la instancia de tienda en línea, usa la siguiente muestra a fin de recuperar los valores de atributos de un ID de entidad específico mediante la entrega en línea optimizada.

REST

Para recuperar todos los valores de atributos más recientes de un ID de entidad específico de una instancia FeatureView, envía una solicitud POST mediante el método featureViews.fetchFeatureValues.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: Es el nombre de dominio del extremo público para la instancia de tienda en línea que recuperaste mediante el método featureOnlineStores.get.
  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: Es el nombre de la tienda en línea que contiene la vista de atributos.
  • FEATUREVIEW_NAME: Es el nombre de la vista de atributos desde la que deseas entregar los valores de los atributos.
  • ENTITY_ID: El valor de la columna de ID en el registro de atributos desde el que deseas entregar los valores de atributos más recientes.
  • FORMAT: Opcional: El formato en el que deseas recuperar los valores del atributo. Los formatos compatibles incluyen el par clave-valor JSON y los formatos proto Struct.

HTTP method and URL:

POST http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues

Cuerpo JSON de la solicitud:

{
  data_key: "ENTITY_ID",
  data_format: "FORMAT"
}

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 \
"http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

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 "http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

key_values {
  features {
    value {
      int64_value: 258348
    }
    name: "feature_0"
  }
  features {
    value {
      double_value: 0.96300036744534068
    }
    name: "feature_1"
  }
  features {
    value {
      double_value: 0.42787383695351083
    }
    name: "feature_2"
  }
  features {
    value {
      double_value: 0.12219888824743128
    }
    name: "feature_3"
  }
  features {
    value {
      double_value: 0.037523154697944622
    }
    name: "feature_4"
  }
  features {
    value {
      double_value: 0.1766952509448767
    }
    name: "feature_5"
  }
}

Python

Usa la siguiente muestra para recuperar los valores de los atributos según un ID de entidad específico mediante la entrega en línea optimizada.

from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.types import feature_online_store_service as feature_online_store_service_pb2

data_client = FeatureOnlineStoreServiceClient(
  client_options={"api_endpoint": f"PUBLIC_ENDPOINT_DOMAIN_NAME"}
)
data_client.fetch_feature_values(
  request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
    feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
    id=f"ENTITY_ID",
    format=feature_online_store_service_pb2.FetchFeatureValuesRequest.Format.FORMAT,
  )
)

Reemplaza lo siguiente:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: Es el nombre de dominio del extremo público para la instancia de tienda en línea que recuperaste mediante el método featureOnlineStores.get.

  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.

  • PROJECT_ID: ID del proyecto

  • FEATUREONLINESTORE_NAME: Es el nombre de la tienda en línea que contiene la vista de atributos.

  • FEATUREVIEW_NAME: Es el nombre de la vista de atributos desde la que deseas entregar los valores de los atributos.

  • ENTITY_ID: El valor de la columna de ID en el registro de atributos desde el que deseas entregar los valores de atributos más recientes.

  • FORMAT: Opcional: El formato en el que deseas recuperar los valores del atributo. Los formatos compatibles incluyen el par JSON KEY_VALUE y los formatos proto PROTO_STRUCT.

Recupera valores de atributos mediante la entrega en línea optimizada desde un extremo de Private Service Connect

Si configuraste la instancia de tu tienda en línea para que entregue valores de atributos mediante la entrega optimizada en línea desde un extremo de Private Service Connect, debes realizar los siguientes pasos a fin de recuperar valores de atributos desde una vista de atributos en línea. almacenamiento:

  1. Recupera la configuración de Private Service Connect para la instancia FeatureOnlineStore.

  2. Agrega un extremo para Private Service Connect a tu configuración de red.

  3. Conéctate al extremo de Private Service Connect a través de gRPC.

  4. Recupera los valores de atributos de un ID de entidad.

Recupera la cadena de adjunto de servicio para la tienda en línea

Cuando creas y configuras una instancia de tienda en línea para la entrega en línea optimizada con un extremo de Private Service Connect, Vertex AI Feature Store genera una cadena de adjunto de servicio que puedes usar para configurar el extremo de Private Service Connect. Puedes recuperar la string del adjunto de servicio desde los detalles de la tienda en línea.

Usa la siguiente muestra para recuperar los detalles de una instancia de tienda en línea.

REST

Para recuperar los detalles de un recurso FeatureOnlineStore en tu proyecto, envía una solicitud GET mediante el método featureOnlineStores.get.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.
  • PROJECT_ID: ID del proyecto
  • FEATUREONLINESTORE_NAME: El nombre de la instancia de tienda en línea.

HTTP method and URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"

PowerShell

Ejecuta el siguiente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1",
  "createTime": "2023-09-06T23:25:04.256314Z",
  "updateTime": "2023-09-06T23:25:04.256314Z",
  "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=",
  "state": "STABLE",
  "dedicatedServingEndpoint": {
    "privateServiceConnectConfig": {
      "enablePrivateServiceConnect": "true",
      "projectAllowlist": [
        "PROJECT_NAME"
      ]
    },
    serviceAttachment: "SERVICE_ATTACHMENT_STRING"
  },
  "optimized": {}
}

Necesitarás el SERVICE_ATTACHMENT_STRING de la respuesta para recuperar los valores de los atributos en el siguiente paso.

Agrega un extremo para Private Service Connect

Si quieres agregar un extremo de Private Service Connect para la entrega en línea optimizada a la configuración de tu red, sigue estos pasos:

  1. En la consola de Google Cloud, selecciona el proyecto que contiene la instancia de la tienda en línea.

  2. Si quieres crear un extremo para Private Service Connect, especifica SERVICE_ATTACHMENT_STRING como el servicio de destino. Si deseas obtener información para crear un extremo para Private Service Connect, consulta Crea un extremo.

Después de crear el extremo, aparecerá en la pestaña Extremos conectados en la página de Private Service Connect. La dirección IP del extremo aparece en la columna Direcciones IP.

Ir a la pestaña Extremos conectados

Deberás usar esta dirección IP para conectarte al extremo de tu instancia de almacenamiento en línea al extremo de Private Service Connect mediante gRPC en el siguiente paso.

Conéctate al extremo de Private Service Connect a través de gRPC

Usa la siguiente muestra de código a fin de conectarte al extremo de Private Service Connect creado para tu almacén en línea a través de gRPC.

Python

from google.cloud.aiplatform_v1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1.services.feature_online_store_service.transports.grpc import FeatureOnlineStoreServiceGrpcTransport
import grpc

data_client = FeatureOnlineStoreServiceClient(
  transport = FeatureOnlineStoreServiceGrpcTransport(
    # Add the IP address of the Endpoint you just created.
    channel = grpc.insecure_channel("ENDPOINT_IP:10002")
  )
)

Reemplaza lo siguiente:

  • ENDPOINT_IP: Es la dirección IP del extremo en la columna Direcciones IP en la página de Private Service Connect.

Recupera valores de atributos de un ID de entidad

Después de conectarte al extremo de Private Service Connect a través de gRPC, usa la siguiente muestra para recuperar los valores de los atributos de un ID de entidad específico mediante la entrega en línea optimizada.

Python

data_client.fetch_feature_values(
  request=feature_online_store_service_pb2.FetchFeatureValuesRequest(
  feature_view=f"projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME",
  data_key=feature_online_store_service_pb2.FeatureViewDataKey(ENTITY_ID),
  data_format=feature_online_store_service_pb2.FeatureViewDataFormat.PROTO_STRUCT,
  )
)

Reemplaza lo siguiente:

  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.

  • PROJECT_ID: ID del proyecto

  • FEATUREONLINESTORE_NAME: Es el nombre de la tienda en línea que contiene la vista de atributos.

  • FEATUREVIEW_NAME: Es el nombre de la vista de atributos desde la que deseas entregar los valores de los atributos.

  • ENTITY_ID: El valor de la columna de ID en el registro de atributos desde el que deseas entregar los valores de atributos más recientes.

  • FORMAT: Opcional: El formato en el que deseas recuperar los valores del atributo. Los formatos compatibles incluyen el par clave-valor JSON y los formatos proto Struct.

¿Qué sigue?