Catat permintaan dan respons

Vertex AI dapat mencatat sampel permintaan dan respons untuk Gemini dan model partner yang didukung. Log disimpan ke tabel BigQuery untuk dilihat dan dianalisis. Halaman ini menjelaskan cara mengonfigurasi log permintaan-respons untuk model dasar dan model yang di-fine-tune.

Metode API yang didukung untuk logging

Log permintaan-respons didukung untuk semua model Gemini yang menggunakan generateContent atau streamGenerateContent.

Model partner berikut yang menggunakan rawPredict atau streamrawPredict juga didukung:

  • Anthropic Claude

Log permintaan-respons untuk model dasar

Anda dapat mengonfigurasi log permintaan-respons untuk model dasar dengan menggunakan REST API atau Python SDK. Konfigurasi logging dapat memerlukan waktu beberapa menit untuk diterapkan.

Mengaktifkan logging respons permintaan

Pilih salah satu tab berikut untuk mengetahui petunjuk tentang cara mengaktifkan log permintaan-respons untuk model dasar.

Untuk model Anthropic, hanya REST yang didukung untuk konfigurasi logging. Aktifkan konfigurasi logging melalui REST API dengan menyetel penayang ke anthropic dan menyetel nama model ke salah satu model Claude yang didukung.

Python SDK

Metode ini dapat digunakan untuk membuat atau memperbarui 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

Membuat atau memperbarui PublisherModelConfig menggunakan setPublisherModelConfig:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • ENDPOINT_PREFIX: Region resource model yang diikuti dengan -. Misalnya, us-central1-. Jika menggunakan endpoint global, biarkan kosong. Logging permintaan-respons didukung untuk semua region yang didukung oleh model.
  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region resource model. Jika menggunakan endpoint global, masukkan global.
  • PUBLISHER: Nama penayang. Misalnya, google.
  • MODEL: Nama model dasar. Misalnya, gemini-2.0-flash-001.
  • SAMPLING_RATE: Untuk mengurangi biaya penyimpanan, Anda dapat menetapkan angka antara 0 atau 1 untuk menentukan fraksi permintaan yang akan dicatat ke dalam log. Misalnya, nilai 1 mencatat semua permintaan, dan nilai 0,1 mencatat 10% permintaan.
  • BQ_URI: tabel BigQuery yang akan digunakan untuk logging. Jika Anda hanya menentukan nama project, set data baru akan dibuat dengan nama logging_ENDPOINT_DISPLAY_NAME\_ENDPOINT_ID, dengan ENDPOINT_DISPLAY_NAME mengikuti aturan penamaan BigQuery. Jika Anda tidak menentukan nama tabel, tabel baru akan dibuat dengan nama request_response_logging.

Metode HTTP dan URL:

POST https://ENDPOINT_PREFIXaiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig

Isi JSON permintaan:

{
  "publisherModelConfig": {
     "loggingConfig": {
       "enabled": true,
       "samplingRate": SAMPLING_RATE,
       "bigqueryDestination": {
         "outputUri": "BQ_URI"
       },
       "enableOtelLogging": true
     }
   }
 }

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Mendapatkan konfigurasi logging

Dapatkan konfigurasi logging permintaan-respons untuk model dasar menggunakan REST API.

REST API

Dapatkan konfigurasi logging permintaan-respons menggunakan fetchPublisherModelConfig:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Lokasi resource model.
  • PUBLISHER: Nama penayang. Misalnya, google.
  • MODEL: Nama model dasar. Misalnya, gemini-2.0-flash-001.

Metode HTTP dan URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:fetchPublisherModelConfig

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

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

Jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Menonaktifkan logging

Nonaktifkan logging permintaan-respons untuk model dasar menggunakan REST API atau Python SDK.

Python SDK

publisher_model.set_request_response_logging_config(
  enabled=False,
  sampling_rate=0,
  bigquery_destination=''
  )

REST API

Gunakan setPublisherModelConfig untuk menonaktifkan logging:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Lokasi resource model.
  • PUBLISHER: Nama penayang. Misalnya, google.
  • MODEL: Nama model dasar. Misalnya, gemini-2.0-flash-001.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/PUBLISHER/models/MODEL:setPublisherModelConfig

Isi JSON permintaan:

{
  "publisherModelConfig": {
     "loggingConfig": {
       "enabled": false
     }
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

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

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Log permintaan-respons untuk model yang di-fine-tune

Anda dapat mengonfigurasi log permintaan-respons untuk model yang di-fine-tune menggunakan REST API atau Python SDK.

Mengaktifkan log permintaan-respons

Pilih salah satu tab berikut untuk mengetahui petunjuk tentang cara mengaktifkan log permintaan-respons untuk model yang di-fine-tune.

Python SDK

Metode ini dapat digunakan untuk memperbarui konfigurasi logging permintaan-respons untuk endpoint.

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

Anda hanya dapat mengaktifkan logging permintaan-respons saat membuat endpoint menggunakan projects.locations.endpoints.create atau menerapkan patch pada endpoint yang ada menggunakan projects.locations.endpoints.patch.

Permintaan dan respons dicatat ke dalam log di tingkat endpoint, sehingga permintaan yang dikirim ke model yang di-deploy pada endpoint yang sama akan dicatat ke dalam log.

Saat Anda membuat atau menerapkan patch endpoint, isi kolom predictRequestResponseLoggingConfig dari Resource endpoint dengan entri berikut:

  • enabled: tetapkan ke True untuk mengaktifkan logging permintaan-respons.

  • samplingRate: Untuk mengurangi biaya penyimpanan, Anda dapat menetapkan angka antara 0 atau 1 untuk menentukan fraksi permintaan yang akan dicatat ke dalam log. Misalnya, nilai 1 mencatat semua permintaan ke dalam log, dan nilai 0,1 mencatat 10% permintaan ke dalam log.

  • BigQueryDestination: tabel BigQuery yang akan digunakan untuk logging. Jika Anda hanya menentukan nama project, set data baru akan dibuat dengan nama logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID, di mana ENDPOINT_DISPLAY_NAME mengikuti aturan penamaan BigQuery. Jika Anda tidak menentukan nama tabel, tabel baru akan dibuat dengan nama request_response_logging.

  • enableOtelLogging: ditetapkan ke true untuk mengaktifkan logging OpenTelemetry (OTEL) selain logging permintaan-respons default.

Untuk melihat skema tabel BigQuery, lihat Skema tabel logging.

Berikut adalah contoh konfigurasi:

{
  "predictRequestResponseLoggingConfig": {
    "enabled": true,
    "samplingRate": 0.5,
    "bigqueryDestination": {
      "outputUri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
    },
    "enableOtelLogging": true
  }
}

Mendapatkan konfigurasi logging

Dapatkan konfigurasi logging permintaan-respons untuk model yang di-fine-tune menggunakan REST API.

REST API

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Lokasi resource endpoint.
  • MODEL: Nama model dasar. Misalnya, gemini-2.0-flash-001.
  • ENDPOINT_ID: ID endpoint.

Metode HTTP dan URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

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

Jalankan perintah berikut:

$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

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Menonaktifkan konfigurasi logging

Menonaktifkan konfigurasi logging permintaan-respons untuk endpoint.

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
}
}

Skema tabel logging

Di BigQuery, log dicatat menggunakan skema berikut:

Nama kolom Jenis Catatan
endpoint STRING Nama resource endpoint tempat model yang disesuaikan di-deploy.
deployed_model_id STRING ID model yang di-deploy untuk model yang disesuaikan yang di-deploy ke endpoint.
logging_time TIMESTAMP Waktu saat pencatatan log dilakukan. Ini adalah perkiraan waktu respons ditampilkan.
request_id NUMERIC ID permintaan bilangan bulat yang dibuat otomatis berdasarkan permintaan API.
request_payload STRING Disertakan untuk logging model partner dan kompatibilitas mundur dengan log permintaan-respons endpoint Vertex AI.
response_payload STRING Disertakan untuk logging model partner dan kompatibilitas mundur dengan log permintaan-respons endpoint Vertex AI.
model STRING Nama resource model.
model_version STRING Versi model. Nilai ini sering kali "default" untuk model Gemini.
api_method STRING generateContent, streamGenerateContent, rawPredict, streamRawPredict
full_request JSON GenerateContentRequest lengkap.
full_response JSON GenerateContentResponse lengkap.
metadata JSON Metadata panggilan; berisi latensi permintaan.
otel_log JSON Log dalam format skema OpenTelemetry. Hanya tersedia jika otel_logging diaktifkan dalam konfigurasi logging.

Perhatikan bahwa pasangan permintaan-respons yang lebih besar dari batas baris 10 MB write API BigQuery tidak dicatat.

Langkah berikutnya