Konfigurasi penelusuran penyimpanan data

Anda dapat memengaruhi hasil penelusuran yang diambil dari alat penyimpanan data Agen Percakapan (Dialogflow CX) dengan mengonfigurasi spesifikasi peningkat dan filter. Hal ini memungkinkan interaksi yang lebih dipersonalisasi dan sadar konteks saat agen Anda menggunakan penyimpanan data untuk menemukan informasi.

Jika ingin, Anda dapat menyertakan ekspresi dinamis untuk menyesuaikan hasil berdasarkan konteks percakapan. Misalnya, agen Anda telah mengambil informasi yang menunjukkan bahwa pengguna akhir memiliki "ponsel". Anda dapat mengonfigurasi alat penyimpanan data untuk meningkatkan kualitas dokumen yang terkait dengan ponsel saat menjawab kueri umum nanti dalam percakapan seperti "Bagaimana cara memeriksa pesan suara saya?".

Anda dapat mengonfigurasi hasil penelusuran penyimpanan data menggunakan Konsol, API, atau integrasi Dialogflow CX Messenger.

Input kondisi penelusuran

Hasil penelusuran dikonfigurasi menggunakan spesifikasi peninggian (BoostSpec) dan spesifikasi filter (FilterSpec) di kolom objek SearchConfig. Konfigurasi ini diterapkan per penyimpanan data dalam alat, sehingga Anda dapat mengontrol secara mendetail perilaku setiap penyimpanan data yang terhubung.

Anda dapat mengonfigurasi kondisi penelusuran dengan dua cara: Menggunakan konsol, atau mengirim panggilan API langsung. Ada perbedaan penting antara keduanya.

  • Panggilan API: BoostSpec dan FilterSpec dikirim dalam SearchConfig menggunakan panggilan API DetectIntent. Objek SearchConfig lengkap harus diberikan dalam permintaan. SearchConfig yang dikirim oleh panggilan API langsung selalu menggantikan SearchConfig yang dikirim menggunakan konsol. Ekspresi dinamis dan referensi parameter tidak didukung.

  • Konsol: Konfigurasi BoostSpec dan FilterSpec Anda digunakan untuk membuat objek SearchConfig yang dikirim dengan permintaan penelusuran. Jika ingin, Anda dapat menyertakan referensi parameter dan ekspresi dinamis untuk menyesuaikan hasil dengan data konteks yang direkam dari percakapan. Anda hanya perlu memberikan objek ConditionBoostSpec dan daftar string filter untuk membuat FilterSpecs, bukan objek SearchConfig lengkap.

Informasi pengguna akhir disediakan sebagai JSON. Tidak ada skema yang diharapkan, jadi Anda bebas menentukan properti objek.

Spesifikasi peningkatan (Spesifikasi peningkatan)

Spesifikasi peningkatan memungkinkan Anda mengubah peringkat hasil penelusuran dengan menerapkan nilai peningkatan ke dokumen tertentu. Anda dapat menambahkan beberapa spesifikasi peningkat ke satu penyimpanan data.

Setiap Spesifikasi Peningkatan dimasukkan sebagai string JSON. String JSON ini harus merepresentasikan satu objek ConditionBoostSpec.

Kolom utama:

  • condition: (String) Ekspresi yang menentukan kapan peningkatannya harus diterapkan. Ini menggunakan sintaksis ekspresi filter standar. Anda dapat menggunakan ekspresi Dialogflow untuk membuat hasil yang dinamis, seperti $session.params.YOUR_PARAM_NAME atau $request.end-user-metadata.YOUR_KEY.
  • boost: (Angka) Nilai antara -1,0 dan 1,0 yang menentukan kekuatan peningkatan.
    • Nilai positif akan mempromosikan dokumen yang cocok. Nilai 1.0 memberikan promosi yang kuat.
    • Nilai negatif menurunkan peringkat dokumen yang cocok. Nilai -1.0 akan memberikan penurunan peringkat yang kuat.
    • Nilai 0.0 tidak menerapkan peningkatan dan tidak diizinkan.
  • boostControlSpec: Menyediakan lebih banyak kontrol untuk peringkat yang disesuaikan daripada kombinasi dasar kondisi dan peningkatan. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi kolom ini, lihat dokumentasi referensi.

Contoh input Konsol:

Jika Anda mengonfigurasi agen di Konsol, Anda harus memberikan daftar ConditionBoostSpecs dalam format berikut.

Dalam contoh ini, dokumen dengan URI yang cocok dengan nilai parameter sesi $session.params.doc_id akan ditingkatkan dengan kekuatan 0,5. JSON dengan format ini

