記錄及分享要求和回覆

Gemini Enterprise Agent Platform 可以記錄 Gemini 和支援的合作夥伴模型的要求和回覆樣本。記錄會儲存至 BigQuery 資料表,方便您查看及分析。此外,Agent Platform 可與特定 MaaS 合作夥伴分享特定 Advanced AI 模型的請求/回應記錄,協助您履行對這些 MaaS 合作夥伴的義務。

本頁面說明如何為基礎基礎模型和微調模型設定要求/回應記錄。

支援的記錄 API 方法

凡是使用 generateContentstreamGenerateContent 的 Gemini 模型,都支援要求/回應記錄。

系統也支援下列使用 rawPredictstreamrawPredict 的合作夥伴模型:

  • Anthropic Claude

基礎模型的要求/回應記錄

您可以使用 REST API 或 Python SDK,為基礎基礎模型設定要求/回應記錄。記錄設定可能需要幾分鐘才會生效。

啟用要求/回應記錄功能

選取下列任一分頁標籤,查看如何為基礎基礎模型啟用要求/回應記錄。

對於 Anthropic 模型,記錄設定僅支援 REST。透過 REST API 啟用記錄設定,方法是將發布者設為 anthropic,並將模型名稱設為支援的 Claude 模型之一。

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://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 中,系統會使用下列結構定義記錄記錄:

欄位名稱 類型 附註
endpoint 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 模型通常會使用「預設」值。
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 的資料列大小上限,系統就不會記錄。

與 MaaS 合作夥伴分享要求和回應

對於某些進階 AI 模型,部分 MaaS 合作夥伴會要求以防竄改的方式,與其信任與安全團隊分享提示和回覆記錄,以便監控潛在的濫用行為。舉例來說,使用 Anthropic Advanced AI 時,須遵守 Anthropic《服務專屬條款》的 F 節規定。啟用這項dataSharingEnabledProvider功能後,系統會即時將「進階 AI 安全附錄」下的記錄要求和回應分享給 MaaS 合作夥伴。

如要啟用防竄改要求/回應記錄共用功能,請使用 setPublisherModelConfig API,詳情請參閱下列章節。

支援的模型

下表列出支援分享要求和回應的 MaaS 合作夥伴和模型:

支援的 MaaS 合作夥伴 支援的模型
Anthropic
  • Claude Mythos 預先發布版
  • Claude Mythos 5
  • Google Cloud 上的 Claude Fable 5

MaaS 合作夥伴和模型必須相符。要求/回應記錄只能與發布模型的 MaaS 合作夥伴共用。

必要條件

Google 必須先取得這項專案的《進階 AI 安全性附加條款》同意聲明,才能啟用資料共用功能。如要進一步瞭解附加條款,請參閱「進階 AI 安全性」。

您不必啟用 BigQuery 的要求/回應記錄功能,即可使用要求/回應記錄共用功能。

限制

根據預設,受 VPC Service Controls 保護的專案無法與 MaaS 合作夥伴共用資料。系統不支援設定 VPC Service Controls 輸出規則。如要為受 VPC Service Controls 保護的專案啟用資料共用功能,請提出支援案件

啟用資料

請執行下列步驟:

REST API

使用任何要求資料之前,請先修改下列項目的值:

  • ENDPOINT_PREFIX:模型端點位置的適當前置字元。請使用下列值:
    • 如為 global 端點,請使用 aiplatform
    • 如果是 useu 等多區域端點,請使用 aiplatform.LOCATION.rep
    • 如果是 us-central1 等區域端點,請使用 LOCATION-aiplatform
  • PROJECT_ID:您的專案 ID。
  • LOCATION:模型端點的位置。例如:globaluseuus-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
    • 如果是 useu 等多區域端點,請使用 aiplatform.LOCATION.rep
    • 如果是 us-central1 等區域端點,請使用 LOCATION-aiplatform
  • PROJECT_ID:您的專案 ID。
  • LOCATION:模型端點的位置。例如:globaluseuus-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
    • 如果是 useu 等多區域端點,請使用 aiplatform.LOCATION.rep
    • 如果是 us-central1 等區域端點,請使用 LOCATION-aiplatform
  • PROJECT_ID:您的專案 ID。
  • LOCATION:模型端點的位置。例如:globaluseuus-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 合作夥伴分享要求和回應記錄,專案管理員可以執行下列任一操作:

後續步驟