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:
- Baca Dasar-dasar Dialogflow.
- Lakukan langkah-langkah penyiapan.
Membuat agen
Jika Anda belum membuat agen, buatlah sekarang:
- Buka Dialogflow ES Console.
- Jika diminta, login ke Konsol Dialogflow. Lihat Ringkasan konsol Dialogflow untuk mengetahui informasi selengkapnya.
- 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.)
- Masukkan nama agen, bahasa default, dan zona waktu default.
- Jika Anda sudah membuat project, masukkan project tersebut. Jika Anda ingin mengizinkan Konsol Dialogflow untuk membuat project, pilih Create a new Google project.
- 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:
-
Download file
new-agent.zip
. - Buka Dialogflow ES Console.
- Pilih agen Anda.
- Klik tombol setelan settings di samping nama agen.
- Pilih tab Ekspor dan Impor.
- 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:
- Buka Dialogflow ES Console.
- Pilih agen yang baru saja Anda buat.
- Klik Intent di menu sidebar kiri.
Bagian tengah konsol menampilkan daftar intent untuk agen.
Menguji Intent Penggantian Default
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:
- Klik tombol tambahkan intent di samping Intent di menu sidebar kiri.
- Masukkan
get-agent-name
di kolom Nama intent. - Di bagian Training Phrases, klik Add training pekan.
Masukkan frasa latihan berikut, tekan enter setelah setiap entri:
What is your name?
Do you have a name?
Tell me your name
Di bagian Respons, masukkan hal berikut di bagian Respons Teks:
My name is Dialogflow!
Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.
Uji niat Anda
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:
- Klik tombol plus di samping Intent di menu sidebar kiri.
- Beri nama intent
set-language
di bagian atas formulir intent. - Tambahkan frasa pelatihan berikut:
I know English
I speak French
I know how to write in German
Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.
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:
- 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:
- Scroll ke bawah ke bagian Respons.
- Tambahkan respons teks berikut:
Wow! I didn't know you knew $language.
- Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.
Menguji parameter Anda
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:
- Klik tombol tambahkan entity di samping Entity pada menu sidebar kiri.
- Masukkan
language-programming
untuk nama entity. Tambahkan entri entity berikut (baris):
Nilai Referensi Sinonim JavaScript JavaScript, js, ECMAScript Java Java Python Python, py Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.
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:
- Klik Intent di menu sidebar kiri.
- Klik intent
set-language
. - Tambahkan frasa pelatihan berikut:
I know javascript
I know how to code in Java
- Perhatikan bahwa bahasa pemrograman dalam frasa pelatihan ini otomatis dianotasi dan ditambahkan ke parameter di bagian Tindakan dan Parameter.
- Di bagian Respons, tambahkan respons teks kedua berikut:
$language-programming is an excellent programming language.
. - Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.
Menguji entity baru
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
:
- Pilih intent
set-language
yang Anda buat di langkah sebelumnya. - Di bagian Response, perbarui respons teks:
Wow! I didn't know you knew $language. How long have you known $language?
- Klik tombol Save dan tunggu hingga dialog Agent Training menunjukkan bahwa pelatihan telah selesai.
- Klik Intent di menu sidebar kiri.
- Arahkan kursor ke intent
set-language
, lalu klik Add tindak lanjut intent. - Klik kustom dalam daftar yang ditampilkan.
- 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
.
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:
- Klik Intent di menu sidebar kiri.
- Klik intent
set-language - custom
. - Tambahkan frasa pelatihan berikut:
3 years
about 4 days
for 5 years
- 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.
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:
- Perbarui respons teks intent
set-language - custom
menjadiI can't believe you've known #set-language-followup.language for $duration!
- 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.