{
  "condition": "uri: ANY(\"http://www.example.com/docs/$session.params.doc_id\")",
  "boost": 0.5
}

Contoh input API:

Jika memanggil API secara langsung, Anda harus memberikan ConditionBoostSpecs dalam objek SearchConfig lengkap.Konfigurasi penelusuran berikut menjelaskan spesifikasi peningkatan:

"searchConfig": {
  "boostSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "spec": [
        {
          "conditionBoostSpecs": {
            "condition": "CONDITION",
            "boost": "1.0"
          }
        }
      ]
    }
  ]
}

Spesifikasi Filter (Spesifikasi filter)

Spesifikasi filter membatasi hasil penelusuran agar hanya menyertakan dokumen yang cocok dengan kriteria yang ditentukan. Anda dapat menambahkan beberapa spesifikasi filter ke satu penyimpanan data.

Setiap Filter Spec harus dimasukkan sebagai ekspresi string. String harus sesuai dengan sintaksis ekspresi filter standar. Anda dapat menggunakan ekspresi Dialogflow dalam string ini untuk membuat hasil yang dinamis, seperti $session.params.YOUR_PARAM_NAME atau $request.end-user-metadata.YOUR_KEY.

Contoh string Spesifikasi Filter Konsol:

Jika mengonfigurasi agen menggunakan Konsol, Anda harus memberikan daftar string filter untuk membentuk objek FilterSpec.

Dalam contoh ini, filter hanya menampilkan dokumen dengan numeric_field yang lebih besar dari atau sama dengan nilai $session.params.min_value DAN dengan stock_availability adalah "IN_STOCK".

"numeric_field >= $session.params.min_value AND stock_availability: ANY(\"IN_STOCK\")"

Contoh konfigurasi filter API:

Jika memanggil API secara langsung, Anda harus memberikan string filter dalam objek SearchConfig lengkap:

"searchConfig": {
  "filterSpecs": [
    {
      "dataStores": [ "DATASTORE_ID" ],
      "filter": "CONDITION"
    }
  ]
}

Ekspresi dinamis Dialogflow

Kondisi BoostSpec dan string FilterSpec dapat menggabungkan ekspresi Dialogflow untuk menjadikannya dinamis. Hal ini memungkinkan Anda menyesuaikan perilaku penelusuran berdasarkan data konteks yang diambil dari percakapan yang sedang berlangsung. Ekspresi dinamis tidak didukung dalam panggilan API langsung dan hanya dapat digunakan jika Anda melakukan konfigurasi menggunakan konsol.

Anda dapat mengakses data konteks percakapan dengan dua cara:

  • Parameter sesi: Nilai yang dikumpulkan selama percakapan menggunakan $session.params.YOUR_PARAMETER_ID.
  • Metadata pengguna akhir: Metadata tentang pengguna akhir yang diteruskan di DetectIntentRequest menggunakan $request.end-user-metadata.YOUR_KEY. Agar opsi ini tersedia, pastikan end_user_metadata disertakan dalam QueryParameters panggilan DetectIntent Anda. Untuk mengetahui informasi selengkapnya, lihat endUserMetadata.

Untuk mengetahui detail selengkapnya tentang fungsi sistem dan sintaksis ekspresi yang tersedia, lihat referensi kondisi dan fungsi sistem.

Kondisi penelusuran diterapkan saat runtime

Saat alat penyimpanan data Anda menjalankan penelusuran:

  1. String JSON yang Anda berikan untuk Spesifikasi Pendorong akan dievaluasi. Setiap string JSON yang valid dikonversi menjadi objek ConditionBoostSpec. Kemudian, objek ini dikelompokkan ke dalam objek BoostSpecs untuk koneksi penyimpanan data tertentu, yang ditambahkan ke SearchConfig keseluruhan.
  2. String yang Anda berikan untuk Spesifikasi Filter dievaluasi sebagai ekspresi Dialogflow. Setiap string filter yang dihasilkan digunakan untuk membuat objek FilterSpecs untuk penyimpanan data, yang juga ditambahkan ke SearchConfig.
  3. SearchConfig yang dibuat secara dinamis ini kemudian disertakan dalam QueryParameters permintaan penelusuran yang dikirim ke penyimpanan data.

Mengonfigurasi kondisi penelusuran

Sebelum mengonfigurasi kondisi penelusuran, pastikan Anda memiliki:

  • Agen Agen Percakapan (Dialogflow CX) yang sudah ada.
  • Alat penyimpanan data yang dikonfigurasi untuk agen Anda dengan satu atau beberapa penyimpanan data yang diaktifkan.

