Diffuser des caractéristiques à partir d'une boutique en ligne

Vertex AI Feature Store vous permet de diffuser des valeurs de caractéristiques en ligne et en temps réel à partir d'une vue de caractéristiques au sein d'un magasin en ligne. Par exemple, vous pouvez diffuser des valeurs de caractéristiques à partir d'une vue de caractéristiques pour les prédictions en ligne. Une vue de caractéristiques doit être synchronisée au moins une fois pour que vous puissiez diffuser des caractéristiques en ligne à partir de cette vue de caractéristiques.

Si la vue de caractéristiques est définie en fonction de groupes de caractéristiques et de caractéristiques, Vertex AI Feature Store extrait les dernières valeurs des caractéristiques correspondant à un ID d'entité spécifique. Si la colonne "ID" contient plusieurs enregistrements avec la même valeur, Vertex AI Feature Store récupère les valeurs de caractéristiques non nulles les plus récentes, en se basant sur la colonne feature_timestamp.

Si la vue de caractéristiques est directement associée à une source de données BigQuery sans association avec des groupes de caractéristiques et des caractéristiques, Vertex AI Feature Store récupère toutes les valeurs des caractéristiques de la source de données. Dans ce cas, chaque ligne de la source de données doit contenir un ID unique.

Selon le type de diffusion en ligne configuré pour votre magasin en ligne, vous pouvez diffuser des valeurs de caractéristiques de l'une des manières suivantes :

Avant de commencer

Authentifiez-vous auprès de Vertex AI, sauf si vous l'avez déjà fait.

Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

Python

Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. Create local authentication credentials for your user account:

    gcloud auth application-default login

Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.

REST

Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

    Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

Extraire les valeurs de caractéristiques à l'aide de la diffusion en ligne Bigtable

Vous pouvez utiliser la diffusion en ligne Bigtable pour effectuer les opérations suivantes :

Récupérer les valeurs de caractéristiques pour une seule entité

Utilisez l'exemple suivant pour récupérer des valeurs de caractéristiques sur la base d'un ID d'entité spécifique avec la diffusion en ligne Bigtable.

REST

Pour récupérer toutes les dernières valeurs de caractéristiques pour un ID d'entité spécifique à partir d'une instance FeatureView, envoyez une requête POST en utilisant la méthode featureViews.fetchFeatureValues.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.
  • PROJECT_ID : ID de votre projet
  • FEATUREONLINESTORE_NAME : nom de la boutique en ligne contenant la vue de la caractéristiques.
  • FEATUREVIEW_NAME : nom de la vue de caractéristiques à partir de laquelle vous souhaitez diffuser les valeurs de caractéristiques.
  • ENTITY_ID : valeur de la colonne "ID" dans l'enregistrement de caractéristiques à partir duquel vous souhaitez diffuser les dernières valeurs de caractéristiques.
  • FORMAT (facultatif) : format dans lequel vous souhaitez récupérer les valeurs des caractéristiques. Les formats acceptés incluent les paires clé-valeur JSON et les formats proto Struct.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

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

Utilisez l'exemple suivant pour extraire des valeurs de caractéristiques sur la base d'un ID d'entité spécifique avec l'inférence en ligne 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,
  )
)

Remplacez les éléments suivants :

  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.

  • PROJECT_ID : ID de votre projet

  • FEATUREONLINESTORE_NAME : nom de la boutique en ligne contenant la vue de la caractéristiques.

  • FEATUREVIEW_NAME : nom de la vue de caractéristiques à partir de laquelle vous souhaitez diffuser les valeurs de caractéristiques.

  • ENTITY_ID : valeur de la colonne "ID" dans l'enregistrement de caractéristiques à partir duquel vous souhaitez diffuser les dernières valeurs de caractéristiques.

  • FORMAT (facultatif) : format dans lequel vous souhaitez récupérer les valeurs des caractéristiques. Les formats acceptés incluent les paires KEY_VALUE JSON et les formats proto PROTO_STRUCT.

Extraire les valeurs de caractéristiques pour un ensemble d'entités

Utilisez l'exemple suivant pour récupérer des valeurs de caractéristiques en spécifiant un ensemble d'ID à partir de plusieurs colonnes d'ID d'entité à l'aide de la diffusion en ligne Bigtable.

REST

