Menguji set konteks

Dokumen ini menjelaskan cara menguji set konteks dan memperbarui file set konteks. Anda dapat menguji kemampuan set konteks 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 Cloud SQL Studio

Menguji set konteks

Untuk menguji set konteks, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Cloud SQL.

    Buka Cloud SQL

  2. Pilih instance dari daftar.

  3. Di menu navigasi, klik Cloud SQL Studio.

  4. Login ke Studio menggunakan autentikasi Identity and Access Management.

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

  6. Klik Uji set konteks.

  7. Di editor kueri, klik Generate SQL untuk membuka panel Help me code.

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

  9. Tinjau akurasi kueri SQL.

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 memperbarui set konteks, lakukan langkah-langkah berikut:

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

Setelah merasa puas dengan akurasi respons Anda, Anda dapat menggunakan endpoint QueryData untuk menghubungkan aplikasi Anda 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 Cloud SQL.

    Buka Cloud SQL

  2. Pilih instance dari daftar.

  3. Di menu navigasi, klik Cloud SQL Studio.

  4. Login ke Studio menggunakan autentikasi Identity and Access Management.

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

  6. Klik Edit set konteks.

  7. Catat ID konteks di ID set konteks. Format ID set konteks mirip dengan projects/data-agents-project/locations/us-east1/contextSets/bdf_pg_all_templates.

Menghubungkan set konteks ke aplikasi

Tetapkan ID set konteks dalam panggilan metode QueryData untuk menyediakan konteks yang dibuat untuk sumber data database seperti AlloyDB, Spanner, Cloud SQL, dan Cloud SQL untuk PostgreSQL. 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 dibuat

Contoh berikut menunjukkan permintaan QueryData menggunakan sumber data database cloud_sql_reference. Kolom agent_context_reference.context_set_id digunakan untuk menautkan ke konteks yang ditulis sebelumnya dan disimpan dalam database.

{
  "parent": "projects/context-set-project/locations/us-central1",
  "prompt": "How many accounts in the Prague region are eligible for loans? A3 contains the data of region.",
  "context": {
    "datasource_references": [
      {
        "cloud_sql_reference": {
          "database_reference": {
            "engine": "MYSQL"
            "project_id": "context-set-project",
            "region": "us-central1",
            "instance_id": "context-set-primary",
            "database_id": "financial"
          },
          "agent_context_reference": {
            "context_set_id": "projects/context-set-project/locations/us-east1/contextSets/bdf_pg_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 bahasa alami dari pengguna akhir.
  • context: Berisi informasi tentang sumber data.
    • datasource_references: Menentukan jenis sumber data.
      • cloud_sql_reference: Diperlukan saat membuat kueri database. Kolom ini berubah berdasarkan database yang Anda kueri.
        • database_reference: Menentukan informasi terkait instance database Anda.
          • engine: Mesin database. Setel ke MYSQL untuk instance Cloud SQL.
          • project_id: Project ID instance database.
          • region: Region instance Cloud SQL.
          • instance_id: ID instance dari instance Cloud SQL.
          • database_id: ID database.
        • agent_context_reference: Menautkan ke konteks yang dibuat dalam database.
          • context_set_id: ID set konteks lengkap dari konteks yang disimpan dalam database. Contoh, projects/context-set-project/locations/us-east1/contextSets/bdf_gsql_gemini_all_templates.
  • generationOptions: Mengonfigurasi jenis output yang akan dibuat.
    • generate_query_result: Tetapkan ke benar untuk membuat dan menampilkan hasil kueri.
    • generate_natural_language_answer: Opsional. Jika disetel ke benar (true), akan menghasilkan jawaban dalam bahasa alami.
    • generate_explanation: Opsional. Jika disetel ke benar (true), akan membuat penjelasan kueri SQL.
    • generate_disambiguation_question: Opsional. Jika disetel ke benar (true), akan membuat pertanyaan disambiguasi jika kueri ambigu.

Contoh respons QueryData

Berikut adalah contoh respons yang berhasil dari panggilan QueryData:

{
  "generated_query": "-- Count the number of accounts in Prague that are eligible for loans\nSELECT\n  COUNT(DISTINCT \"loans\".\"account_id\")\nFROM \"loans\"\nJOIN \"district\" -- Join based on district ID\n  ON \"loans\".\"district_id\" = \"district\".\"district_id\"\nWHERE\n  \"district\".\"A3\" = 'Prague'; -- Filter for the Prague region",
  "intent_explanation": "The question asks for the number of accounts eligible for loans in the Prague region. I need to join the `district` table with the `loans` table to filter by region and count the distinct accounts. The `A3` column in the `district` table contains the region information, and I'll filter for 'Prague'. The `loans` table contains information about loans, including the `account_id` and `district_id`. I will join these two tables on their respective district IDs.",
  "query_result": {
    "columns": [
      {
        "name": "count"
      }
    ],
    "rows": [
      {
        "values": [
          {
            "value": "2"
          }
        ]
      }
    ],
    "total_row_count": 1
  },
  "natural_language_answer": "There are 2 accounts in Prague that are eligible for loans."
}

Langkah berikutnya