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 membuat agen
Bagian ini memberikan informasi yang harus Anda pertimbangkan sebelum mulai membuat 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 tepat. 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 teratas. Setelah struktur dasar dibuat, lakukan iterasi pada 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 siap pakai mencakup kasus penggunaan umum seperti pemesanan hotel, navigasi, dan belanja online. Agen ini dilengkapi dengan maksud dan entitas 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 perlu diuraikan dari apa yang mereka katakan. Di Dialogflow, ini disebut entitas. Khususnya, entitas sistem adalah entitas bawaan yang disediakan oleh Dialogflow yang menangani jenis informasi yang paling populer.
Basa-basi
Saat mengembangkan dialog, Anda mungkin mempertimbangkan untuk menangani permintaan yang tidak relevan. Dialogflow menyediakan fitur opsional yang disebut percakapan ringan. Dengan mengaktifkan fitur ini, agen Anda akan merespons percakapan umum, respons emosional, dan pertanyaan tentang agen itu sendiri. Semua respons percakapan ringan dapat disesuaikan untuk memastikan pengalaman, baik kasual, profesional, atau di antara keduanya, sesuai dengan merek Anda.
Praktik terbaik desain agen
Bagian ini memberikan daftar praktik terbaik untuk agen yang kuat, akurat, berperforma tinggi, dan dapat digunakan.
Salam dan ucapan selamat tinggal
| Praktik Terbaik | Detail |
|---|---|
| Maksud sambutan harus memberi tahu pengguna tentang kemampuan agen dengan mempertimbangkan branding. | Maksud sambutan agen Anda harus memberi tahu pengguna tentang 2-3 tugas yang dapat dibantu agen, serta deskripsi singkat (jika diperlukan) 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 mengatakan sesuatu seperti "Sampai jumpa", dll. |
Machine learning dan pelatihan
| Praktik Terbaik | Detail |
|---|---|
| Intent harus memiliki minimal 10-20 frasa pelatihan (bergantung pada kompleksitas intent). | Kompleksitas agen Anda akan menentukan jumlah 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 maksud, 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 spektrum luas kemungkinan permintaan. |
| Anotasi harus konsisten. |
|
| Gunakan anotasi yang bermakna secara semantik untuk entity sistem. | Makna semantik bagian frasa pelatihan yang dipilih untuk anotasi dapat dipengaruhi oleh bagian teks lainnya dalam frasa pelatihan. Contoh:
Misalnya, jangan gunakan entity 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 kemungkinan item. Selain itu, centang opsi tentukan sinonim dan sertakan beberapa variasinya. |
| Nonaktifkan ML untuk sesedikit mungkin maksud. | Frasa latihan untuk intent dengan ML dinonaktifkan tidak digunakan saat melatih agen Anda. Kueri pengguna yang sangat mirip dengan frasa pelatihan dalam maksud dengan ML dinonaktifkan dapat dicocokkan dengan maksud yang salah jika maksud lain dengan ML diaktifkan memiliki sedikit kemiripan dengan kueri pengguna. Jika Anda mengalami masalah dengan positif palsu, tingkatkan nilai minimum klasifikasi ML, bukan menonaktifkan ML. |
| Jangan menetapkan nilai minimum klasifikasi ML yang tinggi untuk agen yang hanya memiliki 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 maksud. Anda perlu menyediakan banyak data pelatihan jika menginginkan batas yang tinggi. |
| Agen harus memiliki intent penggantian. | Tanpa maksud pengganti, 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 secara tidak sengaja mencocokkan maksud. |
| 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 komposit tidak boleh berisi satu @sys.any sebagai sinonim. |
| Jangan tentukan entitas yang terdiri dari kata pengisi atau teks yang tidak bermakna. | Contoh kata pengisi dan teks yang tidak bermakna adalah: "hmmm", "coba lihat", "tolong", "bisakah Anda". Jika Anda mencoba menggunakan entity seperti ini untuk memperkenalkan variasi, Anda hanya akan menurunkan performa ML. Dialogflow sudah memperluas data untuk menangani variasi seperti ini. Anda harus menambahkan frasa seperti ini ke frasa pelatihan, bukan entity. |
| Entitas harus memiliki cakupan terbatas yang mencakup nilai berbeda dari satu jenis informasi. | Pastikan entitas Anda fokus, singkat, dan sederhana. Jika nilai entity Anda rumit, hal ini mungkin karena frasa pelatihan maksud 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 entitas 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 merekam tindakan dan entitas guna merekam rencana. |
| Teks yang diberi anotasi 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: "pukul 07.00", "20.00", "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 parameter dan setidaknya 10-20 frasa pelatihan (bergantung pada kompleksitas maksud). |
| 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 @sys.any berturut-turut atau total tiga entitas @sys.any. Dialogflow mungkin tidak dapat membedakannya. |
| Jangan gunakan frasa pelatihan yang serupa dalam maksud 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 Anda menggunakan input teks, Anda harus mengaktifkan koreksi ejaan otomatis. |
| Jangan menumpuk entitas gabungan | Jangan gunakan lebih dari satu tingkat penyusunan bertingkat dalam entitas gabungan. Setiap level 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 tetap teratur. Nama intent biasanya disegmentasikan dengan tanda baca, dengan spesifisitas yang meningkat dari kiri ke kanan. Selain itu, nama intent harus mencerminkan maksud pengguna akhir untuk giliran percakapan.
Ada banyak skema penamaan yang baik, tetapi berikut 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 maksud yang bermanfaat
| Praktik Terbaik | Detail |
|---|---|
| Agen harus mendukung permintaan kontekstual. | Misalnya, jika agen Anda menangani permintaan cuaca dan pengguna bertanya "Cuaca di San Francisco", 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. | Maksud lanjutan digunakan untuk membalas respons umum. Untuk menambahkan intent lanjutan, arahkan kursor ke intent, lalu klik Tambahkan lanjutan. |
| Maksud (intent) harus memiliki minimal satu respons teks. | Bagian respons berada di bagian bawah halaman maksud. 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 menjadikan parameter yang diperlukan sebagai wajib diisi. Agen Anda akan terus meminta pengguna hingga mendapatkan informasi yang dibutuhkan. Proses 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 entitas dan parameter yang berulang. |
Perbaikan percakapan
| Praktik Terbaik | Detail |
|---|---|
| Agen harus memiliki perintah pemulihan yang berguna untuk setiap langkah dialog. | Misalnya, jika perintah awalnya adalah "Warna apa yang Anda inginkan?" dan pengguna menjawab dengan "hijau hutan", maksud penggantian/tindak lanjut harus memfrasa ulang pertanyaan, seperti "Maaf, warna apa tadi?" |
| Agen harus memiliki respons khusus yang spesifik untuk merek dalam maksud penggantian default. | Saat pengguna mengucapkan sesuatu yang tidak cocok dengan intent, intent penggantian default akan dicocokkan. Hal ini harus disesuaikan untuk mencerminkan merek Anda, serta memberikan informasi untuk memandu pengguna membuat permintaan yang valid. |
| Untuk pemenuhan yang disesuaikan, agen harus memiliki maksud yang memungkinkan pengguna mengulangi informasi. | Satu intent dapat menangani permintaan seperti "ucapkan lagi", "ulangi", "putar lagi", dll. Intent ini dapat berupa intent lanjutan. |
| Bantu pengguna agar berhasil, arahkan mereka untuk memberi tahu Anda secara persis jawaban yang ingin Anda dengar | Misalnya: jika Anda memberikan opsi, jangan tanyakan "Apakah Anda ingin A atau B?". - karena pengguna dapat menjawab "ya". Sebagai gantinya, tanyakan: "Saya punya A dan saya punya B. Mana yang Anda pilih? |
Persona
| Praktik Terbaik | Detail |
|---|---|
| Respons agen harus memiliki gaya dan nada yang sesuai dengan brand Anda dan konsisten di seluruh agen. | Saat pengguna berbicara dengan agen Anda, mereka akan merasa seperti sedang berbicara dengan satu persona. Pastikan kualitas dan kepribadian yang telah Anda pilih tercermin dalam semua respons Anda. |
| Agen harus sensitif terhadap budaya, gender, keyakinan agama, kemampuan, dan usia. | Memberikan stereotipe 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 dengan menyebutkan namanya. Saat menyajikan daftar opsi, kembalikan kecocokan terbaik dan tanyakan apakah pengguna ingin mendengar opsi alternatif. |
| Jangan membuat 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 merasa puas. |
| Menggunakan SSML | Gunakan SSML untuk menyusun dan mengubah intonasi kalimat Anda, 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 terhadap GDPR. | Di setelan agen, Anda dapat menonaktifkan logging interaksi di Dialogflow. Dengan menonaktifkan fitur ini, tidak ada data PII yang akan disimpan di Dialogflow. Artinya, fitur tertentu, seperti analisis, tidak akan tersedia. |
| Simpan 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 panduan penting untuk membangun layanan pelanggan yang didukung AI di GCP. |
Menggunakan konektor knowledge base
| 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 FAQ 1-200 | Anda memerlukan lebih dari satu pasangan Tanya Jawab dan tidak lebih dari 200 per pusat informasi. Anda dapat memuat beberapa basis pengetahuan jika memerlukan lebih banyak. |
Mengimplementasikan Dialogflow API
| Praktik Terbaik | Detail |
|---|---|
| Jangan mengekspos kunci pribadi akun layanan Anda di codebase klien untuk aplikasi seluler atau web. | Hal ini tidak dianggap aman. Siapa pun yang mahir menggunakan alat Dev Chrome dapat mencuri kunci Anda dan melakukan panggilan API (berbayar) melalui akun Anda. Sebaiknya selalu biarkan server proxy API menangani autentikasi Google Cloud. Dengan cara ini, akun layanan tidak akan diekspos ke publik, dan kunci dapat disimpan dengan aman.} |
Mendesain 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 terbiasa dengan agen menggunakan aplikasi akan memberi Anda insight tentang seberapa alami alur percakapan. 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
- Lihat panduan desain percakapan yang disediakan oleh tim Actions on Google.
- Lihat panduan SSML yang disediakan oleh tim Actions on Google.