Pubblica valori delle caratteristiche

Vertex AI Feature Store ti consente di pubblicare online i valori delle caratteristiche dalla visualizzazione delle caratteristiche all'interno di un negozio online. Ad esempio, puoi pubblicare i valori delle caratteristiche dalla visualizzazione caratteristiche per le previsioni online. Una visualizzazione caratteristiche deve essere sincronizzata almeno una volta prima di poter pubblicare le caratteristiche online.

Se la visualizzazione delle caratteristiche è definita in base a gruppi di caratteristiche e caratteristiche, Vertex AI Feature Store recupera i valori più recenti delle caratteristiche corrispondenti a un ID entità specifico. Se sono presenti più record con lo stesso valore nella colonna ID, Vertex AI Feature Store recupera i valori delle caratteristiche non null più recenti, in base alla colonna feature_timestamp.

Se la visualizzazione caratteristiche è direttamente associata a un'origine dati BigQuery senza associare gruppi di caratteristiche e caratteristiche, Vertex AI Feature Store recupera tutti i valori delle caratteristiche dall'origine dati. In questo caso, ogni riga nell'origine dati deve contenere un ID univoco.

Puoi pubblicare i valori delle funzionalità solo da un ID per richiesta.

A seconda del tipo di pubblicazione online configurato per il tuo negozio online, puoi pubblicare i valori delle funzionalità in uno dei seguenti modi:

Recupera i valori delle funzionalità utilizzando la pubblicazione online Bigtable

Utilizza il seguente esempio per recuperare i valori delle funzionalità in base a uno specifico ID entità utilizzando la pubblicazione online Bigtable.

REST

Per recuperare tutti i valori più recenti delle funzionalità per un ID entità specifico da un'istanza FeatureView, invia una richiesta POST utilizzando il metodo featureViews.fetchFeatureValues.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la regione in cui si trova il negozio online, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome del negozio online che contiene la visualizzazione delle caratteristiche.
  • FEATUREVIEW_NAME: il nome della visualizzazione delle caratteristiche da cui vuoi pubblicare i valori delle caratteristiche.
  • ENTITY_ID: il valore della colonna ID nel record di caratteristiche da cui vuoi pubblicare i valori delle funzionalità più recenti.
  • FORMAT: facoltativo: il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono i formati coppia chiave-valore JSON e protocollo Struct.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

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

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

Dovresti ricevere una risposta JSON simile alla seguente:

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

.

Utilizza il seguente esempio per recuperare i valori delle funzionalità in base a uno specifico ID entità utilizzando la pubblicazione online 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,
  )
)

Sostituisci quanto segue:

  • LOCATION_ID: la regione in cui si trova il negozio online, ad esempio us-central1.

  • PROJECT_ID: l'ID del tuo progetto.

  • FEATUREONLINESTORE_NAME: il nome del negozio online che contiene la visualizzazione delle caratteristiche.

  • FEATUREVIEW_NAME: il nome della visualizzazione delle caratteristiche da cui vuoi pubblicare i valori delle caratteristiche.

  • ENTITY_ID: il valore della colonna ID nel record di caratteristiche da cui vuoi pubblicare i valori delle funzionalità più recenti.

  • FORMAT: facoltativo: il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono l'accoppiamento KEY_VALUE JSON e i formati proto PROTO_STRUCT.

Recupera i valori delle caratteristiche utilizzando la pubblicazione online ottimizzata da un endpoint pubblico

Se hai configurato l'istanza del negozio online per pubblicare i valori delle caratteristiche utilizzando la pubblicazione online ottimizzata da un endpoint pubblico, devi eseguire i seguenti passaggi per recuperare i valori delle caratteristiche da una visualizzazione delle caratteristiche all'interno del negozio online:

  1. Recupera il nome di dominio dell'endpoint pubblico per l'istanza FeatureOnlineStore.

  2. Recupera i valori delle funzionalità da un ID entità utilizzando il nome di dominio dell'endpoint pubblico.

Recupera il nome di dominio dell'endpoint pubblico per il negozio online

Quando crei e configuri un'istanza del negozio online per la pubblicazione online ottimizzata con un endpoint pubblico, Vertex AI Feature Store genera il nome di dominio dell'endpoint pubblico per il negozio online. Prima di poter iniziare a fornire valori delle caratteristiche da una visualizzazione delle caratteristiche nel negozio online, devi recuperare il nome di dominio dell'endpoint pubblico dai dettagli del negozio online.

Utilizza il seguente esempio per recuperare i dettagli di un'istanza di un negozio online.

REST

Per recuperare i dettagli di una risorsa FeatureOnlineStore nel tuo progetto, invia una richiesta GET utilizzando il metodo featureOnlineStores.get.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la regione in cui si trova il negozio online, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online.

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

arricciatura

Esegui questo 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

Esegui questo 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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Dovrai utilizzare PUBLIC_ENDPOINT_DOMAIN_NAME dalla risposta per recuperare i valori delle caratteristiche nel passaggio successivo.

Recupera i valori delle funzionalità da un ID entità

Dopo aver recuperato il nome di dominio dell'endpoint pubblico per l'istanza del negozio online, utilizza il seguente esempio per recuperare i valori delle funzionalità per uno specifico ID entità utilizzando la pubblicazione online ottimizzata.

REST

