Praktik terbaik desain agen umum

Panduan ini memberikan praktik terbaik umum untuk mendesain semua jenis agen.

Anda juga harus melihat panduan desain agen suara khusus untuk mendesain agen suara, dan panduan praktik terbaik untuk menggunakan layanan Dialogflow.

Sebelum membangun agen

Bagian ini memberikan informasi yang harus Anda pertimbangkan sebelum mulai membangun agen.

Tujuan

Pertimbangkan tujuan keseluruhan agen Anda:

  • Apa yang ingin dicapai bisnis Anda?
  • Apa yang akan diharapkan pengguna dari agen Anda?
  • Seberapa sering pengguna akan berinteraksi dengan agen Anda?

Platform

Pertimbangkan cara pengguna akan mengakses agen Anda. Tinjau platform yang didukung oleh Dialogflow sebelum membuat konten. Saat Anda memilih platform yang akan didukung, siapkan konten Anda sebagaimana mestinya. Beberapa integrasi platform Dialogflow mendukung pesan multimedia yang dapat menyertakan elemen seperti gambar, link, dan chip saran.

Membangun agen secara iteratif

Jika agen Anda akan berukuran besar atau kompleks, mulailah dengan membuat dialog yang hanya menangani permintaan tingkat atas. Setelah struktur dasar dibuat, lakukan iterasi pada jalur percakapan untuk memastikan Anda mencakup semua kemungkinan rute yang mungkin diambil pengguna.

Agen bawaan

Dialogflow menawarkan agen yang telah dibuat sebelumnya untuk membantu Anda memulai. Agen bawaan mencakup kasus penggunaan umum seperti pemesanan hotel, navigasi, dan belanja online. Agen ini dilengkapi dengan intent dan entity untuk mencakup kueri pengguna yang paling umum. Tambahkan respons khusus untuk bisnis Anda, dan Anda akan segera membangun agen yang berfungsi.

Entity sistem

Saat pengguna membuat permintaan, ada informasi penting yang perlu diuraikan dari apa yang mereka katakan. Di Dialogflow, ini disebut entity. Secara khusus, entity sistem adalah entity bawaan yang disediakan oleh Dialogflow yang menangani jenis informasi paling populer.

Basa-basi

Saat mengembangkan dialog, Anda mungkin telah mempertimbangkan untuk menangani permintaan yang tidak sesuai topik. Dialogflow menyediakan fitur opsional yang disebut basa-basi. Jika fitur ini diaktifkan, agen Anda akan merespons percakapan umum, respons emosional, dan pertanyaan tentang agen itu sendiri. Semua respons obrolan ringan dapat disesuaikan untuk memastikan pengalaman, baik santai, formal, atau di antaranya, mewakili merek Anda.

Praktik terbaik desain agen

Bagian ini memberikan daftar praktik terbaik untuk agen yang andal, akurat, berperforma tinggi, dan dapat digunakan.

Salam dan perpisahan

Praktik Terbaik Detail
Intent sambutan harus memberi tahu pengguna tentang kemampuan agen dengan mempertimbangkan branding. Intent sambutan agen Anda harus memberi tahu pengguna tentang 2-3 tugas yang dapat dibantu oleh agen, serta deskripsi singkat (sesuai kebutuhan) tentang cara menggunakan fitur ini.
Agen harus memiliki pesan keluar yang sesuai saat interaksi yang berhasil telah berakhir. Saat pengguna menyelesaikan tugas di agen Anda, agen harus meringkas transaksi/tugas dan mengucapkan sesuatu seperti "Sampai jumpa lagi", dll.

Machine learning dan pelatihan

