O Vertex AI pode registar exemplos de pedidos e respostas para o Gemini e modelos de parceiros suportados. Os registos são guardados numa tabela do BigQuery para visualização e análise. Esta página descreve como configurar registos de pedido-resposta para modelos de base e modelos com ajuste fino.
Métodos da API suportados para registo
Os registos de pedido-resposta são suportados para todos os modelos Gemini que usam generateContent
ou streamGenerateContent
.
Os seguintes modelos de parceiros que usam
rawPredict
ou
streamrawPredict
também são suportados:
- Anthropic Claude
Registos de pedido-resposta para modelos de base
Pode configurar registos de pedidos e respostas para modelos de base usando a API REST ou o SDK Python. As configurações de registo podem demorar alguns minutos a entrar em vigor.
Ative o registo de pedidos-respostas
Selecione um dos seguintes separadores para ver instruções sobre como ativar os registos de pedido-resposta para um modelo de base fundamental.
Para os modelos da Anthropic, apenas o REST é suportado para a configuração do registo. Ative a configuração de registo através da API REST definindo o publicador como anthropic
e definindo o nome do modelo como um dos modelos Claude suportados.
SDK Python
Este método pode ser usado para criar ou atualizar um PublisherModelConfig
.
publisher_model = GenerativeModel('gemini-2.0-pro-001')
# Set logging configuration
publisher_model.set_request_response_logging_config(
enabled=True,
sampling_rate=1.0,
bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
enable_otel_logging=True
)
API REST
Crie ou atualize um PublisherModelConfig
através do setPublisherModelConfig
:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- ENDPOINT_PREFIX: a região do recurso do modelo, seguida de
-
. Por exemplo,us-central1-
. Se usar o ponto final global, deixe em branco. O registo de pedidos e respostas é suportado para todas as regiões suportadas pelo modelo. - PROJECT_ID: o ID do seu projeto.
- LOCATION: a região do recurso do modelo.
Se usar o ponto final global, introduza
global
. - PUBLISHER: o nome do publicador. Por exemplo,
google
. - MODEL: o nome do modelo base. Por exemplo,
gemini-2.0-flash-001
. - SAMPLING_RATE: para reduzir os custos de armazenamento, pode definir um número entre 0 e 1 para definir a fração de pedidos a registar. Por exemplo, um valor de 1 regista todos os pedidos e um valor de 0, 1 regista 10% dos pedidos.
- BQ_URI: a tabela do BigQuery a usar para o registo. Se especificar apenas um nome de projeto, é criado um novo conjunto de dados com o nome
logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID
, em queENDPOINT_DISPLAY_NAME
segue as regras de nomenclatura do BigQuery. Se não especificar um nome de tabela, é criada uma nova tabela com o nomerequest_response_logging
.
Método HTTP e URL:
POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
Corpo JSON do pedido:
{ "publisherModelConfig": { "loggingConfig": { "enabled": true, "samplingRate": SAMPLING_RATE, "bigqueryDestination": { "outputUri": "BQ_URI" }, "enableOtelLogging": true } } }
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://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"
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://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Obtenha a configuração de registo
Obtenha a configuração do registo de pedidos e respostas para o modelo base através da API REST.
API REST
Obtenha a configuração do registo de pedidos e respostas através de
fetchPublisherModelConfig
:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto.
- LOCATION: a localização do recurso do modelo.
- PUBLISHER: o nome do publicador. Por exemplo,
google
. - MODEL: o nome do modelo base. Por exemplo,
gemini-2.0-flash-001
.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Desative o registo
Desative o registo de pedidos-respostas para o modelo base através da API REST ou do SDK Python.
SDK Python
publisher_model.set_request_response_logging_config(
enabled=False,
sampling_rate=0,
bigquery_destination=''
)
API REST
Use setPublisherModelConfig
para desativar o registo:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto.
- LOCATION: a localização do recurso do modelo.
- PUBLISHER: o nome do publicador. Por exemplo,
google
. - MODEL: o nome do modelo base. Por exemplo,
gemini-2.0-flash-001
.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
Corpo JSON do pedido:
{ "publisherModelConfig": { "loggingConfig": { "enabled": false } } }
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-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"
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-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Registos de pedido-resposta para modelos com ajuste fino
Pode configurar registos de pedido-resposta para modelos otimizados com precisão através da API REST ou do SDK Python.
Ative os registos de pedido-resposta
Selecione um dos seguintes separadores para ver instruções sobre como ativar os registos de pedido-resposta para um modelo com ajuste fino.
SDK Python
Este método pode ser usado para atualizar a configuração do registo de pedidos e respostas para um ponto final.
tuned_model = GenerativeModel("projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")
# Set logging configuration
tuned_model.set_request_response_logging_config(
enabled=True,
sampling_rate=1.0,
bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
enable_otel_logging=True
)
API REST
Só pode ativar o registo de pedidos/respostas quando cria um ponto final através de
projects.locations.endpoints.create
ou aplica um patch a um ponto final existente através de
projects.locations.endpoints.patch
.
Os pedidos e as respostas são registados ao nível do ponto final, pelo que os pedidos enviados para quaisquer modelos implementados no mesmo ponto final são registados.
Quando criar ou aplicar uma correção a um ponto final, preencha o campo predictRequestResponseLoggingConfig
do recurso Endpoint com as seguintes entradas:
enabled
: definido comoTrue
para ativar o registo de pedidos/respostas.samplingRate
: para reduzir os custos de armazenamento, pode definir um número entre 0 e 1 para definir a fração de pedidos a registar. Por exemplo, um valor de 1 regista todos os pedidos e um valor de 0, 1 regista 10% dos pedidos.BigQueryDestination
: a tabela do BigQuery a usar para o registo. Se especificar apenas um nome do projeto, é criado um novo conjunto de dados com o nomelogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
, em queENDPOINT_DISPLAY_NAME
segue as regras de nomenclatura do BigQuery. Se não especificar um nome da tabela, é criada uma nova tabela com o nomerequest_response_logging
.enableOtelLogging
: definido comotrue
para ativar o registo de OpenTelemetry (OTEL) além do registo de pedido-resposta predefinido.
Para ver o esquema da tabela do BigQuery, consulte o artigo Esquema da tabela de registo.
Segue-se um exemplo de configuração:
{ "predictRequestResponseLoggingConfig": { "enabled": true, "samplingRate": 0.5, "bigqueryDestination": { "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" }, "enableOtelLogging": true } }
Obtenha a configuração de registo
Obtenha a configuração do registo de pedidos-respostas para o modelo otimizado através da API REST.
API REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu projeto.
- LOCATION: a localização do recurso do ponto final.
- MODEL: o nome do modelo base. Por exemplo,
gemini-2.0-flash-001
. - ENDPOINT_ID: o ID do ponto final.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
Desative a configuração de registo
Desative a configuração de registo de pedidos e respostas para o ponto final.
SDK Python
tuned_model = GenerativeModel("projects/PROJECT_ID/locations/REGION/endpoints/ENDPOINT_ID")
# Set logging configuration
tuned_model.set_request_response_logging_config(
enabled=False,
sampling_rate=1.0,
bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME",
enable_otel_logging=False
)
API REST
{ "predictRequestResponseLoggingConfig": { "enabled": false } }
Esquema da tabela de registo
No BigQuery, os registos são gravados com o seguinte esquema:
Nome do campo | Tipo | Notas |
---|---|---|
ponto final | STRING | Nome do recurso do ponto final no qual o modelo otimizado está implementado. |
deployed_model_id | STRING | ID do modelo implementado para um modelo otimizado implementado num ponto final. |
logging_time | TIMESTAMP | A hora em que o registo é feito. Este é aproximadamente o tempo que a resposta demora a ser devolvida. |
request_id | NUMERIC | O ID do pedido de número inteiro gerado automaticamente com base no pedido da API. |
request_payload | STRING | Incluído para o registo de modelos de parceiros e a retrocompatibilidade com o registo de pedidos-respostas do ponto final da Vertex AI. |
response_payload | STRING | Incluído para o registo de modelos de parceiros e a retrocompatibilidade com o registo de pedidos-respostas do ponto final da Vertex AI. |
modelo | STRING | Nome do recurso do modelo. |
model_version | STRING | A versão do modelo. Esta é frequentemente a predefinição para os modelos Gemini. |
api_method | STRING | generateContent, streamGenerateContent, rawPredict, streamRawPredict |
full_request | JSON | O GenerateContentRequest completo. |
full_response | JSON | O GenerateContentResponse completo. |
metadados | JSON | Quaisquer metadados da chamada; contém a latência do pedido. |
otel_log | JSON | Registos no formato de esquema OpenTelemetry. Só está disponível se otel_logging estiver ativado na configuração de registo. |
Tenha em atenção que os pares de pedido-resposta superiores ao limite de linhas de 10 MB da API Write do BigQuery não são registados.
O que se segue?
- Estimativa de preços para o registo de previsões online.
- Implemente um modelo usando a Google Cloud consola ou usando a API Vertex AI.
- Saiba como criar uma tabela do BigQuery.