Tindakan dan parameter

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

Di mana data ini dapat ditemukan

Saat membangun agen, cara yang paling umum adalah menggunakan Konsol Dialogflow ES (buka dokumentasi, buka konsol). Petunjuk di bawah berfokus pada penggunaan konsol. Untuk mengakses data tindakan dan parameter:

  1. Buka Dialogflow ES Console.
  2. Pilih agen.
  3. Pilih Intent di menu sidebar kiri.
  4. Pilih intent.
  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 menyoroti perbedaan penting antara konsol dan API.

Tindakan

Kolom action adalah kolom praktis sederhana yang membantu menjalankan logika di layanan Anda.

Saat membangun 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 Anda atau respons interaksi API. 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 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.

Daftar berikut menampilkan kolom konfigurasi parameter. Contohnya ditampilkan untuk frasa pelatihan "reservasi ruang pada hari Selasa", dengan "Selasa" dianotasikan.

  • Wajib: Centang kotak ini jika parameter diperlukan untuk melengkapi intent. Lihat bagian Pengisian 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.
  • Nilai: Pada umumnya, nilai ini ditetapkan ke referensi parameter seperti $parameter-name, yang digunakan sebagai placeholder untuk nilai yang diekstrak selama runtime. Namun, kolom ini juga dapat digunakan untuk memilih nilai alternatif. Lihat bagian Parameter value 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 bahwa agen akan bertanya kepada pengguna akhir apakah parameter ini tidak diberikan. Kolom ini hanya digunakan jika kolom Wajib dicentang. Lihat bagian Pengisian slot dengan parameter yang diperlukan di bawah.
  • Nilai default: Nilai ini adalah nilai default untuk parameter saat pengguna akhir tidak memberikan nilai. 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 menyediakan data parameter ke permintaan webhook fulfillment Anda atau respons interaksi API. Parameter ini disediakan sebagai pemetaan dari nama parameter ke nilai parameter.

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

Mencantumkan parameter

Saat membuat agen dengan konsol, mencentang opsi Adalah Daftar 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:

Screenshot anotasi parameter daftar.

Setelah Anda menganotasi setidaknya dua kata atau frasa dengan parameter yang sama dalam satu frasa pelatihan, opsi Adalah Daftar 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 Adalah Daftar 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 Value parameter.

Misalnya, Anda dapat menggunakan $parameter-name dalam respons intent. Saat Dialogflow merespons pengguna, Dialogflow akan mengganti referensi parameter tersebut dengan parameter value yang diekstrak saat runtime. Ini berguna untuk merangkum informasi yang diberikan oleh pengguna akhir. Misalnya, respons intent Anda bisa terlihat seperti: "Oke, saya memesan kamar untuk Anda pada $date".

Referensi parameter dasar

Untuk mereferensikan parameter value yang diekstrak oleh entity terkait, gunakan format berikut:

$parameter-name

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

Referensi parameter untuk nilai asli

Ketika cocok dengan entity tertentu, teks sering kali dikonversi menjadi teks yang lebih mudah untuk diproses. Misalnya, kata "apel" dalam ekspresi pengguna akhir dapat diekstrak sebagai "apel" 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 parameter adalah date, Anda dapat mereferensikan nilai asli sebagai $date.original.

Referensi parameter untuk tanggal yang ambigu

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

Anda dapat mengambil pencocokan sebagian 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 mengucapkan "13 Agustus":

Referensi parameter Nilai terselesaikan
$tanggal 2021-08-13
$date.partisi UUUU-08-13
$date.recent 2020-08-13

Referensi parameter untuk entity gabungan

Entity gabungan adalah entity 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-entitas 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 parameter adalah room, dan reservation adalah konteks aktif, Anda dapat mereferensikan nilai parameter sebagai #reservation.room.

Referensi parameter untuk parameter peristiwa

Untuk mereferensikan parameter event, gunakan format berikut:

#event-name.parameter-name

Misalnya, jika nama parameter adalah duration, dan nama peristiwanya adalah alarm, Anda dapat mereferensikan parameter peristiwa sebagai #alarm.duration.

kolom Parameter Value

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

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

Pengisian slot dengan parameter yang diperlukan

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

Screenshot kolom parameter yang wajib diisi

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

Dialogflow tidak mengirim permintaan webhook fulfillment hingga mengumpulkan semua data yang diperlukan dari pengguna akhir, kecuali 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.

Screenshot perintah parameter

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

  • jenis pakaian
  • quantity
  • ukuran
  • color [warna]

Menyelesaikan intent mungkin terlihat seperti berikut:

Pengguna: Saya ingin membeli kaus.
Agen: Berapa jumlah yang Anda mau?
Pengguna: 3
Agen: Warna apa yang Anda inginkan?
Pengguna: Hitam
Agen: Ukuran apa?
Pengguna: Sedang
Agen: Oke, itu adalah tiga kaus hitam ukuran sedang

Jika pengguna akhir menyediakan data untuk lebih dari satu parameter dalam satu ekspresi, Dialogflow akan mengumpulkan data yang disediakan dan terus meminta data yang hilang. Misalnya, pengguna akhir mungkin mengatakan "Saya ingin membeli tiga kaus hitam". Dialogflow akan menanyakan ukuran kepada pengguna.

Mengurutkan parameter

Saat membuat agen, Anda dapat mengurutkan parameter, yang menentukan urutan saat agen 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 prompt

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?

Batalkan pengisian slot

Ketika pengguna akhir mengucapkan frasa keluar seperti "Batal", "Hentikan", "Sudah cukup", dll., agen 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 mengetahui informasi selengkapnya, lihat dokumentasi detectIntent untuk jenis Sessions.