Pour récupérer toutes les dernières valeurs de caractéristiques pour un ID d'entité spécifique à partir d'une instance FeatureView, envoyez une requête POST en utilisant la méthode featureViews.streamingFetchFeatureValues.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.
  • PROJECT_ID : ID de votre projet
  • FEATUREONLINESTORE_NAME : nom de la boutique en ligne contenant la vue de la caractéristiques.
  • FEATUREVIEW_NAME : nom de la vue de caractéristiques à partir de laquelle vous souhaitez diffuser les valeurs de caractéristiques.
  • ENTITY_ID_1, ENTITY_ID_2, ENTITY_ID_3 et ENTITY_ID_4 : ensemble de valeurs des colonnes d'ID dans les enregistrements de caractéristiques à partir desquels vous souhaitez diffuser les dernières valeurs de caractéristiques. Notez que le regroupement des ID d'entité en plusieurs listes imbriquées dans une requête peut contribuer à réduire la latence, car Vertex AI Feature Store effectue une opération de lecture distincte pour chaque liste imbriquée d'ID.

Méthode HTTP et URL :

POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues

Corps JSON de la requête :

[
  {
    data_keys: [{key: "ENTITY_ID_1"}, {key: "ENTITY_ID_2"}],
    feature_view: "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
  },
  {
    data_keys: [{key: "ENTITY_ID_3"}, {key: "ENTITY_ID_4"}],
    feature_view: "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"
  }
]

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:streamingFetchFeatureValues" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

[data {
  key_values {
    features {
      name: "movies"
      value {
        string_value: "movie_04"
      }
    }
    features {
      name: "feature_timestamp"
      value {
        int64_value: 1631694494000000
      }
    }
  }
  data_key {
    key: "eve"
  }
}
, data {
  key_values {
    features {
      name: "movies"
      value {
        string_value: "movie_03"
      }
    }
    features {
      name: "feature_timestamp"
      value {
        int64_value: 1631612115000000
      }
    }
  }
  data_key {
    key: "alice"
  }
}
data {
  key_values {
    features {
      name: "movies"
      value {
        string_value: "movie_02"
      }
    }
    features {
      name: "feature_timestamp"
      value {
        int64_value: 1631694494000000
      }
    }
  }
  data_key {
    key: "bob"
  }
}
]

Python

Utilisez l'exemple suivant pour récupérer des valeurs de caractéristiques à partir de plusieurs colonnes d'ID d'entité avec la diffusion en ligne Bigtable.

from google.cloud.aiplatform_v1beta1 import FeatureOnlineStoreServiceClient
from google.cloud.aiplatform_v1beta1.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"}
)

feature_view = "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME"

keys_list=[
    ["ENTITY_ID_1","ENTITY_ID_2"],
    ["ENTITY_ID_3","ENTITY_ID_4"]
  ]

requests = []

for keys in keys_list:
  requests.append(
    feature_online_store_service_pb2.StreamingFetchFeatureValuesRequest(
      feature_view=feature_view,
      data_keys=[
          feature_online_store_service_pb2.FeatureViewDataKey(key=key)
          for key in keys
      ]    
    )
  )

responses = data_client.streaming_fetch_feature_values(
    requests=iter(requests)
)
responses = [response for response in responses]

Remplacez les éléments suivants :

  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.

  • PROJECT_ID : ID de votre projet

  • FEATUREONLINESTORE_NAME : nom de la boutique en ligne contenant la vue de la caractéristiques.

  • FEATUREVIEW_NAME : nom de la vue de caractéristiques à partir de laquelle vous souhaitez diffuser les valeurs de caractéristiques.

  • ENTITY_ID_1, ENTITY_ID_2, ENTITY_ID_3 et ENTITY_ID_4 : ID d'entité à partir desquels vous souhaitez diffuser les dernières valeurs de caractéristiques. Notez que le regroupement des ID d'entité en plusieurs listes imbriquées dans une requête peut contribuer à réduire la latence, car Vertex AI Feature Store effectue une opération de lecture distincte pour chaque liste imbriquée d'ID.

Extraire les valeurs de caractéristiques à l'aide de la diffusion en ligne optimisée à partir d'un point de terminaison public

Si vous avez configuré votre instance de magasin en ligne pour diffuser des valeurs de caractéristiques à l'aide de la diffusion en ligne optimisée à partir d'un point de terminaison public, vous devez effectuer les étapes suivantes pour extraire les valeurs de caractéristiques à partir d'une vue de caractéristiques au sein du magasin en ligne :

  1. Récupérez le nom de domaine du point de terminaison public pour l'instance FeatureOnlineStore.

  2. Extrayez les valeurs de caractéristiques à partir d'un ID d'entité à l'aide du nom de domaine du point de terminaison public.