Praktik Terbaik Detail
Intent harus memiliki setidaknya 10-20 (bergantung pada kompleksitas intent) frasa pelatihan. Kompleksitas agen Anda akan menentukan jumlah sebenarnya frasa pelatihan yang harus dimiliki setiap intent, tetapi 10-20 (bergantung pada kompleksitas intent) adalah jumlah minimum yang baik. Makin banyak parameter yang Anda miliki dalam intent, makin banyak frasa yang harus Anda berikan untuk melatih model machine learning.
Frasa pelatihan harus bervariasi. Sertakan variasi pertanyaan, perintah, kata kerja, dan sinonim untuk kata benda umum guna memastikan frasa Anda mencakup berbagai kemungkinan permintaan.
Anotasi harus konsisten.
  • Tinjau frasa pelatihan Anda dan pastikan anotasi yang ditandai mengarah ke entity yang benar.
  • Anda tidak boleh memiliki teks dalam frasa pelatihan yang dianotasi dalam beberapa kasus, tetapi tidak dalam kasus lainnya.
  • Rentang teks yang dipilih untuk anotasi harus mencakup semua teks yang diperlukan untuk mencocokkan entity, dan tidak lebih dari itu.
  • Pastikan teks yang dianotasi dalam beberapa frasa pelatihan berisi bagian frasa pelatihan yang serupa. Misalnya, Anda memiliki frasa pelatihan "Setel alarm pukul 06.00", dengan "06.00" dianotasi sebagai @sys.date. Jika Anda memiliki frasa pelatihan lain "bangunkan saya jam 7 pagi", beri anotasi pada "jam 7 pagi", tetapi jangan beri anotasi pada "saya jam 7 pagi".
Gunakan anotasi yang bermakna secara semantik untuk entity sistem. Arti semantik dari bagian frasa pelatihan yang dipilih untuk anotasi dapat dipengaruhi oleh teks lainnya dalam frasa pelatihan. Contoh:
  • Saya berusia 7 tahun (makna semantik dari teks yang dianotasi adalah usia seseorang)
  • Kontrak berlaku selama 7 tahun (makna semantik teks yang dianotasi adalah durasi waktu)
Model machine learning Dialogflow mempertimbangkan makna semantik saat mencocokkan entity sistem. Makna semantik bagian frasa pelatihan harus cocok dengan makna semantik yang dimaksud dari entity sistem.

Misalnya, jangan gunakan entity sistem @sys.duration untuk anotasi contoh "7 tahun" pertama di atas. Makna semantik "7 tahun" tidak cocok dengan durasi waktu yang sederhana. Sebagai gantinya, Anda harus menggunakan entity sistem @sys.age.
Entitas kustom harus mencakup berbagai contoh. Entity adalah daftar item. Machine learning akan menangani bentuk tata bahasa, tetapi Anda harus menyertakan semua kemungkinan item. Selain itu, centang opsi tentukan sinonim dan sertakan beberapa variasi.
Nonaktifkan ML untuk sesedikit mungkin intent. Frasa pelatihan untuk intent dengan ML yang dinonaktifkan tidak digunakan saat melatih agen Anda. Kueri pengguna yang sangat mirip dengan frasa pelatihan dalam intent dengan ML yang dinonaktifkan dapat dicocokkan dengan intent yang salah jika intent lain dengan ML yang diaktifkan memiliki sedikit kemiripan dengan kueri pengguna. Jika Anda mengalami masalah dengan positif palsu, naikkan batas klasifikasi ML, bukan menonaktifkan ML.
Jangan menetapkan batas klasifikasi ML yang tinggi untuk agen yang hanya memiliki sedikit data pelatihan. Jika nilai minimumnya tinggi, dan data pelatihan tidak banyak, hanya kueri pengguna yang memiliki kecocokan hampir sama persis dengan frasa pelatihan yang akan menghasilkan pencocokan intent. Anda perlu menyediakan banyak data pelatihan jika menginginkan nilai minimum yang tinggi.
Agen harus memiliki intent penggantian. Tanpa intent penggantian, kueri pengguna yang tidak cocok akan menghasilkan respons kosong.
Agen harus memberikan contoh negatif. Contoh negatif mencegah kueri pengguna yang sedikit mirip dengan frasa pelatihan agar tidak cocok dengan intent secara tidak sengaja.
Jangan tentukan entity yang cocok dengan hampir semua hal. Hal ini menurunkan performa dan kualitas ML. Hampir semua hal dalam setiap frasa pelatihan akan dievaluasi sebagai kemungkinan kecocokan. Sebaiknya gunakan @sys.any. Demikian pula, entity gabungan tidak boleh berisi satu @sys.any sebagai sinonim.
Jangan tentukan entity yang terdiri dari kata pengisi atau teks yang tidak bermakna. Contoh kata pengisi dan teks yang tidak bermakna adalah: "hmmm", "coba kita lihat", "tolong", "bisakah Anda". Jika Anda mencoba menggunakan entitas seperti ini untuk memperkenalkan variasi, Anda hanya akan menurunkan performa ML. Dialogflow sudah menambah data untuk menangani variasi seperti ini. Anda harus menambahkan frasa seperti ini ke frasa pelatihan, bukan ke entity.
Entity harus memiliki cakupan terbatas yang menangkap nilai berbeda dari satu jenis informasi. Pastikan entitas Anda tetap fokus, singkat, dan sederhana. Jika nilai entity Anda rumit, mungkin karena frasa pelatihan intent lebih cocok untuk situasi Anda. Misalnya, pertimbangkan ekspresi pengguna akhir seperti "Bagaimana cara melakukan panggilan internasional dengan Paket A?" dan "Menggunakan roaming data internasional dengan Paket B". Jangan membuat entity untuk tindakan ("Bagaimana cara melakukan panggilan internasional" dan "Menggunakan roaming data internasional") dan paket ("Paket A", "Paket B"). Sebagai gantinya, Anda harus menggunakan frasa pelatihan dan pencocokan intent untuk menangkap tindakan dan entity untuk menangkap rencana.
Teks yang dianotasi dalam frasa pelatihan harus bervariasi. Misalnya, jika Anda memberikan nilai waktu yang harus diuraikan sebagai entity sistem @sys.time dalam frasa pelatihan, jangan berikan waktu yang sama di semua frasa pelatihan. Frasa pelatihan Anda harus memiliki berbagai contoh waktu seperti: "7 a.m.", "8 p.m.", "9 o'clock".
Intent dengan banyak parameter juga harus memiliki banyak frasa pelatihan. Sebagai aturan, usahakan untuk memiliki frasa pelatihan setidaknya tiga kali lebih banyak daripada jumlah parameter dan setidaknya 10-20 (tergantung pada kompleksitas intent) frasa pelatihan.
Setiap parameter harus digunakan dalam banyak frasa pelatihan. Sebagai aturan, setiap parameter harus digunakan dalam minimal 5 frasa pelatihan.
Hindari penggunaan beberapa entity @sys.any dalam frasa pelatihan. Satu frasa pelatihan tidak boleh berisi dua entitas @sys.any berturut-turut atau total tiga entitas @sys.any. Dialogflow mungkin tidak dapat membedakannya.
Jangan gunakan frasa pelatihan yang serupa dalam intent yang berbeda. Intent yang berbeda tidak boleh berisi frasa pelatihan yang serupa, karena hal ini akan mencegah Dialogflow mempelajari cara mengenali frasa tersebut.
Mengaktifkan koreksi ejaan otomatis. Jika Anda menggunakan input teks, Anda harus mengaktifkan koreksi ejaan otomatis.
Jangan menumpuk entity gabungan Jangan gunakan lebih dari satu tingkat penyusunan bertingkat dalam entity gabungan. Setiap tingkat penyusunan bertingkat akan menurunkan kualitas secara signifikan.
Hindari karakter khusus dalam frasa pelatihan. Karakter khusus dalam frasa pelatihan, seperti {, _, #, dan [ akan diabaikan. Emoji adalah pengecualian; emoji berfungsi seperti yang diharapkan.

Penamaan intent

Jika agen Anda memiliki banyak intent, sebaiknya pertimbangkan skema penamaan yang membantu Anda mengaturnya. Nama intent biasanya disegmentasikan dengan tanda baca, dengan tingkat spesifisitas yang meningkat dari kiri ke kanan. Selain itu, nama intent harus mencerminkan niat pengguna akhir untuk giliran percakapan.

Ada banyak skema penamaan yang baik, tetapi berikut adalah salah satu contohnya:

  • phone-service.order.cancel
  • phone-service.order.create
  • phone-service.order.change
  • tv-service.order.cancel
  • tv-service.order.create
  • tv-service.order.change
  • account.balance.get
  • account.balance.pay
  • account.address.get
  • account.address.update

Fitur niat yang bermanfaat

Praktik Terbaik Detail
Agen harus mendukung permintaan kontekstual. Misalnya, jika agen Anda menangani permintaan terkait cuaca dan pengguna bertanya "Cuaca di Jakarta", pastikan untuk menambahkan konteks untuk mendukung permintaan lebih lanjut seperti "Bagaimana dengan besok?"
Agen harus memiliki tindak lanjut untuk ya, tidak, batalkan, berikutnya, kembali, dll. Intent lanjutan digunakan untuk membalas respons umum. Untuk menambahkan intent lanjutan, arahkan kursor ke intent, lalu klik Add follow-up.
Intent harus memiliki setidaknya satu respons teks. Bagian respons berada di bagian bawah halaman intent. Menambahkan variasi akan mengacak respons yang dipilih, sehingga membuat pengalaman menjadi tidak terlalu berulang.
Agen harus mengumpulkan semua informasi yang diperlukan untuk memenuhi permintaan pengguna. Pertimbangkan untuk membuat parameter yang diperlukan menjadi wajib. Agen Anda akan terus meminta pengguna hingga mendapatkan informasi yang diperlukan. Hal ini disebut pengisian slot.
Respons harus mengulang informasi sesuai kebutuhan, seperti mengonfirmasi pesanan. Saat pengguna membuat permintaan seperti melakukan pemesanan atau mengubah informasi, agen Anda harus mengulangi apa yang terjadi untuk tujuan konfirmasi. Saat membuat respons konfirmasi ini, pastikan untuk menyertakan semua kemungkinan kombinasi entity dan parameter yang berulang.

Perbaikan percakapan

Praktik Terbaik Detail
Agen harus memiliki perintah pemulihan yang bermanfaat untuk setiap langkah dialog. Misalnya, jika perintah awal adalah "Warna apa yang Anda inginkan?" dan pengguna menjawab dengan "burung beo hutan", intent pengganti/lanjutan harus menyusun ulang pertanyaan, seperti "Maaf, warna apa itu?"
Agen harus memiliki respons yang disesuaikan dan spesifik untuk merek dalam intent penggantian default. Saat pengguna mengucapkan sesuatu yang tidak cocok dengan intent, intent penggantian default akan dicocokkan. Formulir ini harus disesuaikan untuk mencerminkan merek Anda, serta memberikan informasi untuk memandu pengguna dalam membuat permintaan yang valid.
Untuk fulfillment yang disesuaikan, agen harus memiliki intent yang memungkinkan pengguna mengulangi informasi. Satu intent dapat menangani permintaan seperti "katakan lagi", "ulangi", "putar lagi", dll. Intent ini dapat berupa intent lanjutan.
Bantu pengguna agar berhasil, arahkan mereka untuk memberi tahu Anda secara persis apa yang ingin Anda dengar sebagai jawaban Misalnya: jika Anda memberikan opsi, jangan tanyakan "Apakah Anda ingin A atau B?". - karena pengguna dapat menjawab "ya". Sebaiknya tanyakan: "Saya punya A dan saya punya B. Mana yang Anda pilih?

Persona

Praktik Terbaik Detail
Respons agen harus memiliki gaya dan nuansa yang sesuai dengan brand Anda dan konsisten di seluruh agen. Saat pengguna berkomunikasi dengan agen Anda, mereka akan merasa seperti sedang berbicara dengan satu persona. Pastikan kualitas dan kepribadian yang Anda pilih diwakili dalam semua respons Anda.
Agen harus peka terhadap budaya, gender, keyakinan agama, kemampuan, dan usia. Stereotip dapat menyinggung pengguna, bahkan dalam lelucon, dan mereka mungkin tidak akan kembali ke agen Anda.

Mendesain untuk suara

Praktik Terbaik Detail
Hindari konten yang memerlukan visualisasi atau interaksi keyboard dan mouse. Jangan gunakan hyperlink, tabel, gambar, singkatan. Anda dapat merujuk ke situs berdasarkan nama. Saat menampilkan daftar opsi, tampilkan kecocokan terbaik dan tanyakan apakah pengguna ingin mendengar opsi alternatif.
Jangan membuat keheningan yang canggung. Selalu akhiri dengan pertanyaan. Arahkan percakapan dan buat interaksi terus berjalan.
Tulis dialog yang ringkas dan mudah dipahami. Di layar, teks dapat berukuran panjang dan berisi beberapa paragraf. Anda dapat melewati bagian yang tidak menarik bagi Anda. Namun, mendengar agen virtual berbicara terlalu lama tidak akan membuat pengguna Anda senang.
Menggunakan SSML Gunakan SSML untuk menyusun dan mengubah intonasi kalimat, sehingga suara Anda akan terdengar lebih alami.

Untuk mengetahui informasi selengkapnya tentang mendesain untuk suara, lihat Desain agen suara.

Perlindungan privasi konsumen

Praktik Terbaik Detail
Nonaktifkan logging data di setelan agen untuk kepatuhan GDPR. Di setelan agen, Anda dapat menonaktifkan logging interaksi di Dialogflow. Dengan menonaktifkan fitur ini, tidak ada data PII yang akan disimpan di Dialogflow. Hal ini juga berarti bahwa fitur tertentu, seperti analisis, tidak akan tersedia.
Menyimpan data percakapan chat di BigQuery untuk mengontrol penyimpanan regional. Melalui Cloud Logging atau dengan menggunakan Dialogflow API, Anda dapat mengirimkan ucapan chat yang masuk ke BigQuery. Dengan menggunakan pendekatan ini, Anda akan memiliki kontrol atas region tempat Anda ingin menyimpan data. Selain itu, Anda dapat menggunakan Data Loss Prevention API untuk menyamarkan informasi sensitif. Lihat blueprint untuk membangun layanan pelanggan yang didukung AI di GCP.

Menggunakan konektor pusat informasi

Praktik Terbaik Detail
Saat mengimpor FAQ publik, gunakan markup HTML5 yang valid. Misalnya, gunakan elemen artikel dengan notasi schema.org seperti schema.org/Question dan schema.org/Answer.
Pastikan situs FAQ Anda diindeks oleh Robot Google Situs harus mengizinkan Robot Google, dan harus ditambahkan ke mesin telusur Google melalui alat Google Webmaster. Situs seperti pages.github tidak akan berfungsi karena tidak dapat di-crawl.
Gunakan 1-200 FAQ Anda memerlukan lebih dari satu pasangan Tanya Jawab dan tidak lebih dari 200 per pusat informasi. Anda dapat memuat beberapa pusat informasi jika perlu.

Mengimplementasikan Dialogflow API

Praktik Terbaik Detail
Jangan mengekspos kunci pribadi akun layanan Anda di codebase klien untuk aplikasi seluler atau web. Hal ini dianggap tidak aman. Siapa pun yang mahir menggunakan Chrome DevTools dapat mencuri kunci Anda dan melakukan panggilan API (berbayar) melalui akun Anda. Pendekatan yang lebih baik adalah selalu mengizinkan server proxy API menangani autentikasi Google Cloud. Dengan cara ini, akun layanan tidak akan terekspos ke publik, dan kunci dapat disimpan dengan aman.}

Mendesain untuk suara dan teks dalam satu agen

Praktik Terbaik Detail
Jangan gunakan SSML dalam respons platform default. Jika agen Anda dapat merespons dengan suara dan teks, respons teks akan menyertakan kode SSML mentah. Gunakan teks biasa dalam respons platform default dan SSML dalam respons khusus platform. Atau, Anda dapat menggunakan webhook untuk membuat SSML hanya saat respons suara diperlukan.

Pengujian

Praktik Terbaik Detail
Uji aplikasi Anda secara menyeluruh dengan seseorang yang tidak terlibat dalam pengembangannya. Meminta seseorang yang tidak familier dengan agen untuk menggunakan aplikasi akan memberi Anda insight tentang seberapa alami alur percakapannya. Minta mereka memperhatikan akurasi, jeda yang lama, jalur percakapan yang hilang, kecepatan, transisi yang canggung, dll.
Uji aplikasi Anda di semua platform yang ingin Anda dukung. Jika agen Anda akan tersedia di satu atau beberapa platform, pastikan pesan multimedia dan respons muncul seperti yang diharapkan di semua platform.

Praktik terbaik perusahaan

Panduan desain percakapan tambahan