Set konteks adalah pengetahuan domain yang mendukung
QueryData.
Agen ini menentukan cara kerja logika bisnis Anda sebelum aplikasi ditayangkan, sehingga
QueryData dapat menjawab pertanyaan dalam bahasa alami dengan akurasi hampir 100% dan latensi online yang rendah.
Meskipun konteks domain dapat memiliki banyak bentuk, set konteks mendukung tiga jenis konteks khusus:
- Template kueri: Kueri SQL yang telah disetujui sebelumnya untuk pertanyaan bisnis umum.
- Aspek kueri: Filter modular, seperti "keluarga pemula" atau "pemandangan laut", yang dilampirkan secara dinamis ke template.
- Penelusuran nilai: Pencarian entity yang memetakan frasa pengguna ke nilai database yang tepat dan menyelesaikan ambiguitas.
Database berikut didukung:
- AlloyDB untuk PostgreSQL
- Cloud SQL untuk MySQL
- Cloud SQL untuk PostgreSQL
- Spanner
- Firestore dengan kompatibilitas MongoDB
- Bigtable
Apa yang dimaksud dengan set konteks
Anda menulis dan mengoptimalkan set konteks pada waktu desain menggunakan
agen rekayasa konteks.
Agen rekayasa konteks menjalankan tolok ukur emas representatif melalui
QueryData, memberi skor pada hasilnya, dan secara iteratif menyempurnakan
(hill-climb)
set konteks Anda. Kemudian, model ini akan memeriksa versi final terhadap set pengujian hold-out yang tidak terlihat untuk menghindari overfitting, dan otomatis mengupload set konteks keGoogle Cloud.
Menyandingkan database Anda dengan set konteks yang diseleksi memberikan dua manfaat produksi inti:
- Akurasi mendekati 100% yang digeneralisasi: Skema database mendeskripsikan tabel dan kolom, tetapi tidak dapat memberi tahu model jarak yang dianggap "dekat" atau rating yang membuat sekolah "bagus". Set konteks mendasarkan QueryData pada aturan bisnis terverifikasi organisasi Anda, sementara pola berparameter memungkinkan set konteks yang ringkas digeneralisasi di berbagai variasi frasa, kombinasi filter, dan nilai entity.
- Eksekusi online yang cepat dan latensi rendah: Rekayasa konteks memindahkan penalaran skema yang mahal secara offline ke waktu desain:
- Eksekusi yang cocok dengan konteks dengan kumpulan konteks: Eksekusi satu kali yang cepat melalui pencocokan template yang telah dikompilasi dan pencarian nilai yang diindeks.
- Sintesis zero-shot untuk kueri yang tidak terduga tanpa template: Memerlukan waktu 2 hingga 3 kali lebih lama karena model harus menjelajahi metadata skema dan menyintesis SQL saat runtime.
- Eksplorasi agentic terbuka menggunakan alat SQL mentah: Sering kali memerlukan waktu lebih dari 30 detik karena kueri uji coba multi-turn dan loop koreksi error.
Jenis konteks dalam set data konteks
Saat runtime, QueryData menggabungkan ketiga jenis konteks dalam satu penerusan. Misalnya, jika pengguna bertanya:
"Find me homes near good schools in Del Mar for a starter family with an ocean view"
QueryData menyelesaikan permintaan dalam empat langkah terkoordinasi:
- Template kueri menyediakan struktur kueri inti untuk "rumah di dekat sekolah bagus di
$1", yang menerapkan aturan bisnis untuk jarak (dalam radius 2 mil) dan peringkat sekolah (5 atau lebih baik). - Facet kueri memasukkan filter modular untuk "keluarga pemula" (3 hingga 4 kamar tidur, 2 kamar mandi atau lebih) dan "pemandangan laut" (penelusuran kemiripan vektor).
- Penelusuran nilai menemukan
'Del Mar'di kolomcities.city_namedan memverifikasi jenis konsepnya. - Penjelasan intent digabungkan menjadi satu penjelasan bersertifikasi yang ditampilkan bersama hasil kueri: "Rumah di Del Mar dalam radius 2 mil dari sekolah peringkat 5 atau lebih baik, dengan 3 hingga 4 kamar tidur dan pemandangan laut".
Template kueri
Template kueri adalah kumpulan pertanyaan bahasa alami representatif yang diseleksi dengan kueri SQL yang sesuai. Penjelasan intent juga menyertakan penjelasan untuk memberikan alasan yang jelas tentang cara pertanyaan ditafsirkan.
Misalnya, jika pengguna bertanya kepada aplikasi real estat, "Carikan rumah di dekat sekolah bagus di Del Mar", skema database saja tidak menentukan jarak yang dianggap "dekat", rating yang membuat sekolah "bagus", atau cara memberi peringkat properti yang cocok. Template kueri menangkap interpretasi bisnis yang tepat, seperti properti dalam radius 2 mil dari sekolah berperingkat 5 atau lebih baik yang diurutkan berdasarkan skor tertimbang peringkat dan kedekatan, serta menggeneralisasikannya ke kota mana pun.
Komponen utama template kueri adalah sebagai berikut:
- Contoh pertanyaan bahasa alami: Pertanyaan representatif yang diajukan dalam bahasa Inggris biasa, seperti "Find me homes near good schools in Del Mar".
- Contoh kueri SQL: Kueri SQL terverifikasi yang menjawab pertanyaan sesuai dengan aturan bisnis Anda.
- Pola pertanyaan umum: Pola yang dibuat otomatis dengan nilai tertentu yang diganti dengan deskripsi umum, seperti "Temukan rumah di dekat sekolah bagus di kota tertentu", yang digunakan untuk mencocokkan pertanyaan yang masuk di berbagai variasi frasa.
- Penjelasan intent: Penjelasan bersertifikasi dan mudah dipahami tentang aturan bisnis
yang diterapkan oleh kueri, seperti "Temukan rumah di
$1dalam radius 2 mil dari sekolah dengan peringkat minimal 5". - Kueri SQL berparameter: Kueri SQL yang dapat dieksekusi
yang sesuai dengan penjelasan intent, menggunakan parameter seperti
$1.
Facet kueri
Facet kueri adalah kumpulan kondisi bahasa alami representatif yang diseleksi dengan predikat SQL yang sesuai. Faset mengelola pemfilteran dan kondisi, yang memungkinkan template kueri melakukan penelusuran berfaset tanpa memerlukan template terpisah untuk setiap kombinasi filter.
Misalnya, pengguna dapat memperluas "Find me homes near good schools in Del Mar" (Carikan rumah di dekat sekolah bagus di Del Mar) dengan kondisi tambahan:
- "...untuk keluarga pemula", yang dipetakan ke filter SQL terstruktur
seperti
properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0. - "...dengan pemandangan laut", yang menggunakan operator AI database seperti
ai.ifatau penelusuran kemiripan vektor (<=>) di seluruh kolom tidak terstruktur sepertilisting_description,listing_image_embeddings, dancustomer_reviews.
Komponen utama faset kueri adalah sebagai berikut:
- Cuplikan SQL: Kondisi filter SQL yang dapat digunakan kembali, seperti
properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0. - Pola kondisi umum: Pola bahasa alami yang cocok dengan faset, seperti "Cocok untuk keluarga pemula".
- Penjelasan intent: Penjelasan bersertifikasi tentang kondisi filter, yang ditampilkan sebagai bagian dari keseluruhan alasan jawaban.
- Cuplikan SQL berparameter: Fragmen SQL yang dapat dieksekusi yang sesuai dengan penjelasan intent.
Kueri penelusuran nilai
Kueri penelusuran nilai
adalah kueri yang ditentukan developer yang menggunakan fungsi pencocokan, seperti pencocokan persis,
kemiripan trigram fuzzy, atau penelusuran vektor semantik, untuk menemukan nilai dan
konteksnya dalam database. QueryData menggunakan penautan nilai pada hasil ini untuk
mengidentifikasi
tabel dan kolom mana yang
berisi nilai yang cocok, memahami jenis konsep nilai, memperbaiki
kesalahan ejaan, dan mendeteksi ambiguitas sebelum menjalankan SQL.
Misalnya, jika pengguna meminta "properti yang dijual di Westwod
dalam sebulan terakhir" kepada aplikasi real estate, model khusus skema mungkin memfilter berdasarkan
`WHERE name = 'Westwod'`
dan tidak menampilkan hasil. Kueri penelusuran nilai menggunakan pencocokan fuzzy untuk mengatasi
kesalahan ejaan "Westwod" menjadi nilai database 'Westwood'. Selain itu, jika
'Westwood' ada di beberapa jenis konsep dalam database, seperti
City, Municipality, dan Brokerage, penautan nilai akan mendeteksi ambiguitas sehingga
QueryData dapat meminta pengguna untuk mengklarifikasi konsep yang mereka maksud, bukan
menebak.
Komponen utama kueri penelusuran nilai adalah sebagai berikut:
- Kueri pencarian: Kueri SQL berparameter yang menggunakan
pencocokan persis, kesamaan trigram (
pg_trgm), atau penelusuran vektor untuk menemukan nilai dalam kolom. - Jenis konsep: Label semantik, seperti
City,Municipality, atauBrokerage, yang menentukan apa yang diwakili oleh nilai dan kolom mana yang akan difilter. - Deskripsi: Deskripsi singkat tentang logika pencarian.
Langkah berikutnya
- Pelajari cara membangun set konteks menggunakan agen rekayasa konteks.
- Pelajari cara membuat atau menghapus set konteks di AlloyDB Studio.