Memfilter dengan natural language understanding

Halaman ini menjelaskan cara menerapkan pemahaman bahasa alami untuk membuat filter secara otomatis untuk kueri penelusuran, sehingga meningkatkan kualitas hasil yang ditampilkan.

Anda dapat menggunakan fitur ini dengan aplikasi penelusuran yang terhubung ke penyimpanan data terstruktur.

Tentang pemahaman kueri bahasa alami

Jika Anda memiliki aplikasi penelusuran umum dengan data terstruktur, kueri bahasa alami pengguna dapat diformat ulang sebagai kueri yang difilter. Hal ini dapat menghasilkan hasil penelusuran yang lebih berkualitas daripada menelusuri kata-kata dalam string kueri.

Menggunakan pemahaman kueri bahasa alami lebih mudah dan lebih fleksibel daripada menulis ekspresi filter Anda sendiri. Untuk informasi tentang cara menulis ekspresi filter, lihat Memfilter penelusuran umum untuk data terstruktur atau tidak terstruktur.

Fitur ini paling baik dijelaskan melalui contoh:

Contoh: Ekstraksi kolom dari kueri

Fitur pemahaman kueri bahasa alami ini dijelaskan melalui contoh penelusuran hotel.

Ambil kueri berikut yang dibuat ke penyimpanan data terstruktur untuk situs hotel: "Temukan hotel yang cocok untuk keluarga dengan minimal empat bintang yang harganya kurang dari 300 per malam, mengizinkan saya membawa, dan memiliki Wi-Fi gratis".

Tanpa pemahaman kueri bahasa alami, aplikasi penelusuran akan mencari dokumen yang berisi kata-kata dalam kueri.

Dengan pemahaman kueri bahasa alami dan data yang terstruktur dengan tepat, penelusuran menjadi lebih efektif dengan mengganti beberapa bahasa alami dalam kueri dengan filter. Jika data terstruktur memiliki kolom untuk star_rating (angka), price (angka), dan amenities (string), kueri dapat ditulis ulang sebagai filter berikut ditambah kueri residual:

  • Filter yang diekstrak dari kueri bahasa alami:

    {
        "star_rating": ≥4,
        "price": ≤300,
        "amenities": "Wifi", "Pets Allowed"
    }
    
  • Kueri residu, dirumuskan ulang setelah filter diekstrak:

    family-friendly

Contoh: Dengan filter geolokasi

Contoh ini mirip dengan contoh sebelumnya, kecuali menyertakan filter geolocation, yang merupakan jenis filter khusus yang diekstrak. Vertex AI Search memiliki kemampuan untuk mengenali lokasi dalam kueri dan membuat filter kedekatan untuk lokasi tersebut.

Ambil kueri berikut yang dibuat ke situs bisnis di seluruh negara bagian: "Temukan hotel yang chic dan bergaya dengan minimal 4 bintang yang ada di San Francisco."