Per recuperare tutti i valori più recenti delle funzionalità per un ID entità specifico da un'istanza FeatureView, invia una richiesta POST utilizzando il metodo featureViews.fetchFeatureValues.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: nome di dominio dell'endpoint pubblico per l'istanza del negozio online che hai recuperato utilizzando il metodo featureOnlineStores.get.
  • LOCATION_ID: la regione in cui si trova il negozio online, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome del negozio online che contiene la visualizzazione delle caratteristiche.
  • FEATUREVIEW_NAME: il nome della visualizzazione delle caratteristiche da cui vuoi pubblicare i valori delle caratteristiche.
  • ENTITY_ID: il valore della colonna ID nel record di caratteristiche da cui vuoi pubblicare i valori delle funzionalità più recenti.
  • FORMAT: facoltativo: il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono i formati coppia chiave-valore JSON e protocollo Struct.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

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

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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Utilizza il seguente esempio per recuperare i valori delle funzionalità in base a uno specifico ID entità utilizzando la pubblicazione online ottimizzata.

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

Sostituisci quanto segue:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: nome di dominio dell'endpoint pubblico per l'istanza del negozio online che hai recuperato utilizzando il metodo featureOnlineStores.get.

  • LOCATION_ID: la regione in cui si trova il negozio online, ad esempio us-central1.

  • PROJECT_ID: l'ID del tuo progetto.

  • FEATUREONLINESTORE_NAME: il nome del negozio online che contiene la visualizzazione delle caratteristiche.

  • FEATUREVIEW_NAME: il nome della visualizzazione delle caratteristiche da cui vuoi pubblicare i valori delle caratteristiche.

  • ENTITY_ID: il valore della colonna ID nel record di caratteristiche da cui vuoi pubblicare i valori delle funzionalità più recenti.

  • FORMAT: facoltativo: il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono l'accoppiamento KEY_VALUE JSON e i formati proto PROTO_STRUCT.

Recupera i valori delle funzionalità utilizzando la pubblicazione online ottimizzata da un endpoint Private Service Connect

Se hai configurato l'istanza del negozio online per pubblicare i valori delle funzionalità utilizzando la pubblicazione online ottimizzata da un endpoint Private Service Connect, devi eseguire i seguenti passaggi per recuperare i valori delle funzionalità da una visualizzazione delle caratteristiche all'interno del negozio online:

  1. Recupera la configurazione di Private Service Connect per l'istanza FeatureOnlineStore.

  2. Aggiungi un endpoint per Private Service Connect alla configurazione di rete.

  3. Connettiti all'endpoint Private Service Connect tramite gRPC.

  4. Recupera i valori delle funzionalità da un ID entità.

Recupera la stringa del collegamento al servizio per il negozio online

Quando crei e configuri un'istanza del negozio online per la pubblicazione online ottimizzata con un endpoint Private Service Connect, Vertex AI Feature Store genera una stringa di collegamento al servizio che puoi utilizzare per configurare l'endpoint Private Service Connect. Puoi recuperare la stringa del collegamento al servizio dai dettagli del negozio online.

Utilizza il seguente esempio per recuperare i dettagli di un'istanza di un negozio online.

REST

Per recuperare i dettagli di una risorsa FeatureOnlineStore nel tuo progetto, invia una richiesta GET utilizzando il metodo featureOnlineStores.get.

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la regione in cui si trova il negozio online, ad esempio us-central1.
  • PROJECT_ID: l'ID del tuo progetto.
  • FEATUREONLINESTORE_NAME: il nome dell'istanza del negozio online.

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

arricciatura

Esegui questo 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

Esegui questo 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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Dovrai recuperare il valore SERVICE_ATTACHMENT_STRING dalla risposta per recuperare i valori delle caratteristiche nel passaggio successivo.

Aggiungi un endpoint per Private Service Connect

Per aggiungere alla configurazione di rete un endpoint Private Service Connect per la pubblicazione online ottimizzata, segui questi passaggi:

  1. Nella console Google Cloud, seleziona il progetto contenente l'istanza dell'archivio online.

  2. Crea un endpoint per Private Service Connect specificando SERVICE_ATTACHMENT_STRING come servizio di destinazione. Per informazioni su come creare un endpoint per Private Service Connect, consulta Creazione di un endpoint.

Dopo aver creato l'endpoint, questo viene visualizzato nella scheda Endpoint connessi della pagina Private Service Connect. L'indirizzo IP dell'endpoint viene visualizzato nella colonna Indirizzi IP.

Vai alla scheda Endpoint connessi

Dovrai utilizzare questo indirizzo IP per connetterti all'endpoint dell'istanza del negozio online all'endpoint Private Service Connect tramite gRPC nel passaggio seguente.

Connettiti all'endpoint Private Service Connect su gRPC

Utilizza il seguente esempio di codice per connetterti all'endpoint Private Service Connect creato per il tuo archivio online tramite 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")
  )
)

Sostituisci quanto segue:

  • ENDPOINT_IP: l'indirizzo IP dell'endpoint nella colonna Indirizzi IP della pagina Private Service Connect.

Recupera i valori delle funzionalità da un ID entità

Dopo aver effettuato la connessione all'endpoint Private Service Connect tramite gRPC, utilizza il seguente esempio per recuperare i valori delle funzionalità per un ID entità specifico utilizzando la pubblicazione online ottimizzata.

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

Sostituisci quanto segue:

  • LOCATION_ID: la regione in cui si trova il negozio online, ad esempio us-central1.

  • PROJECT_ID: l'ID del tuo progetto.

  • FEATUREONLINESTORE_NAME: il nome del negozio online che contiene la visualizzazione delle caratteristiche.

  • FEATUREVIEW_NAME: il nome della visualizzazione delle caratteristiche da cui vuoi pubblicare i valori delle caratteristiche.

  • ENTITY_ID: il valore della colonna ID nel record di caratteristiche da cui vuoi pubblicare i valori delle funzionalità più recenti.

  • FORMAT: facoltativo: il formato in cui vuoi recuperare i valori delle funzionalità. I formati supportati includono i formati coppia chiave-valore JSON e protocollo Struct.

Passaggi successivi