A publicação online permite-lhe publicar valores de funcionalidades para pequenos lotes de entidades com baixa latência. Para cada pedido, só pode publicar valores de caraterísticas de um único tipo de entidade. O Vertex AI Feature Store (antigo) devolve apenas o valor não nulo mais recente de cada funcionalidade.
Normalmente, usa a publicação online para publicar valores de funcionalidades em modelos implementados para inferências online. Por exemplo, pode ter uma empresa de partilha de bicicletas e querer prever durante quanto tempo um determinado utilizador vai alugar uma bicicleta. Pode incluir entradas em tempo real do utilizador e dados da featurestore para realizar uma inferência online. Desta forma, pode determinar a atribuição de recursos em tempo real.
Valores nulos
Para resultados de publicação online, se o valor mais recente de uma funcionalidade for nulo, o Vertex AI Feature Store (antigo) devolve o valor mais recente não nulo. Se não existir um valor anterior, o Vertex AI Feature Store (antigo) devolve nulo.
Antes de começar
Verifique se o Feature Store para o qual está a fazer chamadas tem uma loja online (o número de nós tem de ser superior a 0
). Caso contrário, os pedidos de publicação online devolvem um erro. Para mais informações, consulte o artigo Faça a gestão das featurestores.
Publicar valores a partir de uma única entidade
Apresentar valores de caraterísticas de uma única entidade para um tipo de entidade específico.
REST
Para obter valores de funcionalidades de uma entidade, envie um pedido POST através do método featurestores.entityTypes.readFeatureValues.
O exemplo seguinte obtém os valores mais recentes de duas funcionalidades diferentes para uma entidade específica. Tenha em atenção que, para o campo ids
, pode especificar ["*"]
em vez dos IDs das funcionalidades para selecionar todas as funcionalidades da entidade.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: região onde o Feature Store é criado. Por exemplo,
us-central1
. - PROJECT_ID: o seu ID do projeto.
- FEATURESTORE_ID: ID da Feature Store.
- ENTITY_TYPE_ID: ID do tipo de entidade.
- ENTITY_ID: ID da entidade para obter os valores das funcionalidades.
- FEATURE_ID: ID da funcionalidade para obter valores.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:readFeatureValues
Corpo JSON do pedido:
{ "entityId": "ENTITY_ID", "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID_1", "FEATURE_ID_2"] } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Deve receber uma resposta JSON semelhante à seguinte:
{ "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 como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Node.js Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Apresente valores de várias entidades
Apresentar valores de funcionalidades de uma ou mais entidades para um tipo de entidade específico.
Para um melhor desempenho, use o método streamingReadFeatureValues
em vez de enviar pedidos paralelos para o método readFeatureValues
.
REST
Para obter valores de funcionalidades de várias entidades, envie um pedido POST através do método featurestores.entityTypes.streamingReadFeatureValues.
O exemplo seguinte obtém os valores mais recentes de duas funcionalidades diferentes para duas entidades diferentes. Tenha em atenção que, para o campo ids
, pode especificar ["*"]
em vez dos IDs das funcionalidades para selecionar todas as funcionalidades da entidade.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION_ID: região onde o Feature Store é criado. Por exemplo,
us-central1
. - PROJECT_ID: .
- FEATURESTORE_ID: ID da Feature Store.
- ENTITY_TYPE_ID: ID do tipo de entidade.
- ENTITY_ID: ID da entidade para obter os valores das funcionalidades.
- FEATURE_ID: ID da funcionalidade para obter valores.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:streamingReadFeatureValues
Corpo JSON do pedido:
{ "entityIds": ["ENTITY_ID_1", "ENTITY_ID_2"], "featureSelector": { "idMatcher": { "ids": ["FEATURE_ID_1", "FEATURE_ID_2"] } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Deve receber uma resposta JSON semelhante à seguinte:
[{ "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 adicionais
Pode instalar e usar as seguintes bibliotecas cliente do Vertex AI para chamar a API Vertex AI. As bibliotecas cliente do Google Cloud oferecem uma experiência de programador otimizada através da utilização das convenções e dos estilos naturais de cada idioma suportado.
O que se segue?
- Saiba como carregar em lote valores de atributos.
- Saiba como publicar funcionalidades através da publicação em lote.
- Veja as cotas de publicação online do Vertex AI Feature Store (antigo).
- Resolva problemas comuns do Vertex AI Feature Store (antigo).