Dengan pemahaman kueri bahasa alami dan filter geolokasi, penelusuran dirumuskan ulang sebagai filter dan kueri residual:

  • Filter yang diekstrak dari kueri bahasa alami, untuk rating setidaknya 4 bintang dan dalam radius 10 km dari San Francisco:

    {
        "star_rating": ≥4,
        "location": GEO_DISTANCE(\"San Francisco, CA\", 10000)
    }
    

    Dalam contoh ini, GEO_DISTANCE adalah alamat, tetapi dalam kueri lain, alamat tersebut mungkin ditulis sebagai lintang dan bujur, meskipun kueri asli berisi alamat.

  • Kueri residu, dirumuskan ulang setelah filter diekstrak:

    chic and stylish in San Francisco

    Meskipun filter geolokasi dibuat, nama tempat tetap ada dalam kueri residual. Hal ini berbeda dengan filter lainnya, seperti star_rating.

Batasan

Batasan berikut berlaku untuk pemahaman kueri bahasa alami:

  • Pemahaman kueri bahasa alami tidak dapat diterapkan ke aplikasi penelusuran campuran. Anda akan mendapatkan error jika mencoba menggunakan pemahaman kueri bahasa alami dengan aplikasi penelusuran gabungan.

  • Pemahaman kueri bahasa alami hanya berfungsi untuk aplikasi penelusuran umum yang menggunakan penyimpanan data terstruktur.

  • Penggunaan pemahaman kueri bahasa alami akan meningkatkan latensi, sehingga Anda dapat memilih untuk tidak menggunakannya jika latensi menjadi masalah.

  • Untuk geolokasi, lokasi harus dijelaskan secara eksplisit. Anda tidak dapat menggunakan lokasi seperti "di dekat saya" atau "rumah".

  • Radius untuk geolokasi adalah 10 km dan tidak dapat dikonfigurasi.

Sebelum memulai

Sebelum mulai menggunakan pemahaman kueri bahasa alami, Anda harus mengaktifkannya untuk penyimpanan data terstruktur yang terhubung ke aplikasi yang ingin Anda gunakan.

Untuk mengaktifkan pemahaman kueri bahasa alami, ikuti langkah-langkah berikut:

REST

  1. Temukan ID penyimpanan data Anda. Jika Anda sudah memiliki ID penyimpanan data, lanjutkan ke langkah berikutnya.

    1. Di konsol Google Cloud, buka halaman Agent Builder dan di menu navigasi, klik Data Stores.

      Buka halaman Data Store

    2. Klik nama penyimpanan data Anda.

    3. Di halaman Data untuk penyimpanan data Anda, dapatkan ID penyimpanan data.

  2. Jalankan perintah curl berikut:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID?update_mask=natural_language_query_understanding_config.mode" \
    -d '{
          "naturalLanguageQueryUnderstandingConfig": {
            "mode": "ENABLED"
          }
        }'
    
    • PROJECT_ID: ID project Google Cloud Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
  3. Ulangi langkah 1 dan 2 untuk setiap penyimpanan data.

  4. Tunggu sekitar 24 jam.

    Jika Anda mencoba menggunakan pemahaman kueri natural language sebelum penyimpanan data siap, respons yang Anda dapatkan sama seperti jika filterExtractionCondition ditetapkan ke DISABLED.

Penelusuran, mengonversi kueri natural language menjadi filter

Untuk menelusuri kueri dalam bahasa alami dan mendapatkan hasil yang dioptimalkan untuk kueri bahasa alami, lakukan hal berikut:

REST

  1. Jalankan perintah curl berikut, yang memanggil metode search:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED"
            }
          }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • APP_ID: ID aplikasi Vertex AI Search yang ingin Anda buat kuerinya. Aplikasi harus terhubung ke penyimpanan data yang berisi data terstruktur. Aplikasi tidak boleh berupa aplikasi penelusuran gabungan.
    • QUERY: kueri ditulis dalam bahasa alami.

Penelusuran, mengonversi lokasi dalam kueri menjadi filter geolokasi

Untuk menelusuri kueri dalam bahasa alami dan mendapatkan hasil yang dioptimalkan untuk kueri bahasa alami, termasuk kedekatan dengan lokasi, lakukan tindakan berikut:

REST

  1. Jalankan perintah curl berikut, yang memanggil metode search:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \
      -d '{
            "query": "QUERY",
            "naturalLanguageQueryUnderstandingSpec": {
              "filterExtractionCondition": "ENABLED",
              "geoSearchQueryDetectionFieldNames": ["GEO_FIELD_NAME_1", "GEO_FIELD_NAME_N"]"
            }
          }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Google Cloud Anda.
    • APP_ID: ID aplikasi Vertex AI Search yang ingin Anda buat kuerinya. Aplikasi harus terhubung ke penyimpanan data yang berisi data terstruktur. Aplikasi tidak boleh berupa aplikasi penelusuran gabungan.
    • QUERY: kueri ditulis dalam bahasa alami.
    • GEO_FIELD_NAME_1, GEO_FIELD_NAME_N: daftar nilai jenis geolocation. Jika jenis nilainya bukan geolocation, kolom ini akan diabaikan.