A Vertex AI pode registrar amostras de solicitações e respostas para o Gemini e modelos de parceiros com suporte. Os registros são salvos em uma tabela do BigQuery para visualização e análise. Esta página descreve como configurar registros de solicitação-resposta para modelos de base e modelos ajustados.
Métodos de API com suporte para geração de registros
Os registros de solicitação-resposta são compatíveis com todos os modelos do Gemini que
usam generateContent
ou
streamGenerateContent
.
Os seguintes modelos de parceiros que usam
rawPredict
ou
streamrawPredict
também são compatíveis:
- Claude antrópico
Registros de solicitação-resposta para modelos de base
É possível configurar registros de solicitação-resposta para modelos de base usando a API REST ou o SDK do Python. As configurações de registro podem levar alguns minutos para entrar em vigor.
Ativar a geração de registros de solicitação/resposta
Selecione uma das guias a seguir para conferir instruções sobre como ativar registros de solicitação-resposta para um modelo de base.
Para modelos Anthropic, apenas o REST é compatível com a configuração de geração de registros. Ative
a configuração de registro pela API REST definindo o editor como anthropic
e o nome do modelo como um dos
modelos Claude compatíveis.
SDK do Python
Esse 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
usando setPublisherModelConfig
:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- ENDPOINT_PREFIX: a região do recurso do modelo seguida por
-
. Por exemplo,us-central1-
. Se você estiver usando o endpoint global, deixe em branco. O registro de solicitação-resposta é aceito em todas as regiões com suporte ao modelo. - PROJECT_ID: o ID do projeto.
- LOCATION: a região do recurso do modelo.
Se você estiver usando o endpoint global, insira
global
. - PUBLISHER: o nome do editor. Por exemplo,
google
. - MODEL: o nome do modelo de base. Por exemplo,
gemini-2.0-flash-001
. - SAMPLING_RATE: para reduzir os custos de armazenamento, é possível definir um número entre 0 ou 1 para definir a fração de solicitações a serem registradas. Por exemplo, um valor de 1 registra todas as solicitações, e um valor de 0,1 registra 10% das solicitações.
- BQ_URI: a tabela do BigQuery a ser usada para geração de registros. Se você especificar apenas um nome de projeto, um novo conjunto de dados será criado com o nome
logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID
, em queENDPOINT_DISPLAY_NAME
segue as regras de nomenclatura do BigQuery. Se você não especificar um nome de tabela, será 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 da solicitação:
{ "publisherModelConfig": { "loggingConfig": { "enabled": true, "samplingRate": SAMPLING_RATE, "bigqueryDestination": { "outputUri": "BQ_URI" }, "enableOtelLogging": true } } }
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 \
"https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"
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 "https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Acessar a configuração de geração de registros
Receba a configuração de geração de registros de solicitação-resposta para o modelo de base usando a API REST.
API REST
Receba a configuração de geração de registros de solicitação/resposta usando
fetchPublisherModelConfig
:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: o local do recurso do modelo.
- PUBLISHER: o nome do editor. Por exemplo,
google
. - MODEL: o nome do modelo de 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 a solicitação, 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
Você receberá uma resposta JSON semelhante a esta:
Desative a geração de registros
Desative o registro de solicitação-resposta para o modelo de base usando a API REST ou o SDK do Python.
SDK do Python
publisher_model.set_request_response_logging_config(
enabled=False,
sampling_rate=0,
bigquery_destination=''
)
API REST
Use setPublisherModelConfig
para desativar a geração de registros:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: o local do recurso do modelo.
- PUBLISHER: o nome do editor. Por exemplo,
google
. - MODEL: o nome do modelo de 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 da solicitação:
{ "publisherModelConfig": { "loggingConfig": { "enabled": false } } }
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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"
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 "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Registros de solicitação-resposta para modelos ajustados
É possível configurar logs de solicitação-resposta para modelos ajustados usando a API REST ou o SDK do Python.
Ativar registros de solicitação/resposta
Selecione uma das guias a seguir para conferir instruções sobre como ativar registros de solicitação-resposta para um modelo ajustado.
SDK do Python
Esse método pode ser usado para atualizar a configuração de geração de registros de solicitação-resposta de um endpoint.
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ó é possível ativar a geração de registros de solicitação/resposta ao criar um endpoint usando
projects.locations.endpoints.create
ou corrigir um endpoint existente usando
projects.locations.endpoints.patch
.
As solicitações e respostas são registradas no nível do endpoint, então as solicitações enviadas para todos os modelos implantados no mesmo endpoint são registradas.
Ao
criar ou corrigir um endpoint,
preencha o campo predictRequestResponseLoggingConfig
do
recurso de endpoint
com as seguintes entradas:
enabled
: definido comoTrue
para ativar a geração de registros de solicitação-resposta.samplingRate
: para reduzir os custos de armazenamento, defina um número entre 0 e 1 para definir a fração de solicitações a serem registradas. Por exemplo, um valor de 1 registra todas as solicitações, e um valor de 0,1 registra 10% delas.BigQueryDestination
: a tabela do BigQuery a ser usada para geração de registros. Se você especificar apenas um nome de projeto, um novo conjunto de dados será criado com o nomelogging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
, em queENDPOINT_DISPLAY_NAME
segue as regras de nomenclatura do BigQuery. Se você não especificar um nome de tabela, será criada uma nova tabela com o nomerequest_response_logging
.enableOtelLogging
: definido comotrue
para ativar a geração de registros do OpenTelemetry (OTEL) em adição à geração de registros de solicitação-resposta padrão.
Para conferir o esquema da tabela do BigQuery, consulte Esquema da tabela de registro.
Veja a seguir um exemplo de configuração:
{ "predictRequestResponseLoggingConfig": { "enabled": true, "samplingRate": 0.5, "bigqueryDestination": { "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" }, "enableOtelLogging": true } }
Acessar a configuração de geração de registros
Receba a configuração de geração de registros de solicitação-resposta para o modelo ajustado usando a API REST.
API REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do projeto.
- LOCATION: o local do recurso de endpoint.
- MODEL: o nome do modelo de base. Por exemplo,
gemini-2.0-flash-001
. - ENDPOINT_ID: o ID do endpoint.
Método HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID
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)" \
"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
Você receberá uma resposta JSON semelhante a esta:
Desativar a configuração de geração de registros
Desative a configuração de geração de registros de solicitação-resposta para o endpoint.
SDK do 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 registro
No BigQuery, os registros são gravados usando o seguinte esquema:
Nome do campo | Tipo | Observações |
---|---|---|
endpoint | STRING | Nome do recurso do endpoint em que o modelo ajustado é implantado. |
deployed_model_id | STRING | ID do modelo implantado para um modelo ajustado implantado em um endpoint. |
logging_time | TIMESTAMP | O horário em que o registro é realizado. Esse é o tempo aproximado em que a resposta é retornada. |
request_id | NUMERIC | O ID de solicitação de número inteiro gerado automaticamente com base na solicitação da API. |
request_payload | STRING | Incluído para geração de registros de modelos de parceiros e compatibilidade com o registro de solicitações e respostas de endpoint da Vertex AI. |
response_payload | STRING | Incluído para geração de registros de modelos de parceiros e compatibilidade com o registro de solicitações e respostas de endpoint da Vertex AI. |
modelo | STRING | Nome do recurso do modelo. |
model_version | STRING | A versão do modelo. Esse é o padrão para modelos Gemini. |
api_method | STRING | generateContent, streamGenerateContent, rawPredict, streamRawPredict |
full_request | JSON | O GenerateContentRequest completo. |
full_response | JSON | O GenerateContentResponse completo. |
metadados | JSON | Qualquer metadado da chamada; contém a latência da solicitação. |
otel_log | JSON | Registros no formato de esquema do OpenTelemetry. Disponível apenas se otel_logging estiver ativado na configuração de geração de registros. |
Os pares de solicitação-resposta maiores que o limite de 10 MB por linha da API Write do BigQuery não são registrados.
A seguir
- Estimar preços para registros de previsão on-line.
- Implante um modelo usando o console Google Cloud ou usando a API Vertex AI.
- Saiba como criar uma tabela do BigQuery.