Konfigurasi konsol

  1. Buka Conversational Agents console dan pilih project Google Cloud.
  2. Pilih agen dari menu drop-down.
  3. Buka menu sebelah kiri, lalu klik Alat. Pilih alat penyimpanan data yang ingin Anda konfigurasi.
  4. Di halaman pengeditan alat, buka bagian Data stores. Klik ikon Setelan (⚙️) di samping penyimpanan data yang ingin Anda ubah.
  5. Menu Konfigurasi Penyimpanan Data akan muncul. Di sini, Anda dapat menambahkan Spesifikasi Peningkatan dan Spesifikasi Filter untuk mengubah hasil penelusuran.
    • Untuk Spesifikasi Peningkatan, berikan objek JSON yang menentukan ConditionBoostSpec. Lihat Spesifikasi Peningkat untuk mengetahui detailnya.
    • Untuk Spesifikasi Filter, berikan string yang menentukan kriteria filter. Lihat Spesifikasi Filter untuk mengetahui detailnya.
  6. Setelah menambahkan dan mengonfigurasi spesifikasi, klik Konfirmasi di bagian bawah panel samping.
  7. Klik Simpan di halaman edit alat penyimpanan data untuk menyimpan perubahan.

Konfigurasi API

Anda dapat memberikan data konfigurasi penelusuran ke Agen Percakapan (Dialogflow CX) saat mengirim permintaan deteksi maksud. Informasi ini harus diberikan di setiap permintaan deteksi maksud, karena tidak dipertahankan dalam sesi.

Berikan informasi ini di kolom queryParams.searchConfig dalam metode Sessions.detectIntent.

Pilih protokol dan versi untuk Referensi sesi:

Protokol V3 V3beta1
REST Resource sesi Resource sesi
RPC Antarmuka sesi Antarmuka sesi
C++ SessionsClient Tidak tersedia
C# SessionsClient Tidak tersedia
Go SessionsClient Tidak tersedia
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Tidak tersedia Tidak tersedia
Python SessionsClient SessionsClient
Ruby Tidak tersedia Tidak tersedia

Konfigurasi Messenger Dialogflow CX

Anda dapat memberikan data konfigurasi penelusuran ke integrasi Dialogflow CX Messenger. Lihat metode setContext untuk mengetahui informasi selengkapnya.

Untuk menerapkan spesifikasi penelusuran atau konfigurasi penelusuran, cuplikan berikut perlu ditambahkan ke kode Dialogflow CX Messenger saat menyematkannya ke situs:

<script>
  document.addEventListener('df-messenger-loaded', () => {
    const dfMessenger = document.querySelector('df-messenger');
    const searchConfig = { ... }
    dfMessenger.setQueryParameters(searchConfig);
  });
</script>

Lihat metode setQueryParameters.

Pemecahan masalah

Bagian ini menguraikan solusi untuk beberapa masalah umum yang terjadi selama konfigurasi. Selalu uji konfigurasi Anda secara menyeluruh dengan menyimulasikan percakapan yang memicu berbagai parameter sesi dan nilai metadata pengguna akhir.

Ekspresi tidak valid

Jika kondisi Boost Spec atau string Filter Spec berisi ekspresi Agen Percakapan (Dialogflow CX) yang tidak valid (misalnya, sintaksis yang salah atau referensi ke parameter yang tidak ada), kompilasi ekspresi akan gagal. Error terkait kompilasi ekspresi biasanya ditampilkan di DetectIntentResponse dalam kolom diagnostic_info sebagai SystemFunctionResults.

JSON ConditionBoostSpec tidak valid

Konsol Agen Percakapan melakukan beberapa validasi pada string JSON ConditionBoostSpec saat menyimpannya. Hal ini dilakukan untuk memeriksa apakah JSON tersebut valid dan strukturnya dapat dipetakan ke objek ConditionBoostSpec. Jika JSON valid, tetapi menghasilkan SearchConfig yang tidak valid menurut layanan penelusuran yang mendasarinya (misalnya, string kondisi tidak valid setelah penggantian parameter), layanan penelusuran akan menampilkan error.

Error penggantian runtime

Jika string JSON ConditionBoostSpec valid dan dapat diuraikan, tetapi terjadi error selama penggantian ekspresi Dialogflow saat runtime dalam kolomnya (seperti string kondisi), error ini akan dilaporkan dalam diagnostic_info sebagai SystemFunctionResults.

Tinjau SearchConfig yang dikompilasi

SearchConfig yang diterapkan saat kueri dijalankan tersedia di search_signals dalam respons. Meninjau SearchConfig dapat memberikan insight tentang masalah tambahan yang tidak diuraikan di sini.

Langkah berikutnya