Membuat agen Dialogflow ES

Panduan ini menunjukkan cara menggunakan Konsol Dialogflow untuk mem-build dan menguji agen sederhana.

Sebelum memulai

Anda harus melakukan hal berikut sebelum membaca panduan ini:

  1. Baca Dasar-dasar Dialogflow.
  2. Lakukan langkah-langkah penyiapan.

Membuat agen

Jika Anda belum membuat agen, buatlah sekarang:

  1. Buka Dialogflow ES Console.
  2. Jika diminta, login ke Konsol Dialogflow. Lihat Ringkasan konsol Dialogflow untuk mengetahui informasi selengkapnya.
  3. Klik Create Agent di menu sidebar kiri. (Jika Anda sudah memiliki agen lain, klik nama agen, scroll ke bagian bawah, lalu klik Buat agen baru.)
  4. Masukkan nama agen, bahasa default, dan zona waktu default.
  5. Jika Anda sudah membuat project, masukkan project tersebut. Jika Anda ingin mengizinkan Konsol Dialogflow untuk membuat project, pilih Create a new Google project.
  6. Klik tombol Buat.

Mengimpor file contoh ke agen Anda

Langkah-langkah dalam panduan ini membuat asumsi tentang agen Anda, sehingga Anda perlu import agen yang sudah disiapkan untuk panduan ini. Saat mengimpor, langkah-langkah ini menggunakan opsi restore, yang menimpa semua setelan, intent, dan entity agen.

Agen yang disiapkan untuk panduan ini adalah agen baru, tanpa intent atau entitas yang ditentukan pengguna.

Untuk mengimpor file, ikuti langkah-langkah berikut:

  1. Download file new-agent.zip.
  2. Buka Dialogflow ES Console.
  3. Pilih agen Anda.
  4. Klik tombol setelan di samping nama agen.
  5. Pilih tab Ekspor dan Impor.
  6. Pilih Restore From Zip dan ikuti petunjuk untuk memulihkan file zip yang Anda download.

Intent

Intent mengkategorikan niat pengguna akhir untuk satu giliran percakapan. Untuk setiap agen, Anda menentukan banyak intent, tempat intent gabungan Anda dapat menangani percakapan lengkap.

Intent default

Saat membuat agen, dua intent default akan dibuat untuk Anda:

  • Default Welcome Intent: Intent ini dicocokkan saat pengguna akhir memulai percakapan dengan agen Anda. Intent ini akan menampilkan respons yang memungkinkan pengguna akhir mengetahui tindakan yang dilakukan agen atau apa yang dapat mereka katakan untuk memulai percakapan.
  • Intent Fallback Default: Intent ini dicocokkan saat agen tidak dapat mencocokkan ekspresi pengguna akhir dengan intent lainnya.

Untuk melihat intent ini, buka daftar intent agen Anda:

  1. Buka Dialogflow ES Console.
  2. Pilih agen yang baru saja Anda buat.
  3. Klik Intent di menu sidebar kiri.

Bagian tengah konsol menampilkan daftar intent untuk agen.

Screenshot daftar intent

Menguji Intent Penggantian Default

Screenshot simulator

Simulator Dialogflow terdapat di sisi kanan konsol. Dengan simulator ini, Anda dapat menguji agen dengan mengucapkan atau mengetik pesan.

Coba agen sekarang:

  • Klik kolom Coba sekarang.
  • Ketik What is your name?.
  • Tekan enter.

Respons agen muncul di bagian Respons Default. Karena input Anda tidak cocok dengan intent apa pun, Intent Penggantian Default cocok, dan Anda menerima salah satu balasan default.

Membuat intent baru

Langkah-langkah di bagian ini membuat intent yang dapat menjawab pertanyaan "siapa nama Anda?". Untuk setiap intent, Anda menentukan banyak frasa pelatihan. Frasa pelatihan adalah contoh hal yang mungkin diketik atau dikatakan pengguna akhir kepada agen Anda, juga dikenal sebagai ekspresi pengguna akhir. Anda harus menentukan berbagai frasa pelatihan yang menyediakan Dialogflow dengan berbagai ekspresi yang harus cocok dengan intent.

Membuat intent:

  1. Klik tombol tambahkan intent di samping Intent di menu sidebar kiri.
  2. Masukkan get-agent-name di kolom Nama intent.
  3. Di bagian Training Phrases, klik Add training pekan.
  4. Masukkan frasa latihan berikut, tekan enter setelah setiap entri:

    • What is your name?
    • Do you have a name?
    • Tell me your name

    Screenshot frasa latihan

  5. Di bagian Respons, masukkan hal berikut di bagian Respons Teks:

    • My name is Dialogflow!

    Screenshot frasa latihan

  6. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.

