Jenis memungkinkan Anda mengonfigurasi mesin NLU (natural language understanding) Asisten untuk mengekstrak data terstruktur dari input pengguna. Anda dapat menggunakan jenis dalam situasi berikut:
Di intent, Anda dapat menganotasi frasa pelatihan dengan jenis untuk membuat slot. Saat pengguna mengucapkan sesuatu yang cocok dengan slot, mesin NLU akan mengekstraknya sebagai parameter yang diketik, sehingga Anda dapat memprosesnya dalam scene.
Dalam tahap pengisian slot scene, Anda dapat menentukan beberapa slot yang ingin disediakan pengguna sebelum mereka dapat bertransisi atau keluar dari scene.
Dalam tahap conditions scene, Anda dapat mendasarkan logika pada apakah suatu parameter memiliki nilai tertentu yang ditentukan dalam jenis.
Jenis kustom
Jenis kustom memungkinkan Anda membuat spesifikasi jenis sendiri untuk memberi tahu NLU agar menetapkan kumpulan nilai ke satu kunci. Anda dapat menentukan jenis dalam berbagai cara:
- Kata dan sinonim memungkinkan Anda memetakan beberapa nilai ke satu kunci, yang disebut entri. Jenis dapat berisi satu atau beberapa entri. Jika
memilih opsi ini, Anda juga dapat mengaktifkan setelan NLU berikut:
- Aktifkan pencocokan fuzzy - Fitur ini memungkinkan entri yang berisi lebih dari satu kata untuk dicocokkan, meskipun kata tersebut diucapkan dalam urutan yang berbeda.
- Menerima nilai yang tidak diketahui - Jika Anda tidak dapat menentukan semua nilai yang mungkin, pemroses bahasa dapat menerima kata atau frasa yang tidak diketahui berdasarkan input dan data pelatihan intent sekitarnya, seperti item yang mungkin ditambahkan ke daftar bahan makanan.
- Ekspresi reguler memungkinkan jenis untuk mencocokkan nilai menggunakan pola ekspresi reguler berdasarkan standar RE2 Google.
- Teks bentuk bebas memungkinkan jenisnya cocok dengan apa pun yang dikatakan pengguna. Menganotasi intent dengan jenis ini memungkinkan Anda menggunakan semua input sebagai parameter yang dapat disalurkan ke NLU Anda sendiri.
Jenis sistem
Jenis sistem memungkinkan Anda memberi anotasi dan mengekstrak data terkenal dari input pengguna menggunakan data dan nilai pelatihan yang disediakan sistem. Jenis sistem berikut didukung:
Jenis | Deskripsi |
---|---|
actions.type.DateTime |
Berisi tanggal, waktu, dan zona waktu berdasarkan setelan perangkat pengguna. Tersedia untuk pengisian slot dan anotasi frasa pelatihan. |
actions.type.Date |
Berisi tanggal saja. Hanya tersedia untuk pengisian slot. |
actions.type.Time |
Hanya berisi waktu. Hanya tersedia untuk pengisian slot. |
actions.type.Number |
Jenis Number cocok dengan angka ordinal dan
kardinal. |
Penggunaan DateTime
, Date
, dan Time
Jenis ini berperilaku berbeda bergantung pada tempat Anda menggunakan jenis dan input pengguna yang cocok dengan jenis tersebut.
Menggunakan dengan intent
Menganotasi frasa pelatihan di intent hanya mendukung jenis DateTime
. Input
pengguna tidak harus cocok dengan keseluruhan nilai DateTime
. Misalnya, jika pengguna
hanya memberikan tahun, parameter sesi mungkin terlihat seperti ini:
"date_time": {
"year": 2019
}
Menggunakan dengan pengisian slot
Pengisian slot mendukung DateTime
, Date
, dan Time
.
- Jika jenis slot adalah
DateTime
, Asisten akan meminta pengguna hingga nilai penuh diberikan. - Jika jenis slot adalah
Date
, Asisten akan meminta pengguna hingga nilai tanggal diberikan. Saat dikumpulkan, parameter yang Anda terima adalahDateTime
penuh dengan waktu yang ditetapkan ke 00:00. - Jika jenis slot adalah
Time
, Asisten akan meminta pengguna hingga nilai waktu diberikan. Jika dikumpulkan, parameter yang Anda terima adalah objekDateTime
lengkap dengan tanggal yang ditetapkan ke tanggal saat ini.
Misalnya, seorang pengguna di Los Angeles mengatakan, "Ok Google, buat pengingat
untuk 15 Januari 2024 pukul 20.00". Jika DateTime
diekstrak sebagai bagian dari proses pengisian slot, parameter lengkapnya mungkin akan terlihat seperti ini:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Menggunakan dengan kondisi
Kondisi hanya mengizinkan penggunaan angka dan string, jadi penggunaan parameter DateTime
tingkat atas akan menghasilkan hasil False untuk kondisi tersebut. Contoh:
$session.params.my_dateTime.day > 5
adalah kondisi yang valid karena nilaiday
berupa angka dan didukung.$session.params.my_dateTime > "01-01-2010"
adalah kondisi yang tidak valid, karena objek 'DateTime' tingkat atas bukan berupa angka atau string.
Penggantian jenis runtime
Penggantian jenis runtime memungkinkan Anda membuat atau mengubah jenis dalam fulfillment secara dinamis. Fitur ini memungkinkan Anda menambahkan atau mengganti spesifikasi jenis saat runtime. Misalnya, Anda dapat memeriksa sumber data backend untuk memuat item menu harian ke dalam jenis dalam fulfillment Anda.
Lihat panduan webhook untuk mengetahui informasi selengkapnya tentang cara mem-build penggantian jenis.