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
danFilterSpec
dikirim dalamSearchConfig
menggunakan panggilan APIDetectIntent
. ObjekSearchConfig
lengkap harus diberikan dalam permintaan.SearchConfig
yang dikirim oleh panggilan API langsung selalu menggantikanSearchConfig
yang dikirim menggunakan konsol. Ekspresi dinamis dan referensi parameter tidak didukung.Konsol: Konfigurasi
BoostSpec
danFilterSpec
Anda digunakan untuk membuat objekSearchConfig
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 objekConditionBoostSpec
dan daftar string filter untuk membuatFilterSpecs
, bukan objekSearchConfig
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.
- Nilai positif akan mempromosikan dokumen yang cocok. Nilai
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, pastikanend_user_metadata
disertakan dalamQueryParameters
panggilanDetectIntent
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:
- 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 objekBoostSpecs
untuk koneksi penyimpanan data tertentu, yang ditambahkan keSearchConfig
keseluruhan. - 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 keSearchConfig
. SearchConfig
yang dibuat secara dinamis ini kemudian disertakan dalamQueryParameters
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
- Buka Conversational Agents console dan pilih project Google Cloud.
- Pilih agen dari menu drop-down.
- Buka menu sebelah kiri, lalu klik Alat. Pilih alat penyimpanan data yang ingin Anda konfigurasi.
- Di halaman pengeditan alat, buka bagian Data stores. Klik ikon Setelan (⚙️) di samping penyimpanan data yang ingin Anda ubah.
- 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.
- Untuk Spesifikasi Peningkatan, berikan objek JSON yang menentukan
- Setelah menambahkan dan mengonfigurasi spesifikasi, klik Konfirmasi di bagian bawah panel samping.
- 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
- Untuk mengetahui informasi selengkapnya tentang struktur
SearchConfig
dan komponennya, lihat dokumentasisearch_config
. - Untuk mengetahui informasi selengkapnya tentang sintaksis ekspresi, lihat Referensi kondisi dan fungsi sistem Dialogflow.
- Untuk mengetahui informasi selengkapnya tentang sintaksis ekspresi filter untuk penelusuran, lihat Memfilter dan mengurutkan hasil.