Exibir valores de atributos

A Feature Store da Vertex AI permite disponibilizar valores de atributos on-line de uma visualização de recursos em um armazenamento on-line. Por exemplo, é possível exibir valores de recursos de uma visualização de recursos para previsões on-line. A visualização de recursos precisa ser sincronizada pelo menos uma vez para que você possa disponibilizar on-line os recursos desse recurso.

Se a visualização de recursos for definida com base em atributos e grupos de recursos, a Feature Store da Vertex AI vai buscar os valores mais recentes dos atributos correspondentes a um ID de entidade específico. Se houver vários registros com o mesmo valor na coluna ID, o Vertex AI Feature Store vai buscar os valores de atributos não nulos mais recentes, com base na coluna feature_timestamp.

Se a visualização do recurso estiver diretamente associada a uma fonte de dados do BigQuery sem associar grupos e atributos, o Vertex AI Feature Store vai buscar todos os valores de atributos da fonte de dados. Nesse caso, cada linha na fonte de dados precisa conter um ID exclusivo.

Você só pode exibir valores de recursos de um ID por solicitação.

Dependendo do tipo de veiculação on-line configurada para sua loja on-line, é possível exibir valores de atributos de uma das seguintes maneiras:

Buscar valores de atributos usando a veiculação on-line do Bigtable

Use o exemplo a seguir para buscar valores de recursos com base em um ID de entidade específico usando a veiculação on-line do Bigtable.

REST

Para buscar todos os valores mais recentes de recursos de um ID de entidade específico de uma instância FeatureView, envie uma solicitação POST usando featureViews. .fetchFeatureValues.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: região em que a loja on-line está localizada, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da loja on-line que contém a visualização do recurso.
  • FEATUREVIEW_NAME: o nome da visualização de recursos da qual você quer exibir valores de atributos.
  • ENTITY_ID: o valor da coluna "ID" no registro de recurso do qual você quer exibir os valores de atributos mais recentes.
  • FORMAT: opcional. O formato em que você que buscar os valores dos recursos. Os formatos compatíveis incluem par de chave-valor JSON e formatos proto Struct.

Método 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 da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:

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

Use o exemplo a seguir para buscar valores de recursos com base em um ID de entidade específico usando a veiculação on-line do 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,
  )
)

Substitua:

  • LOCATION_ID: região em que a loja on-line está localizada, como us-central1.

  • PROJECT_ID: o ID do projeto.

  • FEATUREONLINESTORE_NAME: o nome da loja on-line que contém a visualização do recurso.

  • FEATUREVIEW_NAME: o nome da visualização de recursos da qual você quer exibir valores de atributos.

  • ENTITY_ID: o valor da coluna "ID" no registro de recurso do qual você quer exibir os valores de atributos mais recentes.

  • FORMAT: opcional. O formato em que você que buscar os valores dos recursos. Os formatos com suporte incluem os formatos de par JSON KEY_VALUE e PROTO_STRUCT proto.

Buscar valores de atributos usando a veiculação on-line otimizada em um endpoint público

Se você configurou a instância da loja on-line para mostrar valores de atributos usando a exibição on-line otimizada de um endpoint público, execute as etapas a seguir para buscar os valores de uma visualização de atributos na interface on-line armazenar:

  1. Recupere o nome de domínio do endpoint público da instância FeatureOnlineStore.

  2. Buscar valores de atributos de um ID de entidade usando o nome de domínio do endpoint público.

Recuperar o nome de domínio do endpoint público da loja on-line

Quando você cria e configura uma instância de loja on-line para exibição on-line otimizada com um endpoint público, o Feature Store da Vertex AI gera o nome de domínio do endpoint público para a loja on-line. Antes de começar a exibir valores de recursos de uma visualização de recursos na loja on-line, é necessário recuperar o nome de domínio do endpoint público dos detalhes da loja on-line.

Use o exemplo a seguir para recuperar os detalhes de uma instância de loja on-line.

REST

Para recuperar os detalhes de umFeatureOnlineStore recurso em seu projeto, envie umGET usando a featureOnlineStores.get.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: região em que a loja on-line está localizada, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja on-line.

Método HTTP e URL:

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

Para enviar a solicitação, escolha uma destas opções:

curl

execute o seguinte 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

execute o seguinte 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

Você receberá uma resposta JSON semelhante a esta:

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

Você vai precisar do PUBLIC_ENDPOINT_DOMAIN_NAME da resposta para buscar valores de recursos na etapa a seguir.

Buscar valores de atributos de um ID de entidade

Depois de recuperar o nome de domínio do endpoint público da instância de armazenamento on-line, use o exemplo a seguir para buscar valores de atributo de um ID de entidade específico usando a exibição on-line otimizada.

REST

Para buscar todos os valores mais recentes de recursos de um ID de entidade específico de uma instância FeatureView, envie uma solicitação POST usando o método featureViews.fetchFeatureValues.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: o nome de domínio do endpoint público da instância de loja on-line recuperada usando o método featureOnlineStores.get.
  • LOCATION_ID: região em que a loja on-line está localizada, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da loja on-line que contém a visualização do recurso.
  • FEATUREVIEW_NAME: o nome da visualização de recursos da qual você quer exibir valores de atributos.
  • ENTITY_ID: o valor da coluna "ID" no registro de recurso do qual você quer exibir os valores de atributos mais recentes.
  • FORMAT: opcional. O formato em que você que buscar os valores dos recursos. Os formatos compatíveis incluem par de chave-valor JSON e formatos proto Struct.

