Tindakan dan parameter

Halaman ini menjelaskan setelan tindakan dan parameter untuk maksud dan cara penggunaannya saat maksud dicocokkan saat runtime.

Tempat menemukan data ini

Saat membangun agen, biasanya digunakan konsol Dialogflow ES (kunjungi dokumentasi, buka konsol). Petunjuk di bawah berfokus pada penggunaan konsol. Untuk mengakses data tindakan dan parameter:

  1. Buka konsol Dialogflow ES.
  2. Pilih agen.
  3. Pilih Maksud di menu sidebar kiri.
  4. Pilih maksud.
  5. Scroll ke bawah ke bagian Tindakan dan parameter.

Screenshot kolom 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 kemudahan sederhana yang membantu menjalankan logika di layanan Anda.

Saat membuat agen, Anda dapat menyetel 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. ID ini dapat digunakan untuk memicu logika tertentu di layanan Anda.

Parameter

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

Saat membuat agen, Anda mengontrol cara data diekstrak dengan menganotasi 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" diberi anotasi.

  • Wajib: Centang kotak ini jika parameter wajib diisi agar intent dapat diselesaikan. Lihat bagian Pengisian slot dengan parameter yang diperlukan di bawah.
  • Nama Parameter: Nama yang mengidentifikasi parameter. Contoh: date.
  • Entitas: Jenis entitas yang terkait dengan parameter. Contoh: @sys.date.
  • Nilai: 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.
  • Adalah Daftar: 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 diisi dicentang. Lihat bagian Pengisian slot dengan parameter yang diperlukan di bawah.
  • Nilai default: Ini adalah nilai default untuk parameter saat pengguna akhir tidak menyediakannya. 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 menyediakan data parameter ke permintaan webhook pemenuhan atau respons interaksi API Anda. Parameter ini diberikan sebagai pemetaan dari nama parameter ke nilai parameter.

Saat membangun agen, respons Anda dapat menyertakan nilai parameter. Lihat Nilai parameter dan referensi parameter di bawah.

Parameter daftar

Saat membuat agen dengan konsol, memeriksa opsi Is List akan mengonfigurasi parameter sebagai daftar. Daftar dapat berisi beberapa elemen. Misalnya, agen pemesanan produk pertanian mungkin mengharapkan ekspresi pengguna akhir berikut:

  • "Saya mau apel"
  • "Saya mau apel dan jeruk"
  • "Saya mau 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:

Screenshot anotasi parameter daftar.

Setelah Anda memberi anotasi pada minimal dua kata atau frasa dengan parameter yang sama dalam satu frasa pelatihan, opsi Adalah Daftar akan otomatis diaktifkan. Jika Anda menonaktifkan opsi ini, tetapi tetap menggunakan anotasi yang sama, Is List akan otomatis dicentang lagi setelah Anda membuka halaman dengan anotasi ini.

Di agen multibahasa, opsi Adalah Daftar tidak khusus bahasa.

Nilai parameter dan referensi parameter

Referensi parameter adalah variabel yang menyimpan nilai parameter yang diekstrak saat runtime. Saat membangun agen, Anda dapat menggunakan referensi parameter dalam respons intent, perintah parameter, dan kolom Nilai parameter.

Misalnya, Anda dapat menggunakan $parameter-name dalam respons maksud. Saat merespons pengguna, Dialogflow akan mengganti referensi parameter tersebut dengan nilai parameter yang diekstrak saat runtime. Hal ini berguna untuk meringkas informasi yang diberikan oleh pengguna akhir. Misalnya, respons maksud Anda dapat terlihat seperti: "Oke, saya sudah memesan kamar untuk Anda pada $date".

Referensi parameter dasar

Untuk mereferensikan nilai parameter yang diekstrak oleh entitas terkait, gunakan format berikut:

$parameter-name

Misalnya, jika nama parameter adalah date, Anda dapat mereferensikannya sebagai $date.

Referensi parameter untuk nilai asli

Saat teks dicocokkan dengan entitas tertentu, teks tersebut sering kali dikonversi menjadi teks yang lebih mudah diproses. Misalnya, kata "apel" dalam ekspresi pengguna akhir dapat diekstrak sebagai "apel" untuk entitas buah. Untuk mereferensikan nilai parameter persis seperti yang ditulis atau diucapkan oleh pengguna akhir, gunakan format berikut:

$parameter-name.original

Misalnya, jika nama parameter adalah date, Anda dapat mereferensikan nilai asli sebagai $date.original.

Referensi parameter untuk tanggal yang ambigu

Jika parameter dikaitkan dengan entity sistem @sys.date, dan pengguna akhir memberikan tanggal parsial (tidak menentukan bulan, hari, dan tahun), Dialogflow akan mencocokkan dengan tanggal terdekat di masa mendatang. Namun, Anda juga dapat mengambil variasi tanggal ini.

