Halaman ini menjelaskan setelan tindakan dan parameter untuk intent dan cara penggunaannya saat intent dicocokkan saat runtime.
Tempat menemukan data ini
Saat membuat agen, hal yang paling umum adalah menggunakan konsol Dialogflow ES (kunjungi dokumentasi, buka konsol). Petunjuk di bawah berfokus pada penggunaan konsol. Untuk mengakses data tindakan dan parameter:
- Buka konsol Dialogflow ES.
- Pilih agen.
- Pilih Intent di menu sidebar kiri.
- Pilih intent.
- Scroll ke bawah ke bagian Tindakan dan parameter.
Jika Anda membuat agen menggunakan API, bukan konsol, lihat Referensi intent. Nama kolom API mirip dengan nama kolom konsol. Petunjuk di bawah ini menyoroti perbedaan penting antara konsol dan API.
Tindakan
Kolom action adalah kolom praktis sederhana yang membantu menjalankan logika di layanan Anda.
Saat membuat agen, Anda dapat menetapkan kolom ini ke teks apa pun yang menurut Anda berguna.
Saat intent dicocokkan saat runtime, Dialogflow akan memberikan nilai tindakan ke permintaan webhook fulfillment atau respons interaksi API Anda. Fungsi ini dapat digunakan untuk memicu logika tertentu di layanan Anda.
Parameter
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 secara tepat bagaimana data diekstrak. Tidak seperti input pengguna akhir mentah, parameter adalah data terstruktur yang dapat digunakan dengan mudah untuk menjalankan beberapa logika atau menghasilkan respons.Saat membuat agen, Anda mengontrol cara data diekstrak dengan menambahkan anotasi pada bagian frasa pelatihan dan mengonfigurasi parameter terkait.
Daftar berikut menunjukkan kolom konfigurasi parameter. Contoh ditampilkan untuk frasa pelatihan "pesan kamar pada hari Selasa", dengan "Selasa" dianotasi.
- Wajib: Centang kotak ini jika parameter diperlukan agar intent selesai. Lihat bagian Penambahan slot dengan parameter yang diperlukan di bawah.
- Nama Parameter:
Nama yang mengidentifikasi parameter.
Contoh:
date
. - Entity:
Jenis entity
yang terkait dengan parameter.
Contoh:
@sys.date
. - Value:
Dalam sebagian besar kasus, ini ditetapkan ke referensi parameter seperti
$parameter-name
, yang digunakan sebagai placeholder untuk nilai yang diekstrak saat runtime. Namun, kolom ini juga dapat digunakan untuk memilih nilai alternatif. Lihat bagian Nilai parameter dan referensi parameter di bawah. Contoh:$date
. - Is List: Centang kotak ini jika nilai harus ditampilkan sebagai daftar. Lihat bagian Parameter daftar di bawah.
- Perintah: Pertanyaan yang akan diajukan agen kepada pengguna akhir jika parameter ini tidak diberikan. Kolom ini hanya digunakan jika kolom Wajib dicentang. Lihat bagian Penambahan slot dengan parameter yang diperlukan di bawah.
- Nilai default: Ini adalah nilai default untuk parameter jika pengguna akhir tidak memberikannya. Untuk mengubah nilai default dengan konsol, Anda harus mengarahkan kursor ke baris parameter dan mengklik menu di sebelah kanan.
Saat intent dicocokkan saat runtime, Dialogflow akan memberikan data parameter ke permintaan webhook fulfillment atau respons interaksi API. Parameter ini disediakan sebagai pemetaan dari nama parameter ke nilai parameter.
Saat membuat agen, respons Anda dapat menyertakan nilai parameter. Lihat Nilai parameter dan referensi parameter di bawah.
Mencantumkan parameter
Saat mem-build agen dengan konsol, mencentang opsi Is List akan mengonfigurasi parameter sebagai daftar. Daftar dapat berisi beberapa elemen. Misalnya, agen pemesanan produk mungkin mengharapkan ekspresi pengguna akhir berikut:
- "Saya ingin apel"
- "Saya ingin apel dan jeruk"
- "Saya ingin apel, jeruk, dan pisang"
Saat menganotasi frasa pelatihan dengan parameter daftar, frasa Anda dapat berisi satu atau beberapa contoh parameter, dan Anda menganotasi setiap contoh secara terpisah:
Setelah Anda menganotasi setidaknya dua kata atau frasa dengan parameter yang sama dalam satu frasa pelatihan, opsi Is List akan otomatis diaktifkan. Jika Anda menonaktifkan opsi ini, tetapi mempertahankan anotasi yang sama, Is List akan otomatis dicentang lagi setelah Anda membuka halaman dengan anotasi ini.
Di agen multibahasa, opsi Is List tidak khusus bahasa.
Nilai parameter dan referensi parameter
Referensi parameter adalah variabel yang menyimpan parameter value yang diekstrak saat runtime. Saat membuat agen, Anda dapat menggunakan referensi parameter dalam respons intent, perintah parameter, dan kolom Nilai parameter.
Misalnya, Anda dapat menggunakan $parameter-name
dalam respons intent.
Saat merespons pengguna, Dialogflow akan mengganti referensi parameter tersebut dengan nilai parameter yang diekstrak saat runtime.
Hal ini berguna untuk merangkum informasi yang diberikan oleh pengguna akhir.
Misalnya, respons intent Anda dapat terlihat seperti:
"Oke, saya telah memesan kamar untuk Anda pada $date".
Referensi parameter dasar
Untuk mereferensikan parameter value yang diekstrak oleh entitas terkait, gunakan format berikut:
$parameter-name
Misalnya,
jika nama parameternya adalah date
,
Anda dapat mereferensikannya sebagai $date
.
Referensi parameter untuk nilai asli
Saat dicocokkan dengan entitas tertentu, teks sering kali dikonversi menjadi teks yang lebih mudah diproses. Misalnya, kata "apel" dalam ekspresi pengguna akhir dapat diekstrak sebagai "apple" untuk entitas buah. Untuk mereferensikan parameter value persis seperti yang ditulis atau diucapkan oleh pengguna akhir, gunakan format berikut:
$parameter-name.original
Misalnya,
jika nama parameternya adalah date
,
Anda dapat mereferensikan nilai aslinya sebagai $date.original
.
Referensi parameter untuk tanggal yang tidak jelas
Jika parameter dikaitkan dengan entity sistem @sys.date
,
dan pengguna akhir memberikan tanggal sebagian (tidak menentukan bulan, hari, dan tahun),
Dialogflow akan mencocokkan dengan tanggal terdekat pada masa mendatang.
Namun, Anda juga dapat mengambil variasi tanggal ini.
Anda dapat mengambil pencocokan parsial eksplisit,
dengan Dialogflow mengganti bagian yang tidak diketahui dengan U
menggunakan format berikut:
$parameter-name.partial
Anda dapat mengambil tanggal terdekat di masa lalu menggunakan format berikut:
$parameter-name.recent
Misalnya, jika tanggal hari ini adalah 11 Agustus 2021,
nama parameter Anda adalah date
,
dan pengguna mengatakan "13 Agustus":
Referensi parameter | Nilai yang di-resolve |
---|---|
$date | 2021-08-13 |
$date.partial | UUUU-08-13 |
$date.recent | 2020-08-13 |
Referensi parameter untuk entitas gabungan
Entitas gabungan adalah entitas yang berisi sub-entitas lain. Untuk mereferensikan nilai sub-entity parameter, gunakan format berikut:
$parameter-name.sub-entity-name
Misalnya, jika nama parameter adalah move
,
dan nama sub-entity adalah direction
,
Anda dapat mereferensikan nilai sub-entity sebagai $move.direction
.
Referensi parameter untuk konteks aktif
Konteks dapat berfungsi sebagai penyimpanan sementara untuk parameter value. Untuk mereferensikan parameter value yang diperoleh dari konteks aktif, gunakan format berikut:
#context-name.parameter-name
Misalnya, jika nama parameternya adalah room
,
dan reservation
adalah konteks aktif,
Anda dapat mereferensikan nilai parameter sebagai #reservation.room
.
Referensi parameter untuk parameter peristiwa
Untuk mereferensikan parameter peristiwa, gunakan format berikut:
#event-name.parameter-name
Misalnya, jika nama parameternya adalah duration
,
dan nama peristiwanya adalah alarm
,
Anda dapat mereferensikan parameter peristiwa sebagai #alarm.duration
.
Kolom Parameter Value
Referensi parameter di kolom Value parameter memiliki signifikansi khusus.
Konten di kolom ini menentukan nilai yang di-resolve untuk$parameter-name
dalam respons intent dan perintah parameter.
Dialogflow memproses data parameter dalam urutan berikut:
- Ekstrak parameter value dari ekspresi pengguna akhir menggunakan entitas terkait.
- Selesaikan konten untuk kolom Value parameter.
- Tetapkan
$parameter-name
ke konten yang di-resolve dari kolom Value parameter. Jika kolom Value tidak ditetapkan ke$parameter-name
, nilai$parameter-name
akan direset ke nilai lain. - Menyelesaikan konten untuk respons intent dan perintah parameter.
Berikut beberapa contoh untuk menggambarkan efek pengurutan ini untuk ekspresi pengguna akhir "Saya ingin membeli kemeja kecil".
Lokasi referensi parameter | Konten yang dikonfigurasi | Konten yang telah diselesaikan |
---|---|---|
Kolom Value parameter | $size | S |
Respons intent | Anda memilih ukuran: $size | Anda memilih ukuran: S |
Lokasi referensi parameter | Konten yang dikonfigurasi | Konten yang telah diselesaikan |
---|---|---|
Kolom Value parameter | $size.original | kecil |
Respons intent | Anda memilih ukuran: $size | Anda memilih ukuran: kecil |
Lokasi referensi parameter | Konten yang dikonfigurasi | Konten yang telah diselesaikan |
---|---|---|
Kolom Value parameter | $size | S |
Respons intent | Anda memilih ukuran: $size.original | Anda memilih ukuran: kecil |
Pengisian slot dengan parameter yang diperlukan
Saat mem-build agen, Anda dapat menandai parameter sesuai kebutuhan. Intent tidak akan selesai hingga pengguna akhir memberikan data untuk setiap parameter yang diperlukan ini.
Saat intent dicocokkan saat runtime, agen Dialogflow akan terus mengumpulkan informasi dari pengguna akhir hingga pengguna akhir memberikan data untuk setiap parameter yang diperlukan. Proses ini disebut slot filling.
Dialogflow tidak mengirim permintaan webhook fulfillment hingga telah mengumpulkan semua data yang diperlukan dari pengguna akhir, kecuali jika webhook untuk pengisian slot diaktifkan.
Dialogflow mengirimkan respons interaksi API untuk setiap langkah pengisian slot. Untuk setiap respons pengisian slot ini, intent dan tindakan akan sama, dan parameter yang dikumpulkan sejauh ini akan disediakan.
Saat membuat agen, Anda memberikan perintah yang akan digunakan agen untuk mendapatkan data parameter dari pengguna akhir. Anda juga dapat memberikan variasi perintah, sehingga agen tidak selalu mengajukan pertanyaan yang sama.
Misalnya, anggap agen toko pakaian Anda memiliki intent dengan parameter yang diperlukan untuk:
- jenis pakaian
- quantity
- ukuran
- warna
Menyelesaikan intent mungkin terlihat seperti berikut:
Pengguna: Saya ingin membeli kaus.
Agen: Berapa banyak yang Anda inginkan?
Pengguna: 3
Agen: Warna apa yang Anda inginkan?
Pengguna: Hitam
Agen: Ukuran berapa?
Pengguna: Sedang
Agen: Baik, jadi tiga kaos hitam ukuran sedang
Jika pengguna akhir memberikan data untuk lebih dari satu parameter dalam satu ekspresi, Dialogflow akan mengumpulkan data yang diberikan dan terus meminta data yang tidak ada. Misalnya, pengguna akhir mungkin mengatakan "Saya ingin membeli tiga kaus hitam". Dialogflow akan meminta ukuran kepada pengguna.
Parameter pengurutan
Saat mem-build agen, Anda dapat mengurutkan parameter, yang menentukan urutan agen akan meminta data yang hilang kepada pengguna akhir.
Saat mem-build agen dari konsol, mengarahkan kursor ke parameter akan menampilkan ikon urutkan ulang di sebelah kanan. Anda dapat menarik ikon ini untuk mengubah posisi parameter dalam daftar.
Referensi parameter dalam perintah
Saat mem-build agen,
Anda dapat menggunakan referensi parameter dalam perintah,
tetapi hanya untuk parameter yang diperlukan sebelum perintah.
Misalnya, jika parameter color
berada sebelum parameter quantity
,
Anda dapat menggunakan perintah berikut untuk parameter quantity
:
How many $color t-shirts would you like to buy?
Membatalkan pengisian slot
Saat pengguna akhir mengucapkan frasa keluar seperti "Batal", "Berhenti", "Cukup", dsb., agen akan membalas dengan "Oke, dibatalkan" dan menghapus konteks pengisian slot.
Jika Anda menggunakan API, kolom DetectIntentResponse.queryResult.cancelsSlotFilling
ditetapkan ke true
saat pengisian slot dibatalkan.
Untuk informasi selengkapnya,
lihat dokumentasi detectIntent
jenis
Sessions
.