Método 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 da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:

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

Use o exemplo a seguir para buscar valores de recursos com base em um ID de entidade específico usando a disponibilização on-line otimizada.

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

Substitua:

  • PUBLIC_ENDPOINT_DOMAIN_NAME: o nome de domínio do endpoint público da instância de loja on-line recuperada usando o método featureOnlineStores.get.

  • LOCATION_ID: região em que a loja on-line está localizada, como us-central1.

  • PROJECT_ID: o ID do projeto.

  • FEATUREONLINESTORE_NAME: o nome da loja on-line que contém a visualização do recurso.

  • FEATUREVIEW_NAME: o nome da visualização de recursos da qual você quer exibir valores de atributos.

  • ENTITY_ID: o valor da coluna "ID" no registro de recurso do qual você quer exibir os valores de atributos mais recentes.

  • FORMAT: opcional. O formato em que você que buscar os valores dos recursos. Os formatos com suporte incluem os formatos de par JSON KEY_VALUE e PROTO_STRUCT proto.

Buscar valores de atributos usando a veiculação on-line otimizada de um endpoint do Private Service Connect

Se você configurou a instância da loja on-line para exibir valores de recursos usando a exibição on-line otimizada de um endpoint do Private Service Connect, execute as etapas a seguir para buscar os valores de recursos de uma visualização de recursos no{101 }loja on-line:

  1. Recupere a configuração do Private Service Connect para a instância FeatureOnlineStore.

  2. Adicione um endpoint do Private Service Connect à configuração de sua rede.

  3. Conecte-se ao endpoint do Private Service Connect por gRPC.

  4. Buscar valores de recursos de um ID de entidade.

Recupere a string de anexo de serviço da loja on-line

Quando você cria e configura uma instância de loja on-line para exibição on-line otimizada com um endpoint do Private Service Connect, a Vertex AI Feature Store gera uma string de anexo de serviço que pode ser usada para configurar o endpoint do Private Service Connect. Você pode recuperar a string de anexo de serviço nos detalhes da loja on-line.

Use o exemplo a seguir para recuperar os detalhes de uma instância de loja on-line.

REST

Para recuperar os detalhes de umFeatureOnlineStore recurso em seu projeto, envie umGET usando a featureOnlineStores.get.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION_ID: região em que a loja on-line está localizada, como us-central1.
  • PROJECT_ID: o ID do projeto.
  • FEATUREONLINESTORE_NAME: o nome da instância da loja on-line.

Método HTTP e URL:

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

Para enviar a solicitação, escolha uma destas opções:

curl

execute o seguinte 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

execute o seguinte 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

Você receberá uma resposta JSON semelhante a esta:

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

Você vai precisar do SERVICE_ATTACHMENT_STRING da resposta para buscar valores de recursos na etapa a seguir.

Adicionar um endpoint ao Private Service Connect

Para adicionar um endpoint do Private Service Connect para exibição on-line otimizada à configuração de rede, siga estas etapas:

  1. No console do Google Cloud, selecione o projeto que contém a instância de loja on-line.

  2. Crie um endpoint para o Private Service Connect. Para isso, especifique SERVICE_ATTACHMENT_STRING como o serviço de destino. Para informações sobre como criar um endpoint para o Private Service Connect, consulte Criar um endpoint.

Depois de criar o endpoint, ele aparece na guia Endpoints conectados na página Private Service Connect. O endereço IP do endpoint aparece na coluna Endereços IP.

Acessar a guia "Endpoints conectados"

Você precisará usar esse endereço IP para se conectar ao endpoint da sua instância de loja on-line ao endpoint do Private Service Connect pelo gRPC na próxima etapa.

Conecte-se ao endpoint do Private Service Connect pelo gRPC

Use o exemplo de código a seguir para se conectar ao endpoint do Private Service Connect criado para sua loja on-line por 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")
  )
)

Substitua:

  • ENDPOINT_IP: o endereço IP do endpoint na coluna Endereços IP na página Private Service Connect.

Buscar valores de atributos de um ID de entidade

Depois de se conectar ao endpoint do Private Service Connect pelo gRPC, use o exemplo a seguir para buscar valores de recursos para um ID de entidade específico usando a veiculação on-line otimizada.

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

Substitua:

  • LOCATION_ID: região em que a loja on-line está localizada, como us-central1.

  • PROJECT_ID: o ID do projeto.

  • FEATUREONLINESTORE_NAME: o nome da loja on-line que contém a visualização do recurso.

  • FEATUREVIEW_NAME: o nome da visualização de recursos da qual você quer exibir valores de atributos.

  • ENTITY_ID: o valor da coluna "ID" no registro de recurso do qual você quer exibir os valores de atributos mais recentes.

  • FORMAT: opcional. O formato em que você que buscar os valores dos recursos. Os formatos compatíveis incluem par de chave-valor JSON e formatos proto Struct.

.

A seguir