Model percakapan menentukan apa yang dapat dikatakan pengguna kepada Action Anda dan cara Action Anda merespons pengguna. Elemen penyusun utama model percakapan Anda adalah intent, jenis, adegan, dan perintah. Setelah salah satu Action Anda dipanggil, Asisten Google akan menyerahkan Action tersebut kepada pengguna, dan Action tersebut memulai percakapan dengan pengguna, berdasarkan model percakapan Anda, yang terdiri dari:
Permintaan pengguna yang valid - Untuk menentukan apa yang dapat dikatakan pengguna ke Action, Anda membuat kumpulan intent yang meningkatkan NLU Asisten, sehingga dapat memahami permintaan yang spesifik untuk Action Anda. Setiap intent menentukan frasa pelatihan yang menjelaskan apa yang dapat diucapkan pengguna untuk cocok dengan intent tersebut. NLU Asisten memperluas frasa pelatihan ini untuk menyertakan frasa serupa, dan agregasi frasa tersebut akan menghasilkan model bahasa intent.
Logika dan respons tindakan - Intent proses scene, menjalankan logika yang diperlukan, dan menghasilkan perintah untuk kembali ke pengguna.
Menentukan permintaan pengguna yang valid
Untuk menentukan apa yang dapat dikatakan pengguna kepada Action, Anda menggunakan kombinasi intent dan jenis. Intent dan jenis pengguna memungkinkan Anda meningkatkan NLU Asisten dengan model bahasa Anda sendiri. Intent dan jenis sistem memungkinkan Anda memanfaatkan model bahasa bawaan dan deteksi peristiwa seperti pengguna yang ingin keluar dari Action atau Asisten yang mendeteksi tidak ada input sama sekali.
Membuat intent pengguna
Intent pengguna memungkinkan Anda menentukan frasa pelatihan Anda sendiri yang menentukan apa yang mungkin dikatakan pengguna pada Action Anda. NLU Asisten menggunakan frasa ini untuk melatih diri sendiri guna memahami apa yang dikatakan pengguna Anda. Saat pengguna mengatakan sesuatu yang cocok dengan model bahasa intent pengguna, Asisten akan mencocokkan intent dan memberi tahu Action agar Anda dapat menjalankan logika dan merespons kembali pengguna.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/console/images/builder/new-intent.png?authuser=6&hl=id)
Untuk membuat intent pengguna:
- Di tab Develop, klik User intent > ⊕ (New intent), tentukan nama, lalu tekan Enter untuk membuat intent.
- Klik intent yang baru dibuat di menu kiri. Editor intent akan muncul.
- Tambahkan frasa pelatihan ke intent. Anda harus menambahkan sebanyak mungkin frasa pelatihan untuk melatih NLU Asisten.
- Opsional: Anotasi frasa pelatihan untuk menginstruksikan NLU Asisten agar mengurai
dan mengekstrak parameter yang diketik dari input pengguna yang cocok dengan jenis yang ditentukan:
- Masukkan nama untuk parameter di kolom Tambahkan parameter baru.
- Pilih jenis sistem dari menu drop-down atau buat jenis kustom.
- Tentukan apakah parameter berupa daftar. Hal ini memungkinkan parameter mengumpulkan beberapa nilai dari jenis yang sama.
- Di bagian Tambahkan frasa pelatihan, tandai teks yang ingin Anda terapkan jenisnya. Ini akan memberi tahu Asisten NLU untuk memperlakukan teks yang ditandai sebagai parameter. Jika pengguna mengucapkan sesuatu yang cocok dengan jenisnya, NLU akan mengekstrak nilai tersebut sebagai parameter.
Membuat intent sistem
Intent sistem memungkinkan Anda memanfaatkan intent dengan model bahasa yang telah ditentukan untuk peristiwa umum seperti pengguna yang ingin keluar dari Action Anda atau saat waktu input pengguna habis. Untuk membuat intent sistem:
- Di tab Develop, klik System intent. Tersedia sekumpulan intent sistem, seperti NO_MATCH, NO_INPUT, dan CANCEL.
- Setiap intent sistem berisi pengendalinya sendiri, yang dapat Anda sesuaikan untuk setiap jenis intent sistem. Misalnya, intent sistem memungkinkan Anda memicu peristiwa webhook dan mengirim perintah statis saat peristiwa terjadi.
Membuat jenis kustom
Dengan jenis kustom, Anda dapat membuat spesifikasi jenis Anda sendiri untuk melatih NLU agar dapat memahami kumpulan nilai yang harus dipetakan ke satu kunci.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/console/images/builder/type-options.png?authuser=6&hl=id)
Untuk membuat jenis kustom:
- Di tab Develop, klik Types > ⊕ (New type).
Pilih cara memberikan nilai jenis di bagian What types of values with this type support?:
- Kata dan sinonim memungkinkan Anda memetakan beberapa nilai ke satu kunci, yang disebut entri. Jenis dapat berisi satu atau beberapa entri. Jika
memilih opsi ini, Anda juga dapat mengaktifkan setelan NLU berikut:
- Aktifkan pencocokan fuzzy - Opsi ini memungkinkan entri yang berisi lebih dari satu kata untuk dicocokkan, meskipun kata tersebut diucapkan dalam urutan yang berbeda.
- Terima nilai yang tidak diketahui - Jika Anda tidak dapat menentukan semua nilai yang mungkin, opsi ini akan menerima kata atau frasa yang tidak diketahui berdasarkan input di sekitarnya dan data pelatihan intent, seperti item yang mungkin ditambahkan ke daftar bahan makanan.
- Ekspresi reguler memungkinkan jenis pencocokan dengan pola ekspresi reguler berdasarkan standar RE2 Google.
- Teks bentuk bebas memungkinkan jenis untuk mencocokkan apa pun yang dikatakan pengguna.
- Kata dan sinonim memungkinkan Anda memetakan beberapa nilai ke satu kunci, yang disebut entri. Jenis dapat berisi satu atau beberapa entri. Jika
memilih opsi ini, Anda juga dapat mengaktifkan setelan NLU berikut:
Menentukan nilai jenis di bagian Add entries. Jika memilih Teks bentuk bebas, jenisnya akan cocok dengan teks apa pun, sehingga Anda tidak perlu memberikan entri apa pun.
Membuat logika dan respons Action
NLU Asisten mencocokkan permintaan pengguna dengan intent, sehingga Action Anda dapat memprosesnya dalam scene. Scene adalah eksekutor logika canggih yang memungkinkan Anda memproses peristiwa selama percakapan.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene.png?authuser=6&hl=id)
Membuat scene
Bagian berikut menjelaskan cara membuat scene dan menentukan fungsi untuk setiap tahap siklus proses scene.
Untuk membuat scene:
- Di tab Develop, klik Scenes > ⊕ (New scene), tentukan nama, lalu tekan Enter untuk membuat scene.
- Klik scene yang baru dibuat di menu kiri. Editor Scene akan muncul.
Menentukan penyiapan satu kali
Saat scene pertama kali aktif, Anda dapat melakukan tugas satu kali di tahap Saat masuk. Tahap masuk dijalankan hanya sekali, dan merupakan satu-satunya tahap yang tidak berjalan di dalam loop eksekusi scene.
Dalam scene, klik tahap On enter untuk menentukan fungsinya. Anda dapat menentukan fungsi berikut pada tahap ini:
- Panggil webhook Anda - Memicu webhook. Lihat dokumentasi webhook untuk informasi selengkapnya tentang webhook.
- Send prompt - Menentukan perintah statis kepada pengguna agar mereka tahu cara melanjutkan percakapan. Lihat dokumentasi perintah untuk mengetahui informasi selengkapnya tentang cara menentukan perintah.
Gambar 4. Contoh scene yang berada di tahap enter
Periksa kondisi
Kondisi memungkinkan Anda memeriksa parameter pengisian slot, penyimpanan sesi, penyimpanan pengguna, dan penyimpanan rumah untuk mengontrol alur eksekusi scene.
Dalam scene, klik ikon + untuk tahap Condition. Editor Condition akan muncul di sebelah kanan. Anda dapat menentukan fungsi berikut pada tahap ini:
- Kondisi - Tentukan pernyataan kondisional yang sebenarnya untuk dijadikan dasar logika. Lihat dokumentasi conditions untuk informasi sintaksis.
- Panggil webhook Anda - Memicu webhook. Lihat dokumentasi webhook untuk informasi selengkapnya tentang webhook.
- Send prompt - Menentukan perintah statis yang akan dikirim ke pengguna, sehingga mereka tahu cara melanjutkan percakapan. Lihat dokumentasi perintah untuk mengetahui informasi selengkapnya tentang cara menentukan perintah.
- Transition - Menentukan scene yang akan menjadi tujuan transisi saat pernyataan kondisional bernilai true.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-condition.png?authuser=6&hl=id)
Menentukan pengisian slot
Slot memungkinkan Anda mengekstrak parameter yang diketik dari input pengguna.
Di editor scene, klik ikon + untuk tahap Slot fill. Editor slot akan muncul di sebelah kanan. Anda dapat menentukan properti slot berikut:
- Nama slot: Menentukan nama slot. Jika Anda ingin memanfaatkan pemetaan nilai slot, gunakan nama yang sama dengan parameter intent yang sesuai.
- Jenis slot: Menentukan jenis slot dengan jenis sistem atau jenis kustom.
- Slot ini wajib diisi: Menandai slot ini sebagai diperlukan. Jika diaktifkan, pengisian slot tidak akan selesai hingga slot ini terisi.
- Tetapkan nilai default ke slot ini: Menentukan nilai default untuk slot yang dibaca dari parameter sesi yang ditentukan.
- Sesuaikan penulisan kembali nilai slot: Menentukan parameter sesi untuk mempertahankan nilai slot setelah pengisian slot selesai.
- Validasi slot: Memicu webhook saat slot terisi. Setelan ini berlaku untuk semua slot.
- Memanggil webhook (Diaktifkan saat slot diperlukan): Memicu webhook. Lihat dokumentasi webhook untuk informasi selengkapnya tentang webhook.
- Send prompt (Diaktifkan saat slot diperlukan): Menentukan dialog statis yang akan dikirim kepada pengguna, sehingga pengguna tahu cara melanjutkan percakapan. Lihat dokumentasi perintah untuk mengetahui informasi selengkapnya tentang cara menentukan dialog.
Untuk jenis slot tertentu (seperti yang terkait dengan transaksi atau engagement pengguna), bagian tambahan akan muncul, tempat Anda dapat mengonfigurasi slot. Konfigurasi slot dapat mengubah pengalaman percakapan untuk pengguna berdasarkan properti yang Anda berikan.
Untuk mengonfigurasi slot, berikan properti pada objek JSON dalam
fulfillment Anda (direferensikan sebagai parameter sesi) atau di editor JSON inline.
Anda dapat menemukan properti yang tersedia untuk setiap jenis slot di referensi JSON Action Builder. Misalnya, jenis slot actions.type.DeliveryAddressValue
sesuai dengan konten referensi untuk slot DeliveryAddressValue
.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-slot.png?authuser=6&hl=id)
Pemetaan nilai slot
Dalam banyak kasus, pencocokan intent sebelumnya dapat menyertakan parameter yang mengisi sebagian atau seluruh nilai slot scene yang sesuai. Dalam kasus ini, semua slot yang diisi oleh parameter intent akan dipetakan ke pengisian slot scene jika nama slot cocok dengan nama parameter intent.
Misalnya, jika pengguna cocok dengan intent untuk memesan minuman dengan mengucapkan "I want to order a large vanilla coffee", slot yang ada untuk ukuran, rasa, dan jenis minuman akan dianggap terisi pada scene yang sesuai jika scene tersebut menentukan slot yang sama.
Memproses input
Selama tahap ini, Anda dapat membuat NLU Asisten mencocokkan input pengguna dengan intent. Anda dapat menentukan cakupan pencocokan intent ke scene tertentu dengan menambahkan intent yang diinginkan ke scene. Hal ini memungkinkan Anda mengontrol alur percakapan dengan memberi tahu Asisten untuk mencocokkan intent tertentu saat scene tertentu aktif.
Dalam scene, klik ikon + untuk tahap User intenthandling atau System intentHandling. Editor untuk pengendali intent akan muncul di sebelah kanan. Anda dapat menentukan fungsi pengendali intent berikut:
- Intent - Menentukan intent yang ingin Anda cocokkan dalam scene ini.
- Panggil webhook Anda - Memicu webhook. Lihat dokumentasi webhook untuk mengetahui informasi selengkapnya tentang cara menangani permintaan webhook.
- Mengirim perintah - Menentukan perintah statis kepada pengguna, agar mereka tahu cara merespons. Lihat dokumentasi perintah untuk mengetahui informasi selengkapnya tentang cara menentukan perintah.
- Transisi (jika ada) - Menentukan scene yang akan menjadi tujuan transisi saat intent yang ditentukan cocok.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-customintent.png?authuser=6&hl=id)
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-systemintent.png?authuser=6&hl=id)