Mengumpulkan dan melihat perintah dan respons multimodal

Dokumen ini menjelaskan cara mengonfigurasi agen AI yang dibuat dengan framework Agent Development Kit (ADK) untuk mengumpulkan dan menyimpan perintah dan respons multimodal. Bagian ini juga menjelaskan cara Anda dapat melihat, menganalisis, dan mengevaluasi media multimodal tersimpan:

Jenis media yang dapat Anda kumpulkan

Anda dapat mengumpulkan jenis media berikut:

  • Audio.
  • Dokumen.
  • Gambar.
  • Teks biasa dan teks yang diformat Markdown.
  • Video.

Perintah dan respons Anda dapat menyertakan konten dan link inline. Link dapat mengarah ke resource publik atau bucket Cloud Storage.

Tempat penyimpanan perintah dan respons Anda

Saat aplikasi agentik Anda membuat atau menerima perintah atau respons, ADK memanggil instrumentasi OpenTelemetry. Pengukuran ini memformat perintah dan respons, serta data multimodal yang mungkin ada di dalamnya, sesuai dengan konvensi semantik GenAI OpenTelemetry versi 1.37.0. Versi yang lebih tinggi juga didukung.

Selanjutnya, instrumentasi OpenTelemetry akan melakukan hal berikut:

  • Fungsi ini membuat ID objek untuk data perintah dan respons, lalu menulis data tersebut ke bucket Cloud Storage Anda. Entri di bucket Cloud Storage Anda disimpan dalam format JSON Lines.

  • Agen ini mengirimkan data log dan trace ke Google Cloud project Anda, tempat layanan Logging dan Trace menyerap dan menyimpan data. Konvensi semantik OpenTelemetry menentukan banyak atribut dan kolom yang dilampirkan ke entri log atau rentang rekaman aktivitas Anda.

    Saat instrumentasi OpenTelemetry membuat objek bucket Cloud Storage, instrumentasi tersebut juga menulis entri log yang berisi referensi ke objek tersebut. Contoh berikut menunjukkan bagian entri log yang menyertakan referensi objek:

    {
      ...
      "labels": {
        "gen_ai.system": "vertex_ai",
        "event.name": "gen_ai.client.inference.operation.details",
        "gen_ai.output.messages_ref": "gs://my-bucket/eso9aP7NA_GX2PgPkrOi-Qg_output.jsonl",
        "gen_ai.system.instructions_ref": "gs://my-bucket/eso9aP7NA_GX2PgPkrOi-Qg_system_instructions.jsonl",
        "gen_ai.input.messages_ref": "gs://my-bucket/eso9aP7NA_GX2PgPkrOi-Qg_input.jsonl"
      },
      "logName": "projects/my-project/logs/gen_ai.client.inference.operation.details",
      "trace": "projects/my-project/traces/963761020fc7713e4590cad89ad03229",
      "spanId": "1234512345123451",
      ...
    }
    

    Dalam contoh entri log, perhatikan hal-hal berikut:

    • Label "event.name": "gen_ai.client.inference.operation.details" menunjukkan bahwa entri log berisi referensi ke objek Cloud Storage.
    • Setiap label yang kuncinya mencakup gen_ai merujuk ke objek dalam bucket Cloud Storage.
    • Semua entri log yang berisi referensi objek ditulis ke log yang sama, yang diberi nama projects/my-project/logs/gen_ai.client.inference.operation.details.

    Untuk mempelajari cara menampilkan entri log yang berisi referensi objek, lihat bagian Menemukan semua entri log yang mereferensikan perintah dan respons dalam dokumen ini.

Mengumpulkan perintah dan respons multimodal

ADK secara otomatis memanggil OpenTelemetry untuk menyimpan perintah dan respons Anda, serta mengirim data log dan aktivitas ke project Google Cloud Anda. Anda tidak perlu mengubah aplikasi Anda. Namun, Anda perlu mengonfigurasi project Google Cloud dan ADK.

