Menguji QueryData di Bigtable Studio

Dokumen ini menjelaskan cara menguji QueryData dan memperbarui file set konteks. Anda dapat menguji kemampuan QueryData untuk membuat kueri SQL dari pertanyaan bahasa alami. Jika kueri yang dihasilkan tidak akurat, Anda dapat memperbarui file set konteks.

Untuk mempelajari set konteks, lihat Ringkasan set konteks.

Sebelum memulai

Pastikan set konteks sudah dibuat dan file set konteks diupload ke agen QueryData. Untuk mengetahui informasi selengkapnya, lihat Mengelola set konteks di Bigtable Studio.

Untuk mendownload, memperbarui, dan mengupload file set konteks, pastikan pengguna IAM memiliki peran Dataplex Catalog Editor (roles/dataplex.catalogEditor) atau Dataplex Catalog Admin (roles/dataplex.catalogAdmin) di project. Untuk mengetahui informasi selengkapnya, lihat Izin set konteks.

Menguji QueryData

Untuk menguji QueryData, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Bigtable.

    Buka Bigtable

  2. Pilih instance dari daftar.

  3. Di menu navigasi, klik Bigtable Studio.

  4. Di panel Explorer, klik View actions di samping set konteks yang Anda gunakan.

  5. Klik Test context set.

  6. Di editor kueri, klik Generate SQL using QueryData with: CONTEXT_SET_NAME untuk membuka panel Bantu buat kode.

  7. Masukkan pertanyaan bahasa alami di editor untuk membuat kueri SQL, lalu klik Generate.

  8. Tinjau kueri SQL untuk memastikan akurasinya. Klik Insert untuk menambahkan kueri ke editor.

Mendownload dan memperbarui set konteks

Jika Anda tidak puas dengan kueri SQL yang dihasilkan untuk pertanyaan bahasa alami, download file set konteks yang ada. Kemudian, Anda dapat meninjau dan memperbarui template kueri, lalu mengupload ulang file konteks yang telah diperbarui ke agen.

Untuk mendownload dan mengupdate set konteks, lakukan langkah-langkah berikut:

  1. Di panel Explorer, klik View actions di samping set konteks yang Anda gunakan.
  2. Klik Download context file.
  3. Ikuti langkah-langkah di bagian Membangun set konteks menggunakan agen rekayasa konteks untuk memperbarui konteks dengan pasangan kueri tambahan.
  4. Di panel Explorer, klik View actions di samping set konteks yang Anda gunakan.
  5. Klik Edit context set.
  6. Klik Browse di bagian Upload context file, lalu pilih file set konteks yang telah diperbarui.
  7. Klik Save untuk memperbarui set konteks.

Setelah Anda puas dengan akurasi respons, Anda dapat menggunakan endpoint QueryData untuk menghubungkan aplikasi ke set konteks.

Menemukan ID set konteks

Untuk menghubungkan aplikasi data ke agen QueryData, Anda memerlukan ID set konteks.

  1. Di konsol Google Cloud , buka halaman Bigtable.

    Buka Bigtable

  2. Pilih instance dari daftar.

  3. Di menu navigasi, klik Bigtable Studio.

  4. Di panel Explorer, klik View actions di samping set konteks yang Anda gunakan.

  5. Klik Edit context set.

  6. Catat ID konteks di ID set konteks. Format ID set konteks mirip dengan projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.

Menghubungkan QueryData ke aplikasi

Tetapkan ID set konteks dalam panggilan metode QueryData untuk memberikan konteks yang dibuat untuk sumber data database seperti AlloyDB, Spanner, Cloud SQL, Cloud SQL untuk PostgreSQL, Firestore, dan Bigtable. Untuk mengetahui informasi selengkapnya, lihat Menentukan konteks agen data untuk sumber data database.

Setelah menguji set konteks, Anda dapat mereferensikan sumber data database dalam panggilan QueryData.

Contoh permintaan QueryData dengan konteks yang ditulis

Contoh berikut menunjukkan permintaan QueryData yang menggunakan sumber data database bigtable_reference. Kolom agent_context_reference.context_set_id digunakan untuk menautkan ke set konteks yang berisi konteks yang Anda buat.

POST https://geminidataanalytics.googleapis.com/v1beta/projects/context-set-project/locations/us-central1:queryData
{
  "parent": "projects/context-set-project/locations/us-central1",
  "prompt": "List the names and ratings of all hotels located in London.",
  "context": {
    "datasource_references": {
      "bigtable_reference": {
        "database_reference": {
          "project_id": "context-set-project",
          "instance_id": "evalbench"
        },
        "agent_context_reference": {
          "context_set_id": "projects/context-set-project/locations/us-central1/contextSets/hotels_bigtable_all_templates"
        }
      }
    }
  },
  "generation_options": {
    "generate_query_result": true,
    "generate_natural_language_answer": true,
    "generate_disambiguation_question": true,
    "generate_explanation": true
  }
}

Isi permintaan berisi kolom berikut:

  • prompt: Pertanyaan dalam bahasa alami dari pengguna akhir.
  • context: Berisi informasi tentang sumber data.
    • datasource_references: Menentukan jenis sumber data.
      • bigtable_reference: Diperlukan saat membuat kueri database. Kolom ini berubah berdasarkan database yang Anda kueri.
        • database_reference: Menentukan informasi yang terkait dengan instance Bigtable Anda.
          • project_id: Project ID tempat instance Bigtable berada.
          • instance_id: ID instance Bigtable.
          • table_ids: Opsional. ID tabel untuk mencakup agen. Jika tidak ditetapkan, semua tabel dalam instance akan disertakan.
        • agent_context_reference: Link ke konteks yang ditulis.
          • context_set_id: ID set konteks lengkap dari set konteks yang berisi konteks yang Anda buat. Contoh, projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
  • generation_options: Mengonfigurasi jenis output yang akan dibuat.
    • generate_query_result: Tetapkan ke true untuk membuat dan menampilkan hasil kueri.
    • generate_natural_language_answer: Opsional. Jika ditetapkan ke true, akan menghasilkan jawaban dalam bahasa alami.
    • generate_explanation: Opsional. Jika ditetapkan ke true, akan menghasilkan penjelasan kueri SQL.
    • generate_disambiguation_question: Opsional. Jika ditetapkan ke true, akan menghasilkan pertanyaan disambiguasi jika kueri bersifat ambigu.

Contoh respons QueryData

Berikut adalah contoh respons yang berhasil dari panggilan QueryData:

{
  "generatedQuery": "SELECT COUNT(*) FROM `hotels` WHERE CAST(cf['location'] AS STRING) = 'London'",
  "intentExplanation": "count of hotels in London",
  "queryResult": {
    "columns": [
      {
        "name": "$col1",
        "type": "int64_type:{}"
      }
    ],
    "rows": [
      {
        "values": [
          {
            "value": "2"
          }
        ]
      }
    ],
    "totalRowCount": "1"
  },
  "naturalLanguageAnswer": "Based on the data, there are 2 hotels located in London."
}

Langkah berikutnya