Praktik terbaik desain agen umum

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

Anda juga akan 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 membangun agen.

Tujuan

Pertimbangkan tujuan keseluruhan agen Anda:

  • Apa yang ingin dicapai oleh bisnis Anda?
  • Apa yang dapat 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 lengkap yang dapat mencakup elemen seperti gambar, link, dan chip saran.

Membuat agen secara iteratif

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

Agen siap pakai

Dialogflow menawarkan agen yang telah dibangun untuk membantu Anda memulai. Agen siap pakai 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 bisa dengan cepat membangun agen yang berfungsi.

Entitas sistem

Ketika pengguna membuat permintaan, ada informasi penting untuk diurai 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.

Obrolan ringan

Saat mengembangkan dialog, Anda mungkin mempertimbangkan penanganan permintaan yang di luar topik. Dialogflow menyediakan fitur opsional yang disebut small talk. Dengan mengaktifkan fitur ini, agen Anda akan merespons percakapan umum, tanggapan emosional, dan pertanyaan tentang agen itu sendiri. Semua respons {i>small talk<i} dapat disesuaikan untuk memastikan pengalamannya, baik kasual, bisnis, maupun di antaranya, mewakili brand Anda.

Praktik terbaik desain agen

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

Salam dan perpisahan

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

Machine learning dan pelatihan

Praktik Terbaik Detail
Intent harus memiliki setidaknya 10-20 frasa pelatihan (bergantung pada kompleksitas intent). Kompleksitas agen akan menentukan jumlah frasa pelatihan sebenarnya yang harus dimiliki setiap intent, tetapi 10-20 (bergantung pada kompleksitas intent) adalah jumlah minimum yang baik. Makin banyak parameter yang Anda miliki di intent, makin banyak frasa yang harus diberikan 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 kemungkinan permintaan yang luas.
Anotasi harus konsisten.
  • Tinjau frasa pelatihan Anda dan pastikan anotasi yang ditandai mengarah ke entitas yang benar.
  • Anda tidak boleh memiliki teks dalam frasa latihan yang dianotasikan dalam beberapa kasus tetapi tidak pada kasus lainnya.
  • Rentang teks yang dipilih untuk anotasi harus menyertakan semua, dan tidak lebih dari, teks yang diperlukan untuk mencocokkan suatu entitas.
  • Pastikan bahwa teks beranotasi di beberapa frasa pelatihan berisi bagian yang serupa dari frasa pelatihan. Misalnya, anggaplah Anda memiliki frasa pelatihan "Setel alarm pukul 6 pagi", dengan "6 pagi" dianotasi sebagai @sys.date. Jika Anda memiliki frasa pelatihan lain "bangunkan saya jam 7 pagi", beri anotasi "7 pagi", tetapi jangan beri anotasi "bangun jam 7 pagi".
Menggunakan anotasi yang bermakna secara semantik untuk entity sistem. Makna semantik dari bagian frasa pelatihan yang dipilih untuk anotasi dapat dipengaruhi oleh teks lainnya dalam frasa pelatihan. Sebagai contoh:
  • Saya berusia 7 tahun (makna semantik dari teks yang dianotasi adalah usia seseorang)
  • Kontrak ini berlaku selama 7 tahun (makna semantik dari teks beranotasi adalah durasi waktu)
Model machine learning Dialogflow mempertimbangkan makna semantik saat mencocokkan entitas sistem. Makna semantik dari bagian frasa pelatihan harus cocok dengan makna semantik yang dimaksudkan dari entitas sistem.

Misalnya, jangan gunakan entity sistem @sys.duration untuk anotasi contoh "7 tahun" pertama di atas. Arti 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 gramatikal, tetapi Anda harus menyertakan semua item yang memungkinkan. Selain itu, periksa 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. 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 diaktifkan memiliki sedikit kemiripan dengan kueri pengguna. Jika Anda mengalami masalah dengan positif palsu, tingkatkan batas klasifikasi ML, bukan menonaktifkan ML.
Jangan menetapkan batas klasifikasi ML yang tinggi untuk agen yang hanya memiliki sedikit data pelatihan. Jika batasnya tinggi, dan tidak ada banyak data pelatihan, hanya kueri pengguna yang memiliki kecocokan persis dengan frasa latihan 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 mencocokkan intent secara tidak sengaja.
Jangan tentukan entitas yang cocok dengan hampir semua hal. Hal ini menurunkan performa dan kualitas ML. Hampir semua yang ada di setiap frasa pelatihan akan dievaluasi sebagai kecocokan yang mungkin. Sebaiknya gunakan @sys.any. Demikian pula, entitas gabungan tidak boleh berisi satu @sys.any sebagai sinonim.
Jangan menetapkan entitas yang terdiri dari kata pengisi atau teks yang tidak bermakna. Contoh kata pengisi dan teks tanpa makna adalah: "hmmm", "mari kita lihat", "tolong", "bisakah kamu". Jika Anda mencoba menggunakan entitas seperti ini untuk memperkenalkan variasi, Anda hanya menurunkan performa ML. Dialogflow sudah meningkatkan 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. Buat entitas Anda tetap fokus, singkat, dan simpel. Jika nilai entity Anda rumit, mungkin karena frasa pelatihan intent lebih cocok 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 rencana ("Paket A", "Rencana B"). Sebagai gantinya, Anda harus menggunakan frasa pelatihan dan pencocokan intent untuk menangkap tindakan dan entitas untuk menangkap rencana.
Teks beranotasi dalam frasa pelatihan harus memiliki variasi. Misalnya, jika Anda memberikan nilai waktu yang harus diurai sebagai entity sistem @sys.time dalam frasa pelatihan, jangan berikan waktu yang sama di semua frasa pelatihan. Frasa pelatihan Anda harus memiliki contoh waktu yang bervariasi seperti: "7 pagi", "20.00", "pukul 9".
Intent dengan banyak parameter juga harus memiliki banyak frasa pelatihan. Sebagai aturan, cobalah untuk memiliki setidaknya tiga kali lebih banyak frasa pelatihan dari parameter dan setidaknya 10-20 frasa pelatihan (tergantung kompleksitas intent).
Setiap parameter harus digunakan dalam banyak frasa pelatihan. Sebagai aturan, setiap parameter harus digunakan dalam setidaknya 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 latihan yang serupa dalam intent yang berbeda. Intent yang berbeda tidak boleh berisi frasa pelatihan yang serupa, karena ini akan mencegah Dialogflow mempelajari cara mengenali frasa tersebut.
Aktifkan koreksi ejaan otomatis. Jika menggunakan input teks, Anda harus mengaktifkan koreksi ejaan otomatis.
Jangan menumpuk entitas gabungan Jangan gunakan lebih dari satu level nesting dalam entitas gabungan. Setiap tingkat pembuatan grafik bertingkat akan menurunkan kualitas secara signifikan.
Hindari karakter khusus dalam frasa latihan. Karakter khusus dalam frasa pelatihan, seperti {, _, #, dan [ akan diabaikan. Emoji adalah pengecualian; emoji berfungsi seperti yang diharapkan.

Penamaan intent

Jika agen memiliki banyak intent, Anda harus mempertimbangkan skema penamaan yang membantu Anda menjaganya tetap teratur. Mengelompokkan nama intent dengan tanda baca adalah hal yang umum, dengan kekhususan meningkat dari kiri ke kanan. Selain itu, nama intent harus mencerminkan niat pengguna akhir untuk percakapan percakapan.

Ada banyak skema penamaan yang baik, tetapi berikut ini adalah satu contoh:

  • phone-service.order.cancel
  • phone-service.order.create?hl=id
  • phone-service.order.change
  • {i>tv-service.order.cancel<i}
  • {i>tv-service.order.create<i}
  • {i>tv-service.order.change<i}
  • 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 menangani permintaan informasi cuaca dan pengguna bertanya "Cuaca di Jakarta", pastikan untuk menambahkan konteks guna mendukung permintaan lebih lanjut seperti "Bagaimana besok?"
Agen harus memiliki tindak lanjut untuk ya, tidak, batal, berikutnya, kembali, dll. Maksud tindak lanjut digunakan untuk membalas respons umum. Untuk menambahkan intent tindak lanjut, arahkan kursor ke intent, lalu klik Add tindak lanjut.
Intent harus memiliki setidaknya satu respons teks. Bagian respons berada di bagian bawah halaman intent. Menambahkan variasi akan mengacak respons yang dipilih, sehingga memberikan pengalaman yang tidak berulang.
Agen harus mengumpulkan semua informasi yang diperlukan untuk memenuhi permintaan pengguna. Pertimbangkan untuk membuat parameter yang diperlukan. Agen Anda akan terus meminta konfirmasi kepada pengguna sampai ia mendapatkan informasi yang dibutuhkan. Hal ini disebut pengisian slot.
Respons harus mengulangi informasi yang diperlukan, seperti mengonfirmasi pesanan. Ketika pengguna membuat permintaan seperti memesan 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 berulang.

Perbaikan percakapan

Praktik Terbaik Detail
Agen harus memiliki dialog pemulihan yang bermanfaat untuk setiap langkah dialog. Misalnya, jika dialog awal adalah "Warna apa yang Anda inginkan?" dan pengguna membalas dengan "burung beo jungle", intent fallback/tindak lanjut harus mengulangi pertanyaan, seperti "Maaf, warna apa itu?"
Agen harus memiliki respons khusus merek yang disesuaikan dalam intent penggantian default. Saat pengguna mengatakan sesuatu yang tidak cocok dengan intent, intent fallback default akan dicocokkan. Deskripsi 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 "katakan lagi", "ulangi itu", "mainkan lagi", dll. Permintaan ini dapat berupa intent tindak lanjut.
Bantu pengguna agar berhasil, arahkan mereka untuk memberi tahu dengan tepat 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". Sebaliknya, tanyakan: "Saya memiliki A dan saya memiliki B. Mana yang lebih Anda sukai?

Persona

Praktik Terbaik Detail
Tanggapan agen harus memiliki gaya dan nuansa yang sesuai dengan merek Anda dan konsisten di seluruh agen. Saat pengguna berkomunikasi dengan agen Anda, mereka harus merasa seolah-olah sedang berbicara dengan satu persona. Pastikan kualitas dan kepribadian yang Anda pilih terwakili dalam semua jawaban Anda.
Agen harus sensitif terhadap budaya, gender, keyakinan agama, kemampuan, dan usia. Stereotip dapat menyinggung pengguna, bahkan dalam lelucon, dan mereka mungkin tidak 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 mempresentasikan daftar opsi, tampilkan hasil yang paling cocok dan tanyakan apakah pengguna ingin mendengar opsi alternatif.
Jangan membuat keheningan yang canggung. Selalu akhiri dengan pertanyaan. Arahkan percakapan dan lanjutkan interaksi.
Tulis dialog ringkas yang mudah dipahami. Di layar, teks bisa panjang dan berisi beberapa paragraf. Anda dapat melewati bagian yang tidak menarik bagi Anda. Tetapi mendengar agen virtual berbicara terlalu lama, tidak akan membuat pengguna Anda senang.
Gunakan 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 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 akan berarti bahwa fitur tertentu, seperti analisis, tidak akan tersedia.
Menyimpan data percakapan chat di BigQuery agar memiliki kontrol atas penyimpanan regional. Melalui Cloud Logging atau dengan menggunakan Dialogflow API, Anda dapat mengirim 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 cetak biru 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 Google Robots Situs harus mengizinkan Google Robots, dan perlu ditambahkan ke mesin telusur Google melalui alat Webmaster Google. Situs seperti pages.github tidak akan berfungsi karena tidak dapat diakses dengan benar.
Gunakan 1–200 FAQ Anda membutuhkan lebih dari satu pasangan Tanya Jawab dan tidak lebih dari 200 untuk setiap pusat informasi. Anda dapat memuat beberapa pusat informasi jika perlu.

Mengimplementasikan Dialogflow API

Praktik Terbaik Detail
Jangan ekspos kunci pribadi akun layanan Anda di codebase klien untuk aplikasi seluler atau web. Tindakan ini dianggap tidak aman. Siapa pun yang siap menggunakan alat Chrome Dev dapat mencuri kunci Anda dan melakukan panggilan API (berbayar) melalui akun Anda. Akan lebih baik jika Anda selalu membiarkan 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 atau 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 menghasilkan 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 wawasan tentang alur percakapan secara alami. Minta mereka memperhatikan akurasi, jeda yang lama, jalur percakapan yang hilang, kecepatan, transisi yang canggung, dll.
Uji aplikasi Anda di semua platform yang akan didukung. Jika agen Anda akan tersedia di satu atau beberapa platform, pastikan pesan yang lengkap dan respons muncul seperti yang diharapkan di semua platform.

Praktik terbaik perusahaan

Panduan desain percakapan tambahan