Untuk mengumpulkan dan melihat perintah dan respons multimodal dari aplikasi, lakukan hal berikut:

  1. Konfigurasi project Anda:

    1. Verify that billing is enabled for your Google Cloud project.

    2. Enable the Vertex AI, Cloud Storage, Telemetry, Cloud Logging, and Cloud Trace APIs.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the APIs

    3. Pastikan Anda memiliki bucket Cloud Storage. Jika perlu, buat bucket Cloud Storage.

      Sebaiknya Anda melakukan hal berikut:

      • Buat bucket Cloud Storage di lokasi yang sama dengan bucket log yang menyimpan data log aplikasi Anda. Konfigurasi ini membuat kueri BigQuery lebih efisien.

      • Pastikan kelas penyimpanan bucket Cloud Storage Anda mendukung tabel eksternal. Kemampuan ini memungkinkan Anda mengkueri perintah dan respons dengan BigQuery. Jika Anda tidak berencana menggunakan setelan default untuk bucket Cloud Storage baru, sebelum membuat bucket, tinjau Membuat tabel eksternal Cloud Storage.

      • Tetapkan periode retensi untuk bucket Cloud Storage Anda agar sesuai dengan periode retensi bucket log yang menyimpan entri log Anda. Periode retensi default untuk data log adalah 30 hari. Untuk mempelajari cara menetapkan periode retensi untuk bucket Cloud Storage, lihat Kunci Bucket.

    4. Beri akun layanan yang digunakan aplikasi Anda izin storage.objects.create di bucket Cloud Storage Anda. Izin ini memungkinkan aplikasi Anda menulis objek ke bucket Cloud Storage Anda. Objek ini menyimpan perintah dan respons yang dibuat atau diterima oleh aplikasi berbasis agen Anda. Untuk mengetahui informasi selengkapnya, lihat Menetapkan dan mengelola kebijakan IAM pada bucket.

  2. Mengonfigurasi ADK:

    1. Instal dan upgrade dependensi berikut:

      • google-adk>=1.16.0
      • opentelemetry-instrumentation-google-genai>=0.4b0
      • fsspec[gcs]
    2. Perbarui pemanggilan ADK Anda untuk mengaktifkan tanda otel_to_cloud:

      • Jika Anda menggunakan CLI untuk ADK, jalankan perintah berikut:

        adk web --otel_to_cloud  [other options]
        
      • Jika tidak, teruskan tanda saat membuat aplikasi FastAPI:

        get_fast_api_app(..., otel_to_cloud=True)
        
    3. Tetapkan variabel lingkungan berikut:

      • Menginstruksikan OpenTelemetry untuk memformat objek Cloud Storage sebagai JSON Lines.

        OTEL_INSTRUMENTATION_GENAI_UPLOAD_FORMAT='jsonl'
        
      • Menginstruksikan OpenTelemetry untuk mengupload data perintah dan respons, bukan menyematkan konten ini dalam rentang aktivitas. Referensi ke objek yang diupload disertakan dalam entri log.

        OTEL_INSTRUMENTATION_GENAI_COMPLETION_HOOK='upload'
        
      • Instruksikan OpenTelemetry untuk menggunakan konvensi semantik terbaru untuk AI generatif.

        OTEL_SEMCONV_STABILITY_OPT_IN='gen_ai_latest_experimental'
        
      • Tentukan jalur untuk objek:

        OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH='gs://STORAGE_BUCKET/PATH'
        

        Dalam ekspresi sebelumnya, STORAGE_BUCKET mengacu pada nama bucket Cloud Storage. PATH merujuk ke jalur tempat objek disimpan.

Melihat perintah dan respons multimodal

Untuk menentukan perintah dan respons yang akan ditampilkan untuk rentang, Cloud Trace mengirimkan kueri untuk membaca data log dan membaca data yang disimpan di bucket Cloud Storage. Peran Identity and Access Management (IAM) Anda pada resource yang dikueri menentukan apakah data ditampilkan. Dalam beberapa kasus, Anda mungkin melihat pesan error. Misalnya, jika Anda tidak memiliki izin untuk membaca data dari bucket Cloud Storage, upaya untuk mengakses data tersebut akan menghasilkan error penolakan izin.

