Vertex AI は、Gemini とサポートされているパートナー モデルのリクエストとレスポンスをロギングできます。ログは、表示と分析のために BigQuery テーブルに保存されます。このページでは、ベースの基盤モデルとファインチューニング済みモデルのリクエスト レスポンス ログを構成する方法について説明します。
ロギングにサポートされている API メソッド
リクエスト / レスポンス ログは、generateContent
または streamGenerateContent
を使用するすべての Gemini モデルでサポートされています。
rawPredict
または streamrawPredict
を使用する次のパートナー モデルもサポートされています。
- Anthropic Claude
ベースの基盤モデルのリクエスト / レスポンス ログ
ベース モデルの REST API または Python SDK を使用して、リクエスト / レスポンス ログを構成できます。ロギング構成が有効になるまでに数分かかることがあります。
リクエスト / レスポンス ロギングを有効にする
ベースの基盤モデルでリクエスト / レスポンス ログを有効にする手順については、次のいずれかのタブを選択してください。
Anthropic モデルの場合、ロギング構成でサポートされているのは REST のみです。パブリッシャーを anthropic
に設定し、モデル名を サポートされている Claude モデルのいずれかに設定して、REST API を介してロギング構成を有効にします。
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 メソッドと URL:
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 メソッドと URL:
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 メソッドと URL:
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
: デフォルトのリクエスト / レスポンス ロギングに加えて OpenTelemetry(OTEL)ロギングを有効にするには、true
に設定します。
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 メソッドと URL:
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 。 |
metadata | JSON | 呼び出しのメタデータ。リクエストのレイテンシが含まれます。 |
otel_log | JSON | OpenTelemetry スキーマ形式のログ。ロギング構成で otel_logging が有効になっている場合にのみ使用できます。 |
BigQuery の Write API の 10 MB の行上限を超えるリクエスト / レスポンス ペアは記録されません。
次のステップ
- オンライン予測ロギングの料金を見積もる。
- コンソールまたは Vertex AI API を使用してモデルをデプロイします。 Google Cloud
- BigQuery テーブルの作成方法を確認する。