Gemini Enterprise Agent Platform 可以记录 Gemini 和受支持的合作伙伴模型的请求和响应样本。日志会保存到 BigQuery 表中,以供查看和分析。此外,Agent Platform 还可以与某些 MaaS 合作伙伴分享特定高级 AI 模型的请求-响应日志,以帮助您履行对这些 MaaS 合作伙伴的义务。
本页介绍了如何为基础模型和微调模型配置请求-响应日志。
日志记录支持的 API 方法
所有使用 generateContent 或 streamGenerateContent 的 Gemini 模型均支持请求-响应日志。
还支持使用 rawPredict 或 streamrawPredict 的以下合作伙伴模型:
- Anthropic Claude
基础模型的请求-响应日志
您可以使用 REST API 或 Python SDK 为基础模型配置请求-响应日志。日志记录配置可能需要几分钟才能生效。
启用请求-响应日志记录
根据需要选择以下任一标签页,了解如何为基础模型启用请求-响应日志。
对于 Anthropic 模型,仅支持使用 REST 进行日志记录配置。通过 REST API 启用日志记录配置,方法是将发布方设置为 anthropic,并将模型名称设置为受支持的 Claude 模型之一。
如需为 Anthropic 模型使用请求-响应日志记录,请使用区域端点。全球端点和多区域端点不支持此功能。
Python SDK
此方法可用于创建或更新 PublisherModelConfig。
# Specify the preview version of GenerativeModel
import vertexai
from vertexai.preview.generative_models import(
GenerativeModel,
)
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
vertexai.init(project=PROJECT_ID, location=LOCATION)
publisher_model = GenerativeModel("gemini-2.5-flash")
# 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 表的 URI。例如,
bq://PROJECT_ID.DATASET_NAME.TABLE_NAME。如果仅指定项目名称,则系统会创建名为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
# Specify the preview version of GenerativeModel
import vertexai
from vertexai.preview.generative_models import(
GenerativeModel,
)
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
vertexai.init(project=PROJECT_ID, location=LOCATION)
publisher_model = GenerativeModel("gemini-2.5-flash")
# Disable logging
publisher_model.set_request_response_logging_config(
enabled=False,
sampling_rate=1.0,
bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
)
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
此方法可用于更新端点的请求-响应日志记录配置。
# Specify the preview version of GenerativeModel
import vertexai
from vertexai.preview.generative_models import(
GenerativeModel,
)
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
vertexai.init(project=PROJECT_ID, location=LOCATION)
tuned_model = GenerativeModel(f"projects/{PROJECT_ID}/locations/{LOCATION}/endpoints/ENDPOINT_ID")
# Set logging configuration
tuned_model.set_request_response_logging_config(
enabled=True,
sampling_rate=1.0,
bigquery_destination=f"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
# Specify the preview version of GenerativeModel
import vertexai
from vertexai.preview.generative_models import(
GenerativeModel,
)
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
vertexai.init(project=PROJECT_ID, location=LOCATION)
tuned_model = GenerativeModel(f"projects/{PROJECT_ID}/locations/{LOCATION}/endpoints/ENDPOINT_ID")
# Disable logging
tuned_model.set_request_response_logging_config(
enabled=False,
sampling_rate=1.0,
bigquery_destination="bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
)
REST API
{
"predictRequestResponseLoggingConfig": {
"enabled": false
}
}
日志记录表架构
在 BigQuery 中,日志会使用以下架构记录:
| 字段名称 | 类型 | 备注 |
|---|---|---|
| 端点 | STRING | 调优后模型所部署到的端点的资源名称。 |
| deployed_model_id | STRING | 已部署到端点的调优后模型的已部署模型 ID。 |
| logging_time | TIMESTAMP | 执行日志记录的时间。这大致是返回响应的时间。 |
| request_id | NUMERIC | 根据 API 请求自动生成的整数请求 ID。 |
| request_payload | STRING | 包含在合作伙伴模型日志记录中,并向后兼容 Agent Platform 端点请求-响应日志。 |
| response_payload | STRING | 包含在合作伙伴模型日志记录中,并向后兼容 Agent Platform 端点请求-响应日志。 |
| 模型 | STRING | 模型资源名称。 |
| model_version | STRING | 模型版本。对于 Gemini 模型,这通常为“default”。 |
| api_method | STRING | generateContent、streamGenerateContent、rawPredict、streamRawPredict |
| full_request | JSON | 完整的 GenerateContentRequest。 |
| full_response | JSON | 完整的 GenerateContentResponse。 |
| metadata | JSON | 调用的任何元数据;包含请求延迟时间。 |
| otel_log | JSON | 采用 OpenTelemetry 架构格式的日志。仅当日志记录配置中启用了 otel_logging 时才可用。 |
请注意,如果请求-响应对的大小超过 BigQuery 写入 API 的 10MB 行限制,则不会记录。
与 MaaS 合作伙伴分享请求和响应
对于某些高级 AI 模型,部分 MaaS 合作伙伴要求以防篡改的方式与他们的信任与安全团队共享提示和回答的日志,以便他们监控潜在的滥用行为。例如,使用 Anthropic Advanced AI 受 Anthropic 的特定服务条款的第 F 条款约束。在 dataSharingEnabledProvider 功能处于有效状态时,根据《高级 AI 安全附录》记录的请求和响应将实时与 MaaS 合作伙伴共享。
如以下各部分中所述,您可以使用 setPublisherModelConfig API 启用防篡改的请求-响应日志共享。
支持的模型
下表列出了支持共享请求和响应的 MaaS 合作伙伴和模型:
| 支持的 MaaS 合作伙伴 | 支持的模型 |
|---|---|
| Anthropic |
|
MaaS 合作伙伴和型号必须匹配。请求-响应日志只能与发布相应模型的 MaaS 合作伙伴共享。
前提条件
Google 必须先在此项目中获得《高级 AI 安全附录》的同意声明,然后才能启用数据共享。如需详细了解附录,请参阅高级 AI 安全。
您无需为 BigQuery 启用请求-响应日志记录,即可使用请求-响应日志共享功能。
限制
默认情况下,受 VPC Service Controls 保护的项目无法与 MaaS 合作伙伴共享数据。不支持配置 VPC Service Controls 出站规则。如需为受 VPC Service Controls 保护的项目启用数据共享,请提交支持服务工单。
启用数据
执行以下操作:
REST API
在使用任何请求数据之前,请先进行以下替换:
-
ENDPOINT_PREFIX:模型端点位置的相应前缀。请使用以下值:
-
对于
global端点,请使用aiplatform。 -
对于
us或eu等多区域端点,请使用aiplatform.LOCATION.rep -
对于
us-central1等区域级端点,请使用LOCATION-aiplatform。
-
对于
- PROJECT_ID:您的项目 ID。
-
LOCATION:模型端点的位置。例如,
global、us、eu或us-central1。 -
PUBLISHER:模型发布者的名称,以小写形式表示。例如
anthropic。 -
MODEL:基础模型名称。例如,
claude-fable-5。 -
MAAS_PARTNER:模型发布者的名称,采用大写形式。MaaS 合作伙伴必须是上述
MODEL的大写版本。例如ANTHROPIC。
HTTP 方法和网址:
POST https://ENDPOINT_PREFIX.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
请求 JSON 正文:
{
"publisherModelConfig": {
"dataSharingEnabledProvider": "ANTHROPIC"
}
}
如需发送请求,请选择以下方式之一:
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_PREFIX.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_PREFIX.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
您应该会收到一个成功的状态代码 (2xx) 和一个空响应。
获取共享配置
执行以下操作:
REST API
在使用任何请求数据之前,请先进行以下替换:
-
ENDPOINT_PREFIX:模型端点位置的相应前缀。请使用以下值:
-
对于
global端点,请使用aiplatform。 -
对于
us或eu等多区域端点,请使用aiplatform.LOCATION.rep -
对于
us-central1等区域级端点,请使用LOCATION-aiplatform。
-
对于
- PROJECT_ID:您的项目 ID。
-
LOCATION:模型端点的位置。例如,
global、us、eu或us-central1。 -
PUBLISHER:模型发布者的名称,以小写形式表示。例如
anthropic。 -
MODEL:基础模型名称。例如,
claude-fable-5。
HTTP 方法和网址:
https://ENDPOINT_PREFIX.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://ENDPOINT_PREFIX.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method `
-Headers $headers `
-Uri "https://ENDPOINT_PREFIX.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{
"loggingConfig": {},
"dataSharingEnabledProvider": "ANTHROPIC"
}
停用数据共享
执行以下操作:
REST API
在使用任何请求数据之前,请先进行以下替换:
-
ENDPOINT_PREFIX:模型端点位置的相应前缀。请使用以下值:
-
对于
global端点,请使用aiplatform。 -
对于
us或eu等多区域端点,请使用aiplatform.LOCATION.rep -
对于
us-central1等区域级端点,请使用LOCATION-aiplatform。
-
对于
- PROJECT_ID:您的项目 ID。
-
LOCATION:模型端点的位置。例如,
global、us、eu或us-central1。 -
PUBLISHER:模型发布者的名称,以小写形式表示。例如
anthropic。 -
MODEL:基础模型名称。例如,
claude-fable-5。
HTTP 方法和网址:
POST https://ENDPOINT_PREFIX.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig
请求 JSON 正文:
{
"publisherModelConfig": {
"dataSharingEnabledProvider": "MODEL_PROVIDER_UNSPECIFIED"
}
}
如需发送请求,请选择以下方式之一:
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_PREFIX.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_PREFIX.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig" | Select-Object -Expand Content
您应该会收到一个成功的状态代码 (2xx) 和一个空响应。
阻止数据共享请求
为防止与 MaaS 合作伙伴共享请求和响应日志,项目管理员可以执行以下任一操作:
创建 VPC Service Controls 服务边界,其中包含项目和
aiplatform.googleapis.com(作为受限服务)对
aiplatform.endpoints.setPublisherModelConfig权限强制执行最小权限,以防止启用日志记录或日志共享。
后续步骤
- 估算在线预测日志记录的价格。
- 使用 Google Cloud 控制台或使用 Agent Platform API 部署模型。
如需详细了解与请求响应日志记录相关的政策,请参阅以下内容: