Vertex AI 可以为 Gemini 和受支持的合作伙伴模型记录请求和响应示例。日志会保存到 BigQuery 表中,以供查看和分析。本页介绍了如何为基础模型和微调模型配置请求-响应日志。
支持的日志记录 API 方法
所有使用 generateContent
或 streamGenerateContent
的 Gemini 模型都支持请求-响应日志。
还支持使用 rawPredict
或 streamrawPredict
的以下合作伙伴模型:
- Anthropic Claude
基础模型的请求-响应日志
您可以使用 REST API 或 Python SDK 为基础模型配置请求-响应日志。日志记录配置可能需要几分钟才能生效。
启用请求-响应日志记录
请选择以下任一标签页,了解如何为基础框架模型启用请求-响应日志。
对于 Anthropic 模型,仅支持 REST 日志记录配置。通过 REST API 启用日志记录配置,方法是将发布商设置为 anthropic
,并将模型名称设置为受支持的 Claude 模型之一。
Python SDK
此方法可用于创建或更新 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
)
REST API
使用 setPublisherModelConfig
创建或更新 PublisherModelConfig
:
在使用任何请求数据之前,请先进行以下替换:
- ENDPOINT_PREFIX:模型资源所在的区域,后跟
-
。例如us-central1-
。如果使用全球端点,请留空。模型支持的所有区域都支持请求-响应日志记录。 - PROJECT_ID:您的项目 ID。
- LOCATION:模型资源所在的区域。
如果使用全球端点,请输入
global
。 - PUBLISHER:发布商名称。例如
google
。 - MODEL:基础模型名称。例如
gemini-2.0-flash-001
。 - SAMPLING_RATE:为降低存储费用,您可以设置介于 0 和 1 之间的数字,以定义要记录的请求的比例。例如,如果值为 1,则会记录所有请求;如果值为 0.1,则会记录 10% 的请求。
- BQ_URI:用于日志记录的 BigQuery 表。如果仅指定项目名称,则系统会创建名为
logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID
的新数据集,其中ENDPOINT_DISPLAY_NAME
遵循 BigQuery 命名规则。如果您未指定表名称,则系统会创建名为request_response_logging
的新表。
HTTP 方法和网址:
POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
请求 JSON 正文:
{ "publisherModelConfig": { "loggingConfig": { "enabled": true, "samplingRate": SAMPLING_RATE, "bigqueryDestination": { "outputUri": "BQ_URI" }, "enableOtelLogging": true } } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
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
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$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
您应该收到类似以下内容的 JSON 响应:
获取日志记录配置
使用 REST API 获取基础模型的请求-响应日志记录配置。
REST API
使用 fetchPublisherModelConfig
获取请求-响应日志记录配置:
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:模型资源的位置。
- PUBLISHER:发布商名称。例如
google
。 - MODEL:基础模型名称。例如
gemini-2.0-flash-001
。
HTTP 方法和网址:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
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
执行以下命令:
$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
您应该收到类似以下内容的 JSON 响应:
停用日志记录
使用 REST API 或 Python SDK 为基础模型停用请求-响应日志记录。
Python SDK
publisher_model.set_request_response_logging_config(
enabled=False,
sampling_rate=0,
bigquery_destination=''
)
REST API
使用 setPublisherModelConfig
停用日志记录:
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:模型资源的位置。
- PUBLISHER:发布商名称。例如
google
。 - MODEL:基础模型名称。例如
gemini-2.0-flash-001
。
HTTP 方法和网址:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
请求 JSON 正文:
{ "publisherModelConfig": { "loggingConfig": { "enabled": false } } }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
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
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$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
您应该收到类似以下内容的 JSON 响应:
经过微调的模型的请求-响应日志
您可以使用 REST API 或 Python SDK 为微调模型配置请求-响应日志。
启用请求-响应日志
请选择以下任一标签页,了解如何为经过微调的模型启用请求-响应日志。
Python SDK
此方法可用于更新端点的请求-响应日志记录配置。
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
)
REST API
只有在使用 projects.locations.endpoints.create
创建端点或使用 projects.locations.endpoints.patch
修补现有端点时才能启用请求-响应日志记录。
请求和响应是在端点级别记录的,因此系统会记录发送到同一端点下所有已部署模型的请求。
创建或修补端点时,请使用以下条目填充端点资源的 predictRequestResponseLoggingConfig
字段:
enabled
:设置为True
以启用请求-响应日志记录。samplingRate
:为降低存储费用,您可以设置介于 0 和 1 之间的数字,以定义要记录的请求的比例。例如,如果值为 1,则会记录所有请求;如果值为 0.1,则会记录 10% 的请求。BigQueryDestination
:用于日志记录的 BigQuery 表。如果仅指定项目名称,则系统会创建名为logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID
的新数据集,其中ENDPOINT_DISPLAY_NAME
遵循 BigQuery 命名规则。如果您未指定表名称,则系统会创建名为request_response_logging
的新表。enableOtelLogging
:设置为true
可启用 OpenTelemetry (OTEL) 日志记录,以及默认的请求-响应日志记录。
如需查看 BigQuery 表架构,请参阅日志表架构。
下面是一个示例配置:
{ "predictRequestResponseLoggingConfig": { "enabled": true, "samplingRate": 0.5, "bigqueryDestination": { "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME" }, "enableOtelLogging": true } }
获取日志记录配置
使用 REST API 获取经过微调的模型的请求-响应日志记录配置。
REST API
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的项目 ID。
- LOCATION:端点资源的位置。
- MODEL:基础模型名称。例如
gemini-2.0-flash-001
。 - ENDPOINT_ID:端点的 ID。
HTTP 方法和网址:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
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
执行以下命令:
$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
您应该收到类似以下内容的 JSON 响应:
停用日志记录配置
停用端点的请求-响应日志记录配置。
Python SDK
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
)
REST API
{ "predictRequestResponseLoggingConfig": { "enabled": false } }
日志记录表架构
在 BigQuery 中,日志是使用以下架构记录的:
字段名称 | 类型 | 备注 |
---|---|---|
endpoint | STRING | 要部署经过调优的模型的端点的资源名称。 |
deployed_model_id | STRING | 已部署到端点的调优模型的部署模型 ID。 |
logging_time | TIMESTAMP | 执行日志记录的时间。这大致是返回响应的时间。 |
request_id | NUMERIC | 根据 API 请求自动生成的整数请求 ID。 |
request_payload | STRING | 添加了此字段,以便进行合作伙伴模型日志记录,并与 Vertex AI 端点请求-响应日志向后兼容。 |
response_payload | STRING | 添加了此字段,以便进行合作伙伴模型日志记录,并与 Vertex AI 端点请求-响应日志向后兼容。 |
模型 | STRING | 模型资源名称。 |
model_version | STRING | 模型版本。对于 Gemini 模型,这通常是“默认”值。 |
api_method | STRING | generateContent、streamGenerateContent、rawPredict、streamRawPredict |
full_request | JSON | 完整的 GenerateContentRequest 。 |
full_response | JSON | 完整的 GenerateContentResponse 。 |
元数据 | JSON | 调用的任何元数据;包含请求延迟时间。 |
otel_log | JSON | 采用 OpenTelemetry 架构格式的日志。仅当日志记录配置中启用了 otel_logging 时才可用。 |
请注意,如果请求-响应对大于 BigQuery Write API 10 MB 行限制,则不会记录。