Uji niat Anda

Screenshot simulator

Di simulator, ketik What's your name?, lalu tekan enter.

Agen Anda merespons ekspresi dengan benar, meskipun ekspresi tersebut sedikit berbeda dari frasa pelatihan yang Anda berikan.

Dialogflow menggunakan frasa pelatihan sebagai contoh untuk model machine learning guna mencocokkan ekspresi pengguna akhir dengan intent. Model memeriksa ekspresi terhadap setiap intent dalam agen, memberi skor untuk setiap intent, dan intent penskoran tertinggi dicocokkan. Jika intent dengan skor tertinggi memiliki skor yang sangat rendah, intent penggantian akan dicocokkan.

Parameter dan entity

Saat intent dicocokkan saat runtime, Dialogflow akan memberikan nilai yang diekstrak dari ekspresi pengguna akhir sebagai parameter. Setiap parameter memiliki jenis, yang disebut jenis entity, yang menentukan cara data diekstrak secara tepat. Tidak seperti input mentah pengguna akhir, parameter adalah data terstruktur yang dapat dengan mudah digunakan untuk menjalankan beberapa logika atau menghasilkan respons.

Saat membuat agen, Anda dapat mengontrol cara data diekstrak dengan menganotasi bagian frasa pelatihan dan mengonfigurasi parameter terkait.

Membuat parameter

Buat intent baru dengan parameter:

  1. Klik tombol plus di samping Intent di menu sidebar kiri.
  2. Beri nama intent set-language di bagian atas formulir intent.
  3. Tambahkan frasa pelatihan berikut:
    • I know English
    • I speak French
    • I know how to write in German
  4. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.

    Screenshot frasa pelatihan yang dianotasi

Dialogflow secara otomatis mendeteksi parameter dalam frasa pelatihan yang dikenali sebagai entity sistem. Ini adalah entity yang disediakan oleh Dialogflow untuk banyak jenis data umum seperti lokasi, warna, dan tanggal.

Di bawah bagian Frasa pelatihan, Dialogflow akan membuat baris di tabel Tindakan & parameter:

Screenshot frasa pelatihan yang dianotasi

  • Wajib: Kotak centang tidak dicentang, sehingga parameter ini bersifat opsional.
  • Nama Parameter: Parameter ini otomatis diberi nama language, karena parameter dikenali sebagai bahasa.
  • Entity: Ini adalah jenis entity. ID ini dikenali sebagai entity sistem @sys.language.
  • Nilai: Ini adalah ID yang Anda gunakan saat mereferensikan nilai parameter ini.
  • Adalah Daftar: Kotak centang tidak dicentang, sehingga parameter bukan daftar.

Menggunakan data parameter dalam respons

Nilai parameter dapat digunakan dalam respons Anda. Misalnya, Anda dapat menggunakan referensi parameter $language dalam respons saat membuat agen. Saat runtime, bahasa tersebut akan diganti dengan bahasa yang ditentukan dalam ekspresi pengguna akhir.

Tambahkan respons yang menggunakan parameter:

  1. Scroll ke bawah ke bagian Respons.
  2. Tambahkan respons teks berikut: Wow! I didn't know you knew $language.
  3. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.

Menguji parameter Anda

Screenshot simulator

Pada simulator, masukkan I know Russian.

Anda dapat melihat bahwa Dialogflow mengekstrak parameter language dengan benar menggunakan nilai Russian, dan Russian disisipkan dengan benar di tempat referensi parameter digunakan dalam respons.

Membuat entity Anda sendiri

Pada umumnya, Anda memiliki data spesifik yang perlu dikumpulkan dari pengguna yang tidak disediakan oleh entity sistem. Anda dapat membuat entity kustom untuk menangani hal ini.

Buat entity kustom:

  1. Klik tombol tambahkan entity di samping Entity pada menu sidebar kiri.
  2. Masukkan language-programming untuk nama entity.
  3. Tambahkan entri entity berikut (baris):

    Nilai Referensi Sinonim
    JavaScript JavaScript, js, ECMAScript
    Java Java
    Python Python, py
  4. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.

Screenshot penggunaan entitas

Dialogflow dapat menangani hal-hal sederhana seperti jamak dan kapitalisasi, tetapi Anda harus menambahkan semua sinonim yang mungkin untuk entri Anda. Makin banyak yang ditambahkan, makin baik agen dapat menentukan entitas Anda.

Gunakan entitas baru