Anda dapat mengambil kecocokan parsial eksplisit, dengan Dialogflow mengganti bagian yang tidak diketahui dengan Us 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 diselesaikan
$date 2021-08-13
$date.partial UUUU-08-13
$date.recent 2020-08-13

Referensi parameter untuk entitas komposit

Entitas komposit adalah entitas yang berisi sub-entitas lain. Untuk mereferensikan nilai sub-entitas parameter, gunakan format berikut:

$parameter-name.sub-entity-name

Misalnya, jika nama parameter adalah move, dan nama sub-entitas adalah direction, Anda dapat mereferensikan nilai sub-entitas sebagai $move.direction.

Referensi parameter untuk konteks aktif

Konteks dapat berfungsi sebagai penyimpanan sementara untuk nilai parameter. Untuk mereferensikan nilai parameter yang diperoleh dari konteks aktif, gunakan format berikut:

#context-name.parameter-name

Misalnya, jika nama parameter 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 parameter adalah duration, dan nama peristiwa adalah alarm, Anda dapat mereferensikan parameter peristiwa sebagai #alarm.duration.

Kolom Nilai Parameter

Referensi parameter di kolom Nilai parameter memiliki arti 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:

  1. Ekstrak nilai parameter dari ekspresi pengguna akhir menggunakan entity terkait.
  2. Selesaikan konten untuk kolom parameter Value.
  3. Tetapkan$parameter-name ke konten yang telah di-resolve dari kolom parameter Value. Jika kolom Nilai tidak disetel ke $parameter-name, tindakan ini akan mereset nilai $parameter-name ke nilai lain.
  4. Menyelesaikan konten untuk respons maksud 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 diselesaikan
Kolom Nilai parameter $size S
Respons maksud Anda memilih ukuran: $size Anda memilih ukuran: S
Lokasi referensi parameter Konten yang dikonfigurasi Konten yang diselesaikan
Kolom Nilai parameter $size.original kecil
Respons maksud Anda memilih ukuran: $size Anda memilih ukuran: kecil
Lokasi referensi parameter Konten yang dikonfigurasi Konten yang diselesaikan
Kolom Nilai parameter $size S
Respons maksud Anda memilih ukuran: $size.original Anda memilih ukuran: kecil

Pengisian slot dengan parameter wajib

Saat membangun agen, Anda dapat menandai parameter sebagai wajib diisi. Intent tidak lengkap hingga pengguna akhir memberikan data untuk setiap parameter yang diperlukan ini.

Screenshot kolom parameter yang diperlukan

Saat intent dicocokkan saat runtime, agen Dialogflow terus mengumpulkan informasi dari pengguna akhir hingga pengguna akhir memberikan data untuk setiap parameter yang diperlukan. Proses ini disebut pengisian slot.

Dialogflow tidak mengirim permintaan webhook pemenuhan hingga mengumpulkan semua data yang diperlukan dari pengguna akhir, kecuali jika webhook untuk pengisian slot diaktifkan.

Dialogflow mengirim respons interaksi API untuk setiap langkah pengisian slot. Untuk setiap respons pengisian slot ini, maksud dan tindakan akan sama, dan parameter yang dikumpulkan sejauh ini akan diberikan.

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.

Screenshot perintah parameter

Misalnya, pertimbangkan bahwa agen toko pakaian Anda memiliki maksud dengan parameter yang diperlukan untuk:

  • jenis pakaian
  • quantity
  • ukuran
  • warna

Penyelesaian maksud dapat 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: Medium
Agen: Oke, itu tiga kaus hitam ukuran medium

Jika pengguna akhir memberikan data untuk lebih dari satu parameter dalam satu ekspresi, Dialogflow mengumpulkan data yang diberikan dan terus meminta data yang belum ada. Misalnya, pengguna akhir dapat mengatakan "Saya ingin membeli tiga kaus hitam". Dialogflow akan menanyakan ukuran kepada pengguna.

Parameter pengurutan

Saat membangun agen, Anda dapat mengurutkan parameter, yang menentukan urutan agen akan meminta data yang tidak ada kepada pengguna akhir.

Saat membuat agen dari konsol, mengarahkan kursor ke parameter akan menampilkan ikon pengurutan ulang di sebelah kanan. Anda dapat menarik ikon ini untuk mengubah posisi parameter dalam daftar.

Referensi parameter dalam perintah

Saat membuat agen, Anda dapat menggunakan referensi parameter dalam perintah, tetapi hanya untuk parameter wajib 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", "Hentikan", "Cukup", dll., agen akan merespons dengan "Oke, dibatalkan" dan menghapus konteks pengisian slot.

Jika Anda menggunakan API, kolom DetectIntentResponse.queryResult.cancelsSlotFilling ditetapkan ke true saat pengisian slot dibatalkan. Untuk mengetahui informasi selengkapnya, lihat dokumentasi detectIntent dari jenis Sessions.