Setelah memiliki entity urutan, Anda dapat membuat intent untuk mengumpulkan urutan dari pengguna akhir. Anda memerlukan setidaknya tiga intent dengan tanggung jawab berikut:
- Intent kepala "Sequence"
- Menangkap ucapan untuk memulai pengumpulan urutan.
- Dipanggil oleh peristiwa tindak lanjut untuk terus merekam urutan hingga pengguna akhir menyatakan bahwa mereka sudah selesai.
- Intent kontekstual "Urutan - Edit"
- Menangkap ucapan untuk memperbaiki urutan terakhir yang dikumpulkan.
- Secara terprogram, loop kembali ke intent "Sequence" untuk mengumpulkan urutan yang dikoreksi.
- Intent kontekstual "Sequence - Done"
- Menangkap ucapan yang menunjukkan bahwa urutan sudah selesai.
Di bagian berikutnya, Anda akan melihat cara webhook menghubungkan semua ini, tetapi pertama-tama, mari kita siapkan intent.
Membuat intent "Sequence"
Ini adalah intent utama untuk mengumpulkan urutan. Konfigurasikan seperti ini:
- Biarkan konteks input kosong sehingga pengguna akhir dapat memicu intent ini di awal panggilan.
- Tambahkan konteks output "collecting-sequence". Kita akan menggunakan konteks ini untuk mengaktifkan intent perbaikan dan penyelesaian selama alur.
- Tambahkan konteks output "editing-sequence" dan tetapkan masa aktif ke 0. Kita akan mengaktifkan konteks ini dengan masa aktif dari intent "Sequence - Edit" di bagian berikutnya, dan penting untuk menghapus konteks tersebut di sini sehingga konteks "editing-sequence" hanya aktif segera setelah memicu intent "Edit".
Tambahkan peristiwa "continue-sequence" agar webhook Anda dapat memutar intent ini untuk mengumpulkan semua urutan parsial.
Tambahkan frasa pelatihan agar pengguna akhir dapat memicu intent ini untuk memulai alur. Contoh ini menggunakan frasa seperti "apa status pesanan saya", "lacak pesanan saya", "di mana pesanan saya", dll.
Tambahkan nama tindakan "handle-sequence" agar webhook mengetahui kapan harus diaktifkan. Anda akan membuat kode webhook di bagian berikutnya dalam tutorial ini, setelah semua intent disiapkan.
Tambahkan parameter yang diperlukan "new_sequence" menggunakan entity regexp yang Anda buat untuk mengumpulkan urutan parsial di bagian sebelumnya. Tetapkan jenis entitas ke "@alphanumeric" dan nilai ke "$new_sequence".
Tambahkan parameter opsional "existing_sequence" dengan nilai "#continue-sequence.existing_sequence" untuk mengekstrak urutan baru yang ada dari peristiwa. Anda dapat mengosongkan jenis entity.
Tambahkan parameter opsional "previous_sequence" dengan nilai "#continue-sequence.previous_sequence" untuk mengekstrak urutan sebelumnya dari peristiwa. Anda dapat mengosongkan jenis entity.
Aktifkan panggilan webhook untuk intent ini dan panggilan webhook untuk pengisian slot.
Membuat intent "Sequence - Edit"
Intent ini memproses ucapan yang menunjukkan bahwa urutan sebelumnya salah didengar oleh agen. Siapkan seperti ini:
- Tambahkan konteks input "collecting-sequence" sehingga intent ini hanya dipanggil saat kita berada di tengah alur urutan. Ini adalah konteks yang sama yang diaktifkan oleh intent "Sequence".
- Tambahkan konteks output "editing-sequence" untuk webhook fulfillment yang akan direferensikan. Saat intent ini diaktifkan, webhook akan memutar Dialogflow kembali ke intent "Urutan" utama untuk mengumpulkan urutan berikutnya. Webhook untuk pengisian slot intent "Sequence" akan memeriksa konteks "editing-sequence" yang aktif untuk memberikan respons "coba lagi" yang simpatik kepada pengguna akhir.
Tambahkan frasa pelatihan seperti "tidak", "itu salah", dll.
Tambahkan nama tindakan "handle-sequence". Ini adalah tindakan yang sama dengan intent "Sequence" sehingga kita dapat menggunakan kembali logika webhook yang sama.
Tambahkan parameter "new_sequence" dengan nilai "#collecting-sequence.previous_sequence" untuk mengekstrak urutan sebelumnya dari konteks, yang secara efektif mengurungkan ucapan terakhir. Kita tidak menambahkan parameter "existing_sequence" di sini sehingga webhook akan menimpa urutan yang ada dengan urutan sebelumnya.
Aktifkan panggilan webhook untuk intent ini.
Buat intent "Sequence - Done".
- Menambahkan konteks input "collecting-sequence"
- Tambahkan konteks output "collecting-sequence" dan tetapkan masa aktif ke 0 untuk menghapus konteks. Menghapusnya akan mencegah intent "Edit" dan "Selesai" terpicu lagi setelah agen selesai mengumpulkan urutan.
Tambahkan frasa pelatihan seperti "selesai", "selesai semua", dll.
Tambahkan parameter "sequence" dengan nilai "#collecting-sequence.existing_sequence" untuk mengekstrak urutan akhir dari konteks.
Aktifkan panggilan webhook untuk intent ini.
Menautkan intent melalui webhook
Sekarang Anda memiliki semua yang diperlukan untuk membuat kode logika untuk intent ini. Di bagian berikutnya, Anda akan melihat cara membuat kode webhook untuk menggunakan semua konteks, tindakan, parameter, dan peristiwa ini untuk menyelesaikan alur validasi urutan.