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
の作成または更新に使用できます。
# 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 テーブル。プロジェクト名のみを指定した場合、新しいデータセットが
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
# 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,
)
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
この方法は、エンドポイントのリクエスト / レスポンス ロギング構成を更新するために使用できます。
# 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
publisher_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
: デフォルトのリクエスト / レスポンス ロギングに加えて 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
# 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,
)
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 モデルでは「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 の 10 MB の行の上限を超えるリクエストとレスポンスのペアは記録されません。
次のステップ
- オンライン予測ロギングの料金を見積もる。
- Google Cloud コンソールまたは Vertex AI API を使用してモデルをデプロイする。
- BigQuery テーブルの作成方法を確認する。