Récupérer le nom de domaine du point de terminaison public pour la boutique en ligne

Lorsque vous créez et configurez une instance de magasin en ligne pour une diffusion en ligne optimisée à partir d'un point de terminaison public, Vertex AI Feature Store génère le nom de domaine du point de terminaison public pour le magasin en ligne. Avant de pouvoir diffuser des valeurs de caractéristiques à partir d'une vue de caractéristiques du magasin en ligne, vous devez récupérer le nom de domaine du point de terminaison public à partir des détails du magasin en ligne.

Basez-vous sur l'exemple suivant pour récupérer les détails d'une instance de magasin en ligne.

REST

Pour récupérer les détails d'une ressource FeatureOnlineStore au sein de votre projet, envoyez une requête GET à l'aide de la méthode featureOnlineStores.get.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.
  • PROJECT_ID : ID de votre projet
  • FEATUREONLINESTORE_NAME : nom de l'instance de magasin en ligne.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

PowerShell

Exécutez la commande suivante :

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

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

Vous devriez recevoir une réponse JSON de ce type :

{
  "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": {}
}

Vous aurez besoin de la valeur PUBLIC_ENDPOINT_DOMAIN_NAME, fournie dans la réponse, pour extraire les valeurs de caractéristiques à l'étape suivante.

Extraire les valeurs de caractéristiques à partir d'un ID d'entité

Après avoir récupéré le nom de domaine du point de terminaison public pour l'instance de magasin en ligne, utilisez l'exemple suivant pour récupérer les valeurs de caractéristiques pour un ID d'entité spécifique à l'aide de la diffusion en ligne optimisée.

REST

Pour extraire toutes les dernières valeurs de caractéristiques pour un ID d'entité spécifique à partir d'une instance FeatureView, envoyez une requête POST en utilisant la méthode featureViews.fetchFeatureValues.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • PUBLIC_ENDPOINT_DOMAIN_NAME : nom de domaine du point de terminaison public pour l'instance de magasin en ligne, que vous avez récupéré à l'aide de la méthode featureOnlineStores.get.
  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.
  • PROJECT_ID : ID de votre projet
  • FEATUREONLINESTORE_NAME : nom de la boutique en ligne contenant la vue de la caractéristiques.
  • FEATUREVIEW_NAME : nom de la vue de caractéristiques à partir de laquelle vous souhaitez diffuser les valeurs de caractéristiques.
  • ENTITY_ID : valeur de la colonne "ID" dans l'enregistrement de caractéristiques à partir duquel vous souhaitez diffuser les dernières valeurs de caractéristiques.
  • FORMAT (facultatif) : format dans lequel vous souhaitez récupérer les valeurs des caractéristiques. Les formats acceptés incluent les paires clé-valeur JSON et les formats proto Struct.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:fetchFeatureValues"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Vous devriez recevoir une réponse JSON de ce type :

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

Utilisez l'exemple suivant pour récupérer des valeurs de caractéristiques sur la base d'un ID d'entité spécifique avec la diffusion en ligne optimisée.

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,
  )
)

Remplacez les éléments suivants :

  • PUBLIC_ENDPOINT_DOMAIN_NAME : nom de domaine du point de terminaison public pour l'instance de magasin en ligne, que vous avez récupéré à l'aide de la méthode featureOnlineStores.get.

  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.

  • PROJECT_ID : ID de votre projet

  • FEATUREONLINESTORE_NAME : nom de la boutique en ligne contenant la vue de la caractéristiques.

  • FEATUREVIEW_NAME : nom de la vue de caractéristiques à partir de laquelle vous souhaitez diffuser les valeurs de caractéristiques.

  • ENTITY_ID : valeur de la colonne "ID" dans l'enregistrement de caractéristiques à partir duquel vous souhaitez diffuser les dernières valeurs de caractéristiques.

  • FORMAT (facultatif) : format dans lequel vous souhaitez récupérer les valeurs des caractéristiques. Les formats acceptés incluent les paires KEY_VALUE JSON et les formats proto PROTO_STRUCT.

Extraire les valeurs de caractéristiques à l'aide de la diffusion en ligne optimisée à partir d'un point de terminaison Private Service Connect

