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 寫入 API 的 10 MB 資料列大小上限,系統就不會記錄。
後續步驟
- 估算線上預測記錄的價格。
- 使用 Google Cloud 控制台或 Vertex AI API 部署模型。
- 瞭解如何建立 BigQuery 資料表。