Perintah dan respons muncul dalam format seperti chat, dan Anda memilih apakah media seperti gambar dirender secara otomatis atau muncul dalam format sumber. Demikian pula, Anda dapat melihat seluruh histori percakapan atau hanya melihat perintah dan respons yang dilampirkan ke rentang.

Misalnya, contoh berikut mengilustrasikan cara perintah dan respons muncul, dan cara OpenTelemetry: Attributes diringkas:

Contoh output yang dirender.

Sebelum memulai

Untuk mendapatkan izin yang diperlukan untuk melihat perintah dan respons multimodal Anda, minta administrator Anda untuk memberi Anda peran IAM berikut di project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Menemukan rentang yang berisi perintah dan respons multimodal

Untuk menemukan rentang yang berisi perintah dan respons multimodal, lakukan tindakan berikut:

  1. Di konsol Google Cloud , buka halaman Trace explorer:

    Buka Trace explorer

    Anda juga dapat menemukan halaman ini dengan menggunakan kotak penelusuran.

  2. Di panel Filter rentang, buka bagian Nama rentang, lalu pilih generate_content.

    Atau, tambahkan filter gen_ai.operation.name: generate_content.

  3. Pilih rentang dari daftar rentang.

    Halaman Detail untuk rentang akan terbuka. Halaman ini menampilkan rentang, dalam konteks rekaman aktivitas. Jika nama rentang memiliki tombol berlabel Input/Output, , berarti ada peristiwa AI generatif yang tersedia. Bagian berikutnya, Menjelajahi perintah dan respons multimodal Anda, menjelaskan cara data ditampilkan dan opsi visualisasi.

Mempelajari perintah dan respons multimodal Anda

Tab Input/Output berisi dua bagian. Satu bagian menampilkan perintah dan respons, dan bagian lainnya menampilkan OpenTelemetry: Attributes. Tab ini hanya muncul jika rentang yang dikirim ke Trace mengikuti konvensi semantik GenAI OpenTelemetry, versi 1.37.0 atau yang lebih baru, yang menghasilkan pesan yang namanya diawali dengan gen_ai.

Tab Input/Output menampilkan pesan Anda dalam format seperti chat. Anda dapat mengontrol pesan yang muncul dan formatnya menggunakan opsi di tab:

  • Untuk melihat seluruh percakapan, luaskan panel Pesan Historis.
  • Untuk melihat hanya perintah dan respons dalam rentang yang dipilih, gunakan panel Pesan Terbaru.
  • Untuk melihat gambar, video, atau media lainnya, pilih Diformat.

    Sistem tidak selalu menampilkan media. Untuk melindungi Anda, jika perintah atau respons menyertakan link ke gambar, dokumen, atau video publik, Anda harus mengonfirmasi bahwa Anda ingin media tersebut ditampilkan. Demikian pula, jika perintah atau respons menyertakan media yang disimpan di bucket Cloud Storage Anda dan jika media tersebut berukuran sangat besar, Anda harus mengonfirmasi bahwa Anda ingin media tersebut ditampilkan.

    Beberapa media, seperti gambar dan video, muncul dengan menu terlampir. Anda dapat menggunakan menu ini untuk melakukan tindakan seperti mendownload gambar ke drive lokal. Opsi menu bergantung pada jenis media.

  • Untuk melihat pesan yang diformat dalam JSON, pilih Raw. Dengan pilihan ini, media seperti gambar tidak dirender.

    Misalnya, gambar berikut menggambarkan tampilan percakapan dalam format mentah:

    Contoh output
mentah.

Menemukan semua entri log yang mereferensikan perintah dan respons

Untuk mencantumkan entri log yang menyertakan referensi objek ke perintah dan respons multimodal, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman Logs Explorer:

    Buka Logs Explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Di pemilih project, pilih project Google Cloud Anda.

  3. Di toolbar, luaskan All log names, masukkan gen_ai di filter, lalu pilih log bernama gen_ai.client.inference.operation.details.

    Langkah-langkah sebelumnya menambahkan kueri berikut ke Logs Explorer:

    logName="projects/PROJECT_ID/logs/gen_ai.client.inference.operation.details"
    

    Jika ingin, Anda dapat menyalin pernyataan dan menempelkannya ke panel Query Logs Explorer, tetapi ganti PROJECT_ID dengan project ID Anda sebelum Anda menyalin pernyataan.

    Anda juga dapat memfilter data log menurut nilai label. Misalnya, jika Anda menambahkan filter berikut, hanya entri log yang berisi label yang ditentukan yang akan muncul:

    labels."event.name"="gen_ai.client.inference.operation.details"
    
  4. Untuk melihat perintah dan respons yang dirujuk oleh entri log, di entri log, klik Lihat detail rekaman aktivitas.

    Untuk mempelajari cara menggunakan opsi di tab Input/Output, lihat bagian Menjelajahi perintah dan respons multimodal dalam dokumen ini.

Menganalisis data respons perintah menggunakan BigQuery

Anda dapat menganalisis perintah dan respons yang disimpan bucket Cloud Storage Anda menggunakan BigQuery. Sebelum Anda melakukan analisis ini, selesaikan langkah-langkah berikut:

  1. Aktifkan API yang diperlukan dan pastikan Anda telah diberi peran IAM yang diperlukan.
  2. Buat set data tertaut di bucket log Anda.
  3. Beri BigQuery izin untuk membaca dari bucket Cloud Storage Anda.
  4. Buat tabel eksternal.

Setelah membuat tabel eksternal, Anda menggabungkan data di bucket log dengan tabel eksternal, dan melakukan analisis pada data gabungan. Bagian ini mengilustrasikan cara menggabungkan tabel dan mengekstrak kolom tertentu. Dokumen ini juga mengilustrasikan cara menganalisis tabel gabungan dengan fungsi BigQuery ML.

Sebelum memulai

Peran IAM yang tercantum di bagian ini diperlukan untuk melakukan tindakan seperti mengupgrade bucket log dan membuat tabel eksternal. Namun, setelah konfigurasi selesai, lebih sedikit izin yang diperlukan untuk menjalankan kueri.

  1. Enable the BigQuery and BigQuery Connection APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  2. Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi sistem agar Anda dapat melihat perintah dan respons multimodal di BigQuery, minta administrator untuk memberi Anda peran IAM berikut di project:

    Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat set data tertaut di bucket log Anda

  1. Untuk menentukan apakah bucket log yang menyimpan data log Anda diupgrade untuk Log Analytics, jalankan perintah berikut:

    gcloud logging buckets describe LOG_BUCKET_ID --location=LOCATION
    

    Ganti yang berikut sebelum Anda menjalankan perintah:

    • LOG_BUCKET_ID: ID bucket log.
    • LOCATION: Lokasi bucket log.

    Saat bucket log diupgrade untuk Log Analytics, hasil perintah describe mencakup pernyataan berikut:

    analyticsEnabled: true
    

    Jika bucket log Anda belum diupgrade, jalankan perintah berikut:

    gcloud logging buckets update LOG_BUCKET_ID --location=LOCATION --enable-analytics --async
    

    Upgrade dapat memerlukan waktu beberapa menit untuk diselesaikan. Saat perintah describe melaporkan lifecycleState sebagai ACTIVE, upgrade selesai.

  2. Untuk membuat set data tertaut di bucket log Anda, jalankan perintah berikut:

    gcloud logging links create LINKED_DATASET_NAME --bucket=LOG_BUCKET_ID --location=LOCATION
    

    Ganti yang berikut sebelum Anda menjalankan perintah:

    • LOG_BUCKET_ID: ID bucket log.
    • LOCATION: Lokasi bucket log.
    • LINKED_DATASET_NAME: Nama set data tertaut yang akan dibuat.

    Set data tertaut memungkinkan BigQuery membaca data log yang disimpan di bucket log Anda. Untuk mempelajari lebih lanjut, lihat bagian Membuat kueri set data BigQuery yang ditautkan.

    Untuk mengonfirmasi bahwa link ada, jalankan perintah berikut:

    gcloud logging links list --bucket=LOG_BUCKET_ID --location=LOCATION
    

    Jika berhasil, respons terhadap perintah sebelumnya akan mencakup baris berikut:

    LINK_ID: LINKED_DATASET_NAME
    

Memberi BigQuery izin untuk membaca dari bucket Cloud Storage Anda

  1. Untuk membuat koneksi BigQuery, jalankan perintah berikut:

    bq mk --connection --location=CONNECTION_LOCATION --project_id=PROJECT_ID \
          --connection_type=CLOUD_RESOURCE CONNECTION_ID
    

    Ganti yang berikut sebelum Anda menjalankan perintah:

    • PROJECT_ID: ID project.
    • CONNECTION_ID: ID koneksi yang akan dibuat.
    • CONNECTION_LOCATION: Lokasi koneksi.

    Jika perintah berhasil diselesaikan, pesan yang mirip dengan berikut akan ditampilkan:

    Connection 151560119848.CONNECTION_LOCATION.CONNECTION_ID successfully created
    
  2. Verifikasi koneksi.

    bq show --connection PROJECT_ID.CONNECTION_LOCATION.CONNECTION_ID
    

    Respons terhadap perintah ini mencantumkan ID koneksi, dan mencantumkan akun layanan:

    {"serviceAccountId": "bqcx-151560119848-s1pd@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
    
  3. Beri akun layanan untuk koneksi BigQuery peran IAM yang memungkinkannya membaca data yang disimpan di bucket Cloud Storage Anda:

    gcloud storage buckets add-iam-policy-binding gs://STORAGE_BUCKET \
      --member=serviceAccount:SERVICE_ACCT_EMAIL \
      --role=roles/storage.objectViewer
    

    Ganti yang berikut sebelum Anda menjalankan perintah:

    • STORAGE_BUCKET: Nama bucket Cloud Storage Anda.
    • SERVICE_ACCT_EMAIL: Alamat email akun layanan Anda.

Membuat tabel BigLake eksternal

Untuk menggunakan BigQuery guna membuat kueri data yang tidak disimpan BigQuery, buat tabel eksternal. Karena bucket Cloud Storage menyimpan perintah dan respons, buat tabel eksternal BigLake.

  1. Di konsol Google Cloud , buka halaman BigQuery:

    Buka BigQuery Studio

    Anda juga dapat menemukan halaman ini dengan menggunakan kotak penelusuran.

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE OR REPLACE EXTERNAL TABLE `PROJECT_ID.EXT_TABLE_DATASET_NAME.EXT_TABLE_NAME` (
      -- Schema matching the JSON structure in a Cloud Storage bucket.
      parts ARRAY<
          STRUCT<
            type STRING,
            content STRING,
    
            -- multimodal attachments
            mime_type STRING,
            uri STRING,
            data BYTES,
    
            -- tool calls
            id STRING,
            name STRING,
            arguments JSON,
            response JSON
          >
        >,
        role STRING,
        `index` INT64,
      )
    
    WITH CONNECTION `PROJECT_ID.CONNECTION_LOCATION.CONNECTION_ID`
    OPTIONS (
      format = 'NEWLINE_DELIMITED_JSON',
      uris = ['gs://STORAGE_BUCKET/PATH/*'],
      ignore_unknown_values = TRUE
    );
    

    Ganti yang berikut sebelum Anda menjalankan perintah:

    • PROJECT_ID: ID project.
    • EXT_TABLE_DATASET_NAME: Nama set data yang akan dibuat.
    • EXT_TABLE_NAME: Nama tabel BigLake eksternal yang akan dibuat.
    • CONNECTION_LOCATION: Lokasi CONNECTION_ID Anda.
    • CONNECTION_ID: ID koneksi.
    • STORAGE_BUCKET: Nama bucket Cloud Storage.
    • PATH: Jalur ke perintah dan respons. Variabel lingkungan OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH menentukan jalur.
  3. Klik Run.

Untuk mempelajari lebih lanjut tabel eksternal, lihat artikel berikut:

Gabungkan tabel eksternal dengan data log Anda

Bagian ini mengilustrasikan cara menganalisis perintah multimodal di BigQuery. Solusi ini mengandalkan penggabungan tabel BigLake eksternal dengan data log Anda, yang memungkinkan Anda mengambil objek dari bucket Cloud Storage. Contoh ini menggabungkan URI untuk pesan input, gen_ai.input.messages. Anda juga dapat menggabungkan URI untuk pesan output, gen_ai.output.messages, atau petunjuk sistem, gen_ai.system.instructions.

Untuk menggabungkan tabel BigLake eksternal dengan data log, lakukan hal berikut:

  1. Di konsol Google Cloud , buka halaman BigQuery:

    Buka BigQuery Studio

    Anda juga dapat menemukan halaman ini dengan menggunakan kotak penelusuran.

  2. Di editor kueri, masukkan kueri berikut, yang menggabungkan data log dan tabel eksternal Anda di jalur ke entri bucket Cloud Storage:

    -- Query the linked dataset for completion logs.
    FROM PROJECT_ID.LINKED_DATASET_NAME._AllLogs
    |> WHERE
        log_name = 'projects/PROJECT_ID/logs/gen_ai.client.inference.operation.details'
        AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
    |> SELECT
      insert_id,
      timestamp,
      labels,
      trace,
      span_id,
      STRING(labels['gen_ai.input.messages_ref']) AS messages_ref_uri
    
    -- Join completion log entries with the external table.
    |> JOIN `PROJECT_ID.EXT_TABLE_DATASET_NAME.EXT_TABLE_NAME`
        ON messages_ref_uri = _FILE_NAME
    |> RENAME `index` AS message_idx
    
    -- Flatten.
    |> CROSS JOIN UNNEST(parts) AS part WITH OFFSET AS part_idx
    
    -- Print fields.
    |> SELECT
        insert_id,
        labels,
        timestamp,
        trace,
        span_id,
        role,
        part.content,
        part.uri,
        part.mime_type,
        TO_HEX(MD5(part.data)) AS data_md5_hex,
        part.id AS tool_id,
        part.name AS tool_name,
        part.arguments AS tool_args,
        part.response AS tool_response,
        message_idx,
        part_idx,
    |> ORDER BY timestamp, message_idx, part_idx;
    |> LIMIT 10;
    

    Ganti yang berikut sebelum Anda menjalankan kueri:

    • PROJECT_ID: ID project.
    • LINKED_DATASET_NAME: Nama set data tertaut.
    • EXT_TABLE_DATASET_NAME: Nama set data untuk tabel BigLake eksternal.
    • EXT_TABLE_NAME: Nama tabel BigLake eksternal.
  3. Opsional: Kueri sebelumnya memfilter menurut nama log dan stempel waktu. Jika Anda juga ingin memfilter menurut ID aktivitas tertentu, tambahkan pernyataan berikut ke klausa WHERE:

    AND trace = 'projects/PROJECT_ID/traces/TRACE_ID'
    

    Pada ekspresi sebelumnya, ganti TRACE_ID dengan string heksadesimal 16 byte yang berisi ID rekaman aktivitas.

Menggunakan fungsi BigQuery ML

Anda dapat menggunakan fungsi BigQuery ML seperti AI.GENERATE pada perintah dan respons yang disimpan di bucket Cloud Storage Anda.

Misalnya, kueri berikut menggabungkan entri log penyelesaian dengan tabel eksternal, meratakan, dan memfilter hasil gabungan. Selanjutnya, perintah menjalankan AI.GENERATE untuk menganalisis apakah entri berisi gambar dan untuk membuat ringkasan setiap entri:

-- Query the linked dataset for completion logs.
FROM PROJECT_ID.LINKED_DATASET_NAME._AllLogs
|> WHERE
    log_name = 'projects/PROJECT_ID/logs/gen_ai.client.inference.operation.details'
    AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
|> SELECT
  insert_id,
  timestamp,
  labels,
  trace,
  span_id,
  STRING(labels['gen_ai.input.messages_ref']) AS messages_ref_uri

-- Join completion log entries with the external table.
|> JOIN `PROJECT_ID.EXT_TABLE_DATASET_NAME.EXT_TABLE_NAME`
    ON messages_ref_uri = _FILE_NAME
|> RENAME `index` AS message_idx

-- Flatten.
|> CROSS JOIN UNNEST(parts) AS part WITH OFFSET AS part_idx
|> WHERE part.uri IS NOT NULL AND part.uri LIKE 'gs://%'
|> LIMIT 10

-- Use natural language to search for images, and then summarize the entry.
|> EXTEND
    AI.GENERATE(
      (
        'Describe the attachment in one sentence and whether the image contains a diagram.',
        OBJ.FETCH_METADATA(OBJ.MAKE_REF(part.uri, 'CONNECTION_LOCATION.CONNECTION_ID'))),
      connection_id => 'CONNECTION_LOCATION.CONNECTION_ID',
      endpoint => 'gemini-2.5-flash-lite',
      output_schema => 'description STRING, is_match BOOLEAN') AS gemini_summary
|> SELECT insert_id, trace, span_id, timestamp, part_idx, part.uri, part.mime_type, gemini_summary
|> WHERE gemini_summary.is_match = TRUE
|> ORDER BY timestamp DESC

Ganti yang berikut sebelum Anda menjalankan kueri:

  • PROJECT_ID: ID project.
  • LINKED_DATASET_NAME: Nama set data tertaut.
  • EXT_TABLE_DATASET_NAME: Nama set data untuk tabel BigLake eksternal.
  • EXT_TABLE_NAME: Nama tabel BigLake eksternal.
  • CONNECTION_LOCATION: Lokasi CONNECTION_ID Anda.
  • CONNECTION_ID: ID koneksi.

Menjalankan evaluasi pada data respons perintah dengan Colaboratory

Anda dapat mengevaluasi perintah dan respons menggunakan Vertex AI SDK untuk Python.

Untuk menjalankan evaluasi menggunakan notebook Google Colaboratory, lakukan hal berikut:

  1. Untuk melihat contoh notebook, klik evaluating_observability_datasets.ipynb.

    GitHub akan terbuka dan menampilkan petunjuk penggunaan notebook.

  2. Pilih Open in Colab.

    Colaboratory akan terbuka dan menampilkan file evaluating_observability_datasets.ipynb.

  3. Di toolbar, klik Salin ke Drive.

    Colaboratory akan membuat salinan notebook, menyimpannya ke Drive Anda, lalu membuka salinan tersebut.

  4. Di salinan Anda, buka bagian berjudul Setel informasi project Google Cloud dan masukkan Google Cloud project ID dan lokasi yang didukung oleh Vertex AI. Misalnya, Anda dapat menyetel lokasi ke "us-central1".

  5. Buka bagian berjudul Load in Google Observability Gen AI datasets dan masukkan nilai untuk sumber berikut:

    • INPUT_SOURCE
    • OUTPUT_SOURCE
    • SYSTEM_SOURCE

    Anda dapat menemukan nilai untuk kolom ini menggunakan label gen_ai yang dilampirkan ke entri log Anda. Misalnya, untuk INPUT_SOURCE, nilainya mirip dengan berikut:

    'gs://STORAGE_BUCKET/PATH/REFERENCE_inputs.jsonl'
    

    Dalam ekspresi sebelumnya, kolom memiliki arti berikut:

    • STORAGE_BUCKET: Nama bucket Cloud Storage.
    • PATH: Jalur ke perintah dan respons.
    • REFERENCE: ID data di bucket Cloud Storage Anda.

    Untuk mengetahui informasi tentang cara menemukan nilai untuk sumber ini, lihat Menemukan semua entri log yang mereferensikan perintah dan respons.

  6. Di toolbar, klik Jalankan semua.