Si vous avez configuré votre instance de magasin en ligne pour diffuser des valeurs de caractéristiques à l'aide de la diffusion en ligne optimisée à partir d'un point de terminaison Private Service Connect, vous devez effectuer les étapes suivantes pour extraire les valeurs de caractéristiques à partir d'une vue de caractéristiques au sein du magasin en ligne :

  1. Récupérez la configuration Private Service Connect pour l'instance FeatureOnlineStore.

  2. Ajoutez un point de terminaison pour Private Service Connect à votre configuration réseau.

  3. Connectez-vous au point de terminaison Private Service Connect via gRPC.

  4. Extrayez les valeurs de caractéristiques à partir d'un ID d'entité.

Récupérer la chaîne de rattachement de service pour le magasin en ligne

Lorsque vous créez et configurez une instance de magasin en ligne pour une diffusion en ligne optimisée à partir d'un point de terminaison Private Service Connect, Vertex AI Feature Store génère une chaîne de rattachement de service que vous pouvez utiliser pour configurer le point de terminaison Private Service Connect. Vous pouvez récupérer la chaîne de rattachement de service à partir des détails du magasin en ligne.

Basez-vous sur l'exemple suivant pour récupérer les détails d'une instance de magasin en ligne.

REST

Pour récupérer les détails d'une ressource FeatureOnlineStore au sein de votre projet, envoyez une requête GET à l'aide de la méthode featureOnlineStores.get.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.
  • PROJECT_ID : ID de votre projet
  • FEATUREONLINESTORE_NAME : nom de l'instance de magasin en ligne.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

PowerShell

Exécutez la commande suivante :

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

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

Vous devriez recevoir une réponse JSON de ce type :

{
  "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": {}
}

Vous aurez besoin de la valeur SERVICE_ATTACHMENT_STRING, fournie dans la réponse, pour extraire les valeurs de caractéristiques à l'étape suivante.

Ajouter un point de terminaison pour Private Service Connect

Procédez comme suit pour ajouter à votre configuration réseau un point de terminaison Private Service Connect pour la diffusion en ligne optimisée :

  1. Dans la console Google Cloud, sélectionnez le projet contenant l'instance de magasin en ligne.

  2. Créez un point de terminaison pour Private Service Connect en spécifiant SERVICE_ATTACHMENT_STRING comme étant le service cible. Pour en savoir plus sur la création d'un point de terminaison pour Private Service Connect, consultez la page Créer un point de terminaison.

Une fois le point de terminaison créé, il apparaît dans l'onglet Points de terminaison connectés sur la page Private Service Connect. L'adresse IP du point de terminaison apparaît dans la colonne Adresses IP.

Accéder à l'onglet "Points de terminaison connectés"

Vous devrez utiliser cette adresse IP pour vous connecter au point de terminaison Private Service Connect créé pour votre instance de magasin en ligne via gRPC à l'étape suivante.

Se connecter au point de terminaison Private Service Connect via gRPC

Utilisez l'exemple de code suivant pour vous connecter au point de terminaison Private Service Connect créé pour votre magasin en ligne via 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")
  )
)

Remplacez les éléments suivants :

  • ENDPOINT_IP : adresse IP du point de terminaison dans la colonne Adresses IP de la page Private Service Connect.

Extraire les valeurs de caractéristiques à partir d'un ID d'entité

Une fois que vous êtes connecté au point de terminaison Private Service Connect via gRPC, utilisez l'exemple suivant pour extraire des valeurs de caractéristiques pour un ID d'entité spécifique à l'aide de la diffusion en ligne optimisée.

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,
  )
)

Remplacez les éléments suivants :

  • LOCATION_ID : région où se trouve la boutique en ligne, par exemple us-central1.

  • PROJECT_ID : ID de votre projet

  • FEATUREONLINESTORE_NAME : nom de la boutique en ligne contenant la vue de la caractéristiques.

  • FEATUREVIEW_NAME : nom de la vue de caractéristiques à partir de laquelle vous souhaitez diffuser les valeurs de caractéristiques.

  • ENTITY_ID : valeur de la colonne "ID" dans l'enregistrement de caractéristiques à partir duquel vous souhaitez diffuser les dernières valeurs de caractéristiques.

  • FORMAT (facultatif) : format dans lequel vous souhaitez récupérer les valeurs des caractéristiques. Les formats acceptés incluent les paires clé-valeur JSON et les formats proto Struct. Notez que le format proto Struct n'est pas compatible avec le type de valeur de fonctionnalité "bytes". Si vous souhaitez récupérer des valeurs de caractéristiques au format octets, utilisez le format de réponse JSON.

Étapes suivantes