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 mem-build agen
Bagian ini memberikan informasi yang harus Anda pertimbangkan sebelum mulai mem-build 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 memilih platform yang akan didukung, siapkan konten Anda dengan sesuai. Beberapa integrasi platform Dialogflow mendukung pesan multimedia yang dapat menyertakan elemen seperti gambar, link, dan chip saran.
Membangun agen secara berulang
Jika agen Anda akan berukuran besar atau kompleks, mulailah dengan membuat dialog yang hanya menangani permintaan tingkat teratas. Setelah struktur dasar dibuat, ulangi jalur percakapan untuk memastikan Anda mencakup semua kemungkinan rute yang dapat 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 dengan cepat membuat agen yang berfungsi.
Entity sistem
Saat pengguna membuat permintaan, ada informasi penting yang harus diuraikan dari apa yang mereka katakan. Di Dialogflow, hal ini disebut entity. Secara khusus, entity sistem adalah entity bawaan yang disediakan oleh Dialogflow yang menangani jenis informasi yang paling populer.
Basa-basi
Saat mengembangkan dialog, Anda mungkin telah mempertimbangkan untuk menangani permintaan yang tidak sesuai topik. Dialogflow menyediakan fitur opsional yang disebut small talk. Dengan mengaktifkan fitur ini, 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, profesional, atau di antara keduanya, 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 ucapan 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 agen, serta deskripsi singkat (sesuai kebutuhan) tentang cara menggunakan fitur ini. |
Agen harus memiliki pesan keluar yang sesuai saat interaksi yang berhasil berakhir. | Saat pengguna menyelesaikan tugas di agen Anda, agen tersebut akan merangkum 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 untuk memastikan frasa Anda mencakup berbagai kemungkinan permintaan. |
Anotasi harus konsisten. |
|
Gunakan anotasi yang bermakna secara semantik untuk entity sistem. | Makna semantik bagian frasa pelatihan yang dipilih untuk anotasi dapat terpengaruh oleh teks lainnya dalam frasa pelatihan. Misalnya:
Misalnya, jangan gunakan entitas sistem @sys.duration untuk anotasi contoh "7 tahun" pertama di atas. Makna semantik "7 tahun" tidak cocok dengan durasi waktu sederhana. Sebagai gantinya, Anda harus menggunakan entity sistem @sys.age . |
Entitas kustom harus mencakup berbagai contoh. | Entitas adalah daftar item. Machine learning akan menangani bentuk tata bahasa, tetapi Anda harus menyertakan semua item yang mungkin. Selain itu, centang opsi tentukan sinonim dan sertakan beberapa variasi. |
Nonaktifkan ML untuk sesedikit mungkin intent. | Frasa pelatihan untuk intent dengan ML dinonaktifkan tidak digunakan saat melatih agen Anda. Kueri pengguna yang sangat mirip dengan frasa pelatihan dalam intent dengan ML dinonaktifkan dapat dicocokkan dengan intent yang salah jika intent lain dengan ML diaktifkan memiliki sedikit kemiripan dengan kueri pengguna. Jika Anda mengalami masalah dengan positif palsu, naikkan nilai minimum klasifikasi ML, bukan menonaktifkan ML. |
Jangan menetapkan nilai minimum klasifikasi ML yang tinggi untuk agen dengan sedikit data pelatihan. | Jika nilai minimum tinggi, dan tidak ada banyak data pelatihan, hanya kueri pengguna yang memiliki kecocokan hampir 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 menentukan 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 komposit tidak boleh berisi satu @sys.any sebagai sinonim. |
Jangan menentukan entity yang terdiri dari kata pengisi atau teks yang tidak bermakna. | Contoh kata pengisi dan teks yang tidak bermakna adalah: "hmmm", "mari kita lihat", "tolong", "bisakah Anda". Jika Anda mencoba menggunakan entity 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 entitas. |
Entitas 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, hal ini mungkin karena frasa pelatihan intent lebih sesuai dengan 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 entitas untuk menangkap rencana. |
Teks yang dianotasi dalam frasa pelatihan harus bervariasi. | Misalnya, jika Anda memberikan nilai waktu yang harus diuraikan sebagai entitas sistem @sys.time dalam frasa pelatihan, jangan berikan waktu yang sama di semua frasa pelatihan. Frasa pelatihan Anda harus memiliki berbagai contoh waktu seperti: "07.00", "20.00", "9 o'clock". |
Intent dengan banyak parameter juga harus memiliki banyak frasa pelatihan. | Sebagai aturan, usahakan memiliki frasa pelatihan setidaknya tiga kali lipat dari parameter dan setidaknya 10-20 (bergantung 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. |
Aktifkan koreksi ejaan otomatis. | Jika menggunakan input teks, Anda harus mengaktifkan koreksi ejaan otomatis. |
Jangan membuat entitas gabungan bertingkat | Jangan gunakan lebih dari satu tingkat bertingkat dalam entitas komposit. Setiap tingkat tingkatan 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, Anda harus mempertimbangkan skema penamaan yang membantu Anda mengaturnya. Nama intent biasanya disegmentasikan dengan tanda baca, dengan tingkat kekhususan 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 intent yang bermanfaat
Praktik Terbaik | Detail |
---|---|
Agen harus mendukung permintaan kontekstual. | Misalnya, jika agen Anda menangani permintaan terkait cuaca dan pengguna bertanya "Cuaca di San Francisco", pastikan untuk menambahkan konteks guna mendukung permintaan lebih lanjut seperti "Bagaimana cuaca besok?" |
Agen harus memiliki tindak lanjut untuk ya, tidak, batalkan, berikutnya, kembali, dll. | Intent tindak lanjut digunakan untuk membalas respons umum. Untuk menambahkan intent tindak lanjut, arahkan kursor ke intent, lalu klik Tambahkan tindak lanjut. |
Intent harus memiliki minimal satu respons teks. | Bagian respons berada di bagian bawah halaman intent. Menambahkan variasi akan mengacak respons yang dipilih, sehingga pengalaman menjadi tidak terlalu berulang. |
Agen harus mengumpulkan semua informasi yang diperlukan untuk memenuhi permintaan pengguna. | Pertimbangkan untuk membuat parameter yang diperlukan. Agen Anda akan terus meminta informasi kepada pengguna hingga mendapatkan informasi yang diperlukan. Tindakan 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 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 membalas dengan "burung beo hutan", intent penggantian/tindak lanjut harus merumuskan ulang pertanyaan, seperti "Maaf, warna apa itu?" |
Agen harus memiliki respons khusus merek yang disesuaikan dalam intent penggantian default. | Saat pengguna mengucapkan sesuatu yang tidak cocok dengan intent, intent penggantian default akan dicocokkan. Halaman ini harus disesuaikan untuk mencerminkan brand Anda, serta memberikan informasi untuk memandu pengguna membuat permintaan yang valid. |
Untuk fulfillment yang disesuaikan, agen harus memiliki intent yang memungkinkan pengguna mengulangi informasi. | Satu intent dapat menangani permintaan seperti "ucapkan lagi", "ulangi", "putar lagi", dll. Ini dapat berupa intent lanjutan. |
Bantu pengguna untuk berhasil, arahkan mereka untuk memberi tahu Anda persis apa yang ingin Anda dengar sebagai jawaban | Misalnya: jika Anda memberikan opsi, jangan bertanya "Apakah Anda ingin A atau B?". - karena pengguna dapat menjawab "ya". Sebagai gantinya, tanyakan: "Saya memiliki A dan saya memiliki B. Mana yang lebih Anda sukai? |
Persona
Praktik Terbaik | Detail |
---|---|
Respons agen harus memiliki gaya dan nada yang sesuai dengan brand Anda dan konsisten di seluruh agen. | Saat pengguna berkomunikasi dengan agen Anda, mereka akan merasa seperti berbicara dengan satu persona. Pastikan kualitas dan kepribadian yang Anda pilih terwakili dalam semua respons Anda. |
Agen harus sensitif 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 namanya. Saat menampilkan daftar opsi, tampilkan kecocokan terbaik dan tanyakan apakah pengguna ingin mendengar opsi alternatif. |
Jangan biarkan keheningan yang canggung. Selalu akhiri dengan pertanyaan. Arahkan percakapan dan mulai interaksi. | |
Tulis dialog ringkas yang mudah dipahami. | Di layar, teks dapat 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 cara 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. |
Simpan data percakapan chat di BigQuery untuk memiliki kontrol atas penyimpanan regional. | Melalui Cloud Logging atau dengan menggunakan Dialogflow API, Anda dapat mengirim ucapan chat 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 cetak biru untuk membuat 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 Webmaster Google. Situs seperti pages.github tidak akan berfungsi karena tidak dapat di-crawl. |
Menggunakan 1-200 FAQ | Anda memerlukan lebih dari satu pasangan Tanya Jawab dan tidak lebih dari 200 per pusat informasi. Anda dapat memuat beberapa basis pengetahuan jika memerlukannya. |
Mengimplementasikan Dialogflow API
Praktik Terbaik | Detail |
---|---|
Jangan mengekspos kunci pribadi akun layanan Anda di codebase klien untuk aplikasi seluler atau web. | Tindakan ini tidak dianggap aman. Siapa pun yang mahir menggunakan alat Chrome Dev 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 begitu, akun layanan tidak akan diekspos 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 jika respons suara diperlukan. |
Pengujian
Praktik Terbaik | Detail |
---|---|
Uji aplikasi Anda secara menyeluruh dengan seseorang yang tidak terlibat dalam pengembangannya. | Meminta seseorang yang tidak terbiasa dengan agen menggunakan aplikasi akan memberi Anda insight tentang seberapa alami alur percakapan. Minta mereka untuk memperhatikan akurasi, jeda yang lama, jalur percakapan yang tidak ada, 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
- Lihat panduan desain percakapan yang disediakan oleh tim Actions on Google.
- Lihat panduan SSML yang disediakan oleh tim Actions on Google.