Mengelola biaya BigQuery untuk agen Conversational Analytics API

Halaman ini menjelaskan cara memantau dan mengelola biaya BigQuery untuk agen Conversational Analytics API Anda, yang menimbulkan biaya dengan menjalankan kueri terhadap data BigQuery Anda. Anda dapat menggunakan metode berikut untuk mengontrol pengeluaran dan mencegah biaya yang tidak terduga:

Sebelum memulai

Sebelum menerapkan kontrol biaya yang dijelaskan di halaman ini, Anda harus memenuhi persyaratan berikut:

  • Anda harus memiliki project Google Cloud dengan penagihan diaktifkan.
  • Anda harus memiliki izin Identity and Access Management (IAM) yang diperlukan untuk mengelola kuota dan penagihan untuk project Google Cloud Anda.

Menetapkan kuota untuk project dan pengguna

Anda dapat menetapkan batas pembelanjaan untuk Google Cloud project atau untuk setiap pengguna dengan menerapkan kuota BigQuery standar. Batas ini membantu Anda mengontrol biaya secara keseluruhan dan mencegah pengguna tertentu membelanjakan terlalu banyak.

Untuk agen yang mungkin menimbulkan biaya tinggi, seperti agen yang dibangun di tabel yang sangat besar atau tidak dipartisi, praktik yang direkomendasikan adalah mengisolasi agen terlebih dahulu dalam project khusus miliknya. Kemudian, Anda dapat menerapkan kuota tingkat project untuk membatasi biaya harian maksimum project, kuota tingkat pengguna untuk memastikan penggunaan yang adil di antara pengguna, atau kuota tingkat project dan tingkat pengguna.

Menyiapkan project khusus untuk agen Anda

Untuk menyiapkan project khusus bagi agen atau agen Conversational Analytics API Anda, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud , buat Google Cloud projectbaru. Project ini akan dikhususkan untuk agen Anda.
  2. Pastikan penagihan diaktifkan untuk project baru.
  3. Konfirmasi bahwa agen dikonfigurasi untuk menggunakan project baru ini untuk penagihan. Saat mengonfigurasi agen, Anda harus menentukan project ID project baru ini.

Menetapkan kuota untuk project

Setelah menyiapkan project Google Cloud khusus, Anda dapat menerapkan kuota untuk mengontrol biaya seluruh project. Untuk menetapkan kuota tingkat project, ikuti langkah-langkah berikut:

  1. Di Google Cloud project untuk agen Anda, buka IAM & Admin > Quotas.

    Buka Kuota

  2. Filter layanan BigQuery API, lalu pilih kuota Penggunaan kueri per hari.

  3. Edit kuota ke batas harian yang Anda pilih (misalnya, 10 TiB). Batas ini menciptakan penghentian yang ketat yang mencegah project melampaui biaya harian yang ditentukan.

Menetapkan kuota untuk pengguna

Untuk mencegah pengguna tertentu menghasilkan tagihan besar, Anda dapat menetapkan kuota per pengguna dengan mengikuti langkah-langkah berikut:

  1. Di Google Cloud project untuk agen Anda, buka IAM & Admin > Quotas.

    Buka Kuota

  2. Filter layanan BigQuery API dan pilih kuota Penggunaan kueri per hari per pengguna.

  3. Edit kuota ke batas harian yang Anda pilih (misalnya, 1 TiB per pengguna per hari). Batas ini memastikan bahwa tidak ada satu pengguna pun yang dapat menggunakan resource dalam jumlah yang berlebihan.

Membatasi biaya untuk setiap kueri

Untuk mencegah kueri pengguna tertentu menghasilkan tagihan besar yang tidak terduga, Anda dapat menetapkan batas biaya per kueri dengan mengonfigurasi parameter big_query_max_billed_bytes pada agen.

Sebelum menjalankan kueri apa pun, agen akan melakukan uji coba untuk memperkirakan biaya kueri. Jika perkiraan byte yang akan dipindai melebihi nilai big_query_max_billed_bytes, agen akan memblokir kueri dan mengirimkan pesan error kepada pengguna.

Anda dapat menetapkan parameter big_query_max_billed_bytes dalam kolom published_context saat membuat atau mengonfigurasi agen dengan HTTP atau dengan Python SDK. Contoh berikut, yang ditampilkan dalam format textproto, mengilustrasikan struktur permintaan yang mengonfigurasi batas 100 MB untuk agen yang menjawab pertanyaan tentang pohon jalanan San Francisco:

parent: "projects/sample-project-name/locations/global"
data_agent_id: "sample-agent-id"
data_agent {
  name: "projects/sample-project-name/locations/global/dataAgents/sample-agent-id"
  data_analytics_agent {
    published_context {
      system_instruction: "This agent provides information about street trees in San Francisco, including their species, location, and planting date."
      options {
        datasource {
          big_query_max_billed_bytes {
            value: 104857600 #100MB
          }
        }
      }
      datasource_references {
        bq {
          table_references {
            project_id: "bigquery-public-data"
            dataset_id: "san_francisco"
            table_id: "street_trees"
          }
        }
      }
    }
  }
}

Dalam contoh ini, parameter big_query_max_billed_bytes ditetapkan ke 104857600 byte (100 MB). Nilai ini menetapkan batas untuk kueri apa pun yang dijalankan oleh agen sample-agent-id pada tabel BigQuery bigquery-public-data.san_francisco.street_trees.

Untuk contoh interaktif tentang cara membuat dan mengonfigurasi agen, lihat notebook Colaboratory. Untuk mengetahui informasi mendetail tentang kolom API, lihat referensi API.

Batasan

Perhatikan batasan berikut saat Anda mengelola biaya untuk agen Conversational Analytics API:

  • Alat pengelolaan biaya ini hanya berlaku untuk project yang menggunakan penagihan sesuai permintaan dan tidak berlaku untuk project yang menggunakan pemesanan slot.
  • Menetapkan kuota untuk masing-masing agen tidak didukung. Seperti yang dijelaskan dalam Menetapkan kuota untuk project dan pengguna, praktik yang direkomendasikan adalah mengisolasi agen dalam projectnya sendiri, lalu menerapkan kuota level project atau per pengguna ke project tersebut.
  • Pelacakan biaya untuk setiap agen menggunakan label BigQuery tidak didukung.