Tambahkan frasa pelatihan ke intent set-language yang menggunakan entity baru:

  1. Klik Intent di menu sidebar kiri.
  2. Klik intent set-language.
  3. Tambahkan frasa pelatihan berikut:
    • I know javascript
    • I know how to code in Java
  4. Perhatikan bahwa bahasa pemrograman dalam frasa pelatihan ini otomatis dianotasi dan ditambahkan ke parameter di bagian Tindakan dan Parameter.
  5. Di bagian Respons, tambahkan respons teks kedua berikut: $language-programming is an excellent programming language..
  6. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.

Menguji entity baru

Screenshot simulator

Pada simulator, masukkan I know how to code in py.

Anda dapat melihat bahwa Dialogflow mengekstrak py dengan benar untuk parameter language-programming, mengidentifikasinya sebagai entity Python, dan memasukkan nilai dalam respons.

Konteks

Untuk mengontrol alur percakapan, Anda dapat menggunakan konteks.

Menambahkan maksud tindak lanjut

Intent tindak lanjut memberikan cara mudah untuk mengontrol percakapan tanpa harus membuat dan mengelola konteks secara manual.

Saat Anda membuat intent tindak lanjut, konteks output akan ditambahkan ke intent induk dan konteks input dengan nama yang sama akan ditambahkan ke intent turunan. Ini berarti intent tindak lanjut hanya cocok saat intent induk cocok pada giliran percakapan sebelumnya.

Tambahkan intent tindak lanjut kustom ke intent set-language:

  1. Pilih intent set-language yang Anda buat di langkah sebelumnya.
  2. Di bagian Response, perbarui respons teks:
    • Wow! I didn't know you knew $language. How long have you known $language?
  3. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.
  4. Klik Intent di menu sidebar kiri.
  5. Arahkan kursor ke intent set-language, lalu klik Add tindak lanjut intent.
  6. Klik kustom dalam daftar yang ditampilkan.
  7. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.

Dialogflow secara otomatis memberi nama intent tindak lanjut set-language - custom.

Screenshot tindak lanjut

Pencocokan intent dengan intent tindak lanjut

Intent tindak lanjut hanya dicocokkan setelah intent induk dicocokkan. Karena intent set-language - custom hanya dicocokkan setelah intent set-language, Anda dapat berasumsi bahwa pengguna baru saja diberi pertanyaan How long have you known $language?. Sekarang Anda dapat menambahkan frasa pelatihan untuk kemungkinan jawaban pengguna atas pertanyaan tersebut:

  1. Klik Intent di menu sidebar kiri.
  2. Klik intent set-language - custom.
  3. Tambahkan frasa pelatihan berikut:
    • 3 years
    • about 4 days
    • for 5 years
  4. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.

Uji niat tindak lanjut Anda

Masukkan I know French di simulator, lalu jawab pertanyaan How long have you known French dengan about 2 weeks.

Meskipun tidak ada respons untuk ekspresi kedua (about 2 weeks), Anda dapat melihat ekspresi tersebut dicocokkan dengan intent yang benar (set-language - custom), dan parameter durasi diurai dengan benar (2 weeks).

Intent dan konteks

Periksa intent set-language untuk melihat bahwa set-language-followup tercantum sebagai konteks output dan diawali dengan angka 2. Angka ini disebut masa aktif.

Screenshot konteks output

Setelah intent set-language dicocokkan, konteks set-language-followup akan aktif dan dilampirkan ke percakapan selama dua putaran (masa aktif 2). Oleh karena itu, saat pengguna merespons pertanyaan, How long have you known $language?, konteks set-language-followup akan aktif.

Periksa intent set-language - custom untuk melihat bahwa set-language-followup tercantum sebagai konteks input, yang sama dengan konteks output untuk intent set-language.

Intent apa pun dengan konteks input yang cocok dengan konteks aktif akan sangat diutamakan jika Dialogflow cocok dengan intent.

Konteks dan parameter

Konteks menyimpan parameter value, dan Anda dapat mengakses nilai parameter yang ditentukan dalam intent set-language saat konteks outputnya aktif.

Dalam intent set-language - custom, Anda hanya meminta durasi pengguna mengetahui bahasa tersebut, bukan bahasa yang direferensikan itu sendiri.

Untuk mereferensikan bahasa dalam respons:

  1. Perbarui respons teks intent set-language - custom menjadi I can't believe you've known #set-language-followup.language for $duration!
  2. Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.

Referensi #set-language-followup.language dikenal sebagai referensi parameter untuk konteks aktif.

Menguji parameter konteks

Masukkan I know French di simulator, lalu tanggapi pertanyaan tersebut dengan 1 week. Perhatikan bahwa nilai parameter language diambil dari konteks.

Produksi

Sebelum menjalankan agen dalam produksi, pastikan untuk menerapkan praktik terbaik produksi.

Langkah selanjutnya

Coba panduan memulai fulfillment.