Model percakapan menentukan apa yang bisa diucapkan pengguna ke Action Anda dan bagaimana Tindakan merespons pengguna. Elemen penyusun utama model percakapan Anda adalah intent, jenis, adegan, dan perintah. Setelah salah satu Action Anda dipanggil, Asisten Google menyerahkan pengguna ke Action tersebut, dan Action itu memulai percakapan dengan berdasarkan model percakapan Anda, yang terdiri dari:
Permintaan pengguna yang valid - Untuk menentukan apa yang dapat diucapkan pengguna ke Action Anda, membuat kumpulan intent yang meningkatkan NLU Asisten, sehingga dapat memahami permintaan khusus untuk Action Anda. Setiap intent mendefinisikan yang menggambarkan apa yang dapat diucapkan pengguna agar cocok dengan niat tersebut. Tujuan Asisten NLU memperluas frasa pelatihan ini untuk mencakup frasa serupa, dan agregasi frasa tersebut menghasilkan model bahasa intent.
Logika tindakan dan respons - Scene memproses intent, menjalankan logika yang diperlukan, dan menghasilkan prompt untuk kembali ke pengguna.
Menentukan permintaan pengguna yang valid
Untuk mendefinisikan apa yang bisa diucapkan pengguna ke Actions Anda, gunakan kombinasi intent jenis data. Intent dan jenis pengguna memungkinkan Anda memperkaya NLU Asisten dengan model bahasa Anda sendiri. Intent dan jenis sistem memungkinkan Anda memanfaatkan fitur bawaan model bahasa dan deteksi peristiwa, seperti pengguna yang ingin keluar dari Action atau Asisten tidak mendeteksi input sama sekali.
Membuat intent pengguna
Intent pengguna memungkinkan Anda menentukan frasa pelatihan Anda sendiri yang menentukan pengguna yang mungkin diucapkan ke Action Anda. NLU Asisten menggunakan frasa ini untuk melatih dirinya sendiri untuk memahami apa yang dikatakan pengguna Anda. Saat pengguna mengucapkan sesuatu yang sesuai dengan model bahasa intent pengguna, Asisten akan mencocokkan intent dan akan memberi tahu Action Anda, sehingga Anda dapat menjalankan logika dan merespons pengguna.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/console/images/builder/new-intent.png?authuser=8&hl=id)
Untuk membuat intent pengguna:
- Di tab Develop, klik User intent > ⊕ (Intent baru), tentukan nama, lalu tekan Enter untuk membuat intent.
- Klik intent yang baru dibuat di menu kiri. Editor Intent muncul.
- Tambahkan frasa pelatihan ke intent. Anda harus menambahkan sebanyak mungkin frasa pelatihan untuk melatih NLU Asisten.
- Opsional: Anotasikan frasa pelatihan untuk menginstruksikan NLU Asisten agar mengurai
dan ekstrak parameter yang diketik dari input pengguna yang cocok dengan jenis tertentu:
- Masukkan nama untuk parameter di kolom Tambahkan parameter baru.
- Pilih jenis sistem dari menu drop-down atau buat jenis kustom.
- Tentukan apakah parameternya berupa daftar. Ini memungkinkan parameter mengumpulkan beberapa nilai dari jenis yang sama.
- Di bagian Tambahkan frasa pelatihan, tandai teks yang ingin Anda untuk menerapkan jenis. Tindakan ini akan memberi tahu Asisten NLU untuk menangani sebagai parameter. Jika pengguna mengucapkan sesuatu yang sesuai dengan jenisnya, NLU mengekstrak nilai tersebut sebagai parameter.
Membuat intent sistem
Intent sistem memungkinkan Anda memanfaatkan intent dengan bahasa yang telah ditentukan sebelumnya model untuk peristiwa umum seperti pengguna yang ingin keluar dari Action Anda atau ketika waktu input habis. Untuk membuat intent sistem:
- Di tab Develop, klik System intent. Sekumpulan intent sistem tersedia, seperti NO_MATCH, NO_INPUT, dan CANCEL.
- Setiap intent sistem berisi pengendalinya sendiri, yang bisa Anda sesuaikan setiap jenis intent sistem. Misalnya, intent sistem memungkinkan Anda memicu peristiwa webhook dan mengirim perintah statis saat peristiwa terjadi.
Membuat jenis kustom
Jenis kustom memungkinkan Anda membuat spesifikasi jenis sendiri untuk melatih NLU agar 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=8&hl=id)
Untuk membuat jenis kustom:
- Di tab Develop, klik Types > ⊕ (Jenis baru).
Pilih cara memberikan nilai jenis di bagian Apa jenis nilai dengan jenis dukungan?:
- Kata dan sinonim memungkinkan Anda memetakan beberapa nilai ke satu kunci,
yang disebut entri. Jenis Anda dapat berisi satu atau beberapa entri. Jika Anda
memilih opsi ini, Anda juga dapat mengaktifkan setelan NLU berikut:
- Aktifkan pencocokan fuzzy - Cara ini memungkinkan entri dengan lebih dari satu kata cocok, bahkan ketika kata-kata diucapkan dalam urutan yang berbeda.
- Terima nilai yang tidak diketahui - Jika Anda tidak dapat menentukan semua nilai yang mungkin, perangkat itu akan menerima kata atau frasa yang tidak diketahui berdasarkan input di sekitarnya dan data pelatihan niat, seperti item yang mungkin ditambahkan ke bahan makanan daftar.
- Ekspresi reguler memungkinkan jenis dicocokkan dengan pola ekspresi reguler berdasarkan standar RE2 Google.
- Teks bentuk bebas memungkinkan jenis pencocokan apa pun yang diucapkan pengguna.
- Kata dan sinonim memungkinkan Anda memetakan beberapa nilai ke satu kunci,
yang disebut entri. Jenis Anda dapat berisi satu atau beberapa entri. Jika Anda
memilih opsi ini, Anda juga dapat mengaktifkan setelan NLU berikut:
Tentukan nilai jenis di bagian Add entries. Jika Anda memilih Bentuk bebas text, jenisnya akan cocok dengan teks apa pun, sehingga Anda tidak perlu memberikan entri apa pun.
Membangun logika dan respons Tindakan
NLU Asisten mencocokkan permintaan pengguna dengan intent, sehingga Action Anda bisa memprosesnya dalam adegan. Scenes adalah eksekutor logika yang andal dan memungkinkan Anda memproses peristiwa selama percakapan.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene.png?authuser=8&hl=id)
Membuat scene
Bagian berikut menjelaskan cara membuat scene dan menentukan fungsionalitas untuk setiap tahap siklus proses scene.
Untuk membuat suasana:
- Di tab Develop, klik Scenes > ⊕ (Adegan baru), tentukan nama, lalu tekan Enter untuk membuat suasana.
- Klik adegan yang baru dibuat di menu kiri. Editor Scene muncul.
Menentukan penyiapan satu kali
Saat scene pertama kali menjadi aktif, Anda dapat melakukan tugas satu kali di Masuk. Tahap On Enter hanya dieksekusi satu kali, dan merupakan satu-satunya yang tidak berjalan di dalam loop eksekusi scene.
Dalam sebuah scene, klik stage On enter untuk menentukan fungsinya. Anda dapat menetapkan fungsi berikut pada tahap ini:
- Memanggil webhook Anda - Memicu webhook. Melihat webhook untuk informasi lebih lanjut tentang webhook.
- Mengirim perintah - Menentukan perintah statis kepada pengguna agar mereka tahu cara melakukannya melanjutkan percakapan. Lihat dokumentasi perintah untuk mengetahui informasi selengkapnya tentang cara menentukan prompt.
Gambar 4. Contoh adegan pada tahap masuk
Memeriksa kondisi
Kondisi memungkinkan Anda memeriksa pengisian slot, penyimpanan sesi, penyimpanan pengguna, dan parameter penyimpanan rumah untuk mengontrol alur eksekusi scene.
Dalam sebuah scene, klik ikon + untuk stage Condition. Tujuan Editor kondisi muncul di sebelah kanan. Anda dapat menetapkan fungsionalitasnya dalam tahap ini:
- Kondisi - Tentukan pernyataan bersyarat sebenarnya untuk mendasarkan logika pengguna. Lihat dokumentasi conditions untuk sintaksis tidak akurat atau tidak sesuai.
- Memanggil webhook Anda - Memicu webhook. Melihat webhook untuk informasi lebih lanjut tentang webhook.
- Kirim perintah - Menentukan perintah statis yang akan dikirim kepada pengguna, sehingga tahu bagaimana cara melanjutkan percakapan. Lihat perintah dokumentasi untuk informasi lebih lanjut tentang cara menentukan prompt.
- Transisi - Menentukan scene yang akan menjadi tujuan transisi saat kondisional pernyataan tersebut benar.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-condition.png?authuser=8&hl=id)
Menentukan pengisian slot
Slot memungkinkan Anda mengekstrak parameter yang diketik dari input pengguna.
Di editor scene, klik ikon + untuk tahap Slot fill. Tujuan untuk slot tersebut akan muncul di sebelah kanan. Anda dapat menetapkan properti slot:
- 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 sistem jenis khusus atau jenis khusus.
- Slot ini wajib diisi: Menandai slot ini sebagai diperlukan. Jika diaktifkan, slot pengisian tidak akan selesai hingga slot ini diisi.
- Tetapkan nilai default ke slot ini: Menentukan nilai default untuk slot yang dibaca dari parameter sesi yang ditentukan.
- Sesuaikan writeback nilai slot: Menentukan parameter sesi yang akan dipertahankan nilai slot setelah pengisian slot selesai.
- Validasi slot: Memicu webhook saat slot terisi. Setelan ini berlaku untuk semua slot.
- Memanggil webhook Anda (Diaktifkan saat slot diperlukan): Memicu webhook. Lihat dokumentasi webhook untuk informasi selengkapnya tentang webhook.
- Kirim perintah (Diaktifkan saat slot diperlukan): Menentukan perintah statis dikirim ke pengguna, sehingga mereka tahu bagaimana melanjutkan percakapan. Lihat dokumentasi perintah untuk informasi lebih lanjut tentang menentukan prompt.
Untuk jenis slot tertentu (seperti yang terkait dengan transaksi atau keterlibatan pengguna), akan muncul bagian tambahan di mana Anda dapat mengkonfigurasi slot. Slot dapat mengubah pengalaman percakapan bagi pengguna berdasarkan properti yang Anda berikan.
Untuk mengonfigurasi slot, sediakan properti dalam objek JSON baik di
fulfillment (direferensikan sebagai parameter sesi) atau di editor JSON inline.
Anda dapat menemukan properti yang tersedia untuk setiap jenis slot di
Referensi JSON Actions Builder. Misalnya, actions.type.DeliveryAddressValue
jenis slot sesuai dengan konten referensi untuk
DeliveryAddressValue
slot waktu.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-slot.png?authuser=8&hl=id)
Pemetaan nilai slot
Dalam banyak kasus, pencocokan intent sebelumnya bisa menyertakan parameter yang sebagian atau mengisi penuh nilai slot scene yang sesuai. Dalam kasus ini, semua slot diisi oleh parameter intent yang dipetakan ke pengisian slot scene jika nama slot cocok dengan nama parameter intent.
Misalnya, jika pengguna cocok dengan maksud untuk memesan minuman dengan mengatakan "Saya ingin untuk memesan kopi vanila besar", slot yang sudah ada untuk ukuran, rasa, dan minuman dianggap terisi dalam adegan yang sesuai jika adegan itu mendefinisikan slot waktu.
Memproses input
Di tahap ini, Anda dapat meminta Asisten NLU mencocokkan input pengguna dengan intent. Anda dapat mencakup pencocokan intent ke scene tertentu dengan menambahkan intent yang diinginkan ke tempat kejadian. Izin ini memungkinkan Anda mengontrol alur percakapan dengan memberi tahu Asisten untuk mencocokkan intent tertentu ketika scene tertentu aktif.
Dalam sebuah scene, klik ikon + untuk User intent handler atau Tahap Penanganan intent sistem. Editor untuk pengendali intent akan muncul di sebelah kanan. Anda dapat menetapkan fungsi intent berikut pengendali:
- Intent - Menentukan intent yang ingin dicocokkan dalam suasana ini.
- Memanggil webhook Anda - Memicu webhook. Melihat webhook untuk informasi lebih lanjut tentang cara menangani permintaan webhook.
- Mengirim perintah - Menentukan perintah statis kepada pengguna, sehingga mereka tahu cara merespons. Lihat dokumentasi perintah untuk informasi selengkapnya tentang menentukan prompt.
- Transisi (jika ada) - Menentukan scene yang akan menjadi tujuan transisi saat intent yang ditetapkan cocok.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-customintent.png?authuser=8&hl=id)
![](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/scene-systemintent.png?authuser=8&hl=id)