Ringkasan set konteks

QueryData memungkinkan Anda berinteraksi dengan data di database menggunakan bahasa percakapan dan membuat agen data. QueryData menulis kueri untuk database Anda menggunakan kumpulan konteks, yang merupakan kumpulan kode yang berisi informasi unik tentang database Anda. Konteks ini memungkinkan QueryData menerjemahkan pertanyaan bahasa alami menjadi kueri yang akurat untuk kasus penggunaan target Anda.

Kapan menggunakan QueryData

QueryData ideal untuk aplikasi seperti:

  • Otomatisasi layanan pelanggan: Menangani pertanyaan bervolume tinggi seperti "Di mana pesanan saya?" atau "Berapa saldo saya saat ini?".
  • Asisten belanja e-commerce: Membantu pengguna menavigasi katalog produk besar dengan kueri bahasa alami seperti "Tampilkan sepatu lari di bawah $100."
  • Alat operasi lapangan: Memungkinkan karyawan seluler melakukan kueri tingkat inventaris, ketersediaan suku cadang, atau detail tiket layanan secara real-time.

Cara kerja QueryData

Untuk membuat aplikasi agen yang efektif, QueryData harus memahami organisasi data dan logika bisnis Anda. Anda memberikan informasi ini dalam bentuk kumpulan konteks.

Anda menentukan konteks dalam file yang berisi objek JSON untuk setiap jenis konteks. Anda membuat file konteks ini dengan bantuan Gemini CLI. Kemudian, Anda mengupload file konteks ke kumpulan konteks yang Anda buat di Cloud de Confiance by S3NS konsol. Proses ini memungkinkan QueryData mempelajari skema spesifik database dan logika bisnis aplikasi.

File konteks terlihat mirip dengan berikut:

{
  "templates": [
    {
      "nl_query": "Count Prague loan accounts",
      "sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" ='Prague'",
      "intent": "How many accounts associated with loans are located in the Prague region?",
      "manifest": "How many accounts associated with loans are located in a given city?",
      "parameterized": {
        "parameterized_intent": "How many accounts associated with loans are located in $1",
        "parameterized_sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = $1"
      }
    }
  ],
  "facets": [
    {
      "sql_snippet": "T.\"A11\" BETWEEN 6000 AND 10000",
      "intent": "Average salary between 6000 and 10000",
      "manifest": "Average salary between a given number and a given number",
      "parameterized": {
         "parameterized_intent": "Average salary between $1 and $2",
         "parameterized_sql_snippet": "T.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ],
  "value_searches": [
    {
      "query": "SELECT $value as value, 'accounts.account_type' as columns, 'Account Type' as concept_type, 0 as distance, '{}'::text as context FROM \"accounts\" T WHERE T.\"account_type\" = $value",
      "concept_type": "Account Type",
      "description": "Exact match for account types"
    }
   ]
}

Saat pengguna akhir mengajukan pertanyaan bahasa alami, QueryData memprioritaskan pencocokan pertanyaan dengan template dan faset yang telah diaudit oleh developer yang mengelola konteks. Setelah QueryData mengidentifikasi kecocokan, QueryData akan menggunakan template kueri dan faset yang dipilih untuk mensintesis kueri database. Logika kumpulan konteks kemudian menjalankan kueri tersebut terhadap database untuk menampilkan hasil yang akurat.

Langkah yang direkomendasikan adalah menentukan penelusuran nilai dalam konteks Anda. Penelusuran nilai memungkinkan agen memetakan frasa nilai ke nilai tertentu yang disimpan di kolom database Anda. Hal ini akan meng-grounding LLM dalam data aktual Anda, sehingga membantu LLM mengatasi ambiguitas, seperti apakah istilah merujuk ke nama District atau City.

Jika agen gagal menemukan template yang cocok, agen akan menggunakan penelusuran nilai untuk memetakan frasa bahasa alami ke nilai tertentu yang disimpan di kolom database Anda. Hal ini akan meng-grounding LLM dalam data aktual Anda, sehingga membantu LLM mengatasi ambiguitas, seperti apakah istilah merujuk ke District, Name, atau City.

Endpoint QueryData di Conversational Analytics API adalah alat agen yang memungkinkan integrasi terprogram dengan aplikasi Anda untuk mengaktifkan pembuatan kueri SQL dari pertanyaan bahasa alami. Dalam aplikasi percakapan, endpoint QueryData harus digunakan dalam framework yang mengelola histori dan konteks percakapan.Untuk menerapkan resolusi entity sekaligus mempertahankan keamanan tingkat baris yang ketat, Anda dapat menggunakan tampilan aman yang diberi parameter (PSV). Untuk mengetahui informasi selengkapnya, lihat Mengamankan dan mengontrol akses ke data aplikasi menggunakan tampilan aman yang diberi parameter.

Langkah berikutnya