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 fondasi dasar dan model yang disesuaikan.

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:

  • Claude Anthropic

Log permintaan-respons untuk model dasar

Anda dapat mengonfigurasi log permintaan-respons untuk model dasar bahasa 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 cara mengaktifkan log permintaan-respons untuk model fondasi dasar.

Untuk model Anthropic, hanya REST yang didukung untuk konfigurasi logging. Aktifkan konfigurasi logging melalui REST API dengan menetapkan penayang ke anthropic dan menetapkan 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

Buat atau perbarui PublisherModelConfig menggunakan setPublisherModelConfig:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • ENDPOINT_PREFIX: Region resource model 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 akan mencatat semua permintaan ke dalam log, dan nilai 0,1 akan mencatat 10% permintaan ke dalam log.
  • 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, di mana 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 dengan 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 telah disesuaikan

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

Mengaktifkan log permintaan-respons

Pilih salah satu tab berikut untuk mengetahui petunjuk cara mengaktifkan log permintaan-respons untuk model yang telah disesuaikan.

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: tetapkan 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 dioptimalkan 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

Nonaktifkan 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 dan di-deploy ke endpoint.
logging_time TIMESTAMP Waktu logging 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. Hal 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 apa pun; 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 API tulis BigQuery tidak dicatat.

Langkah berikutnya