Jenis memungkinkan Anda mengonfigurasi NLU Asisten (natural language understanding) untuk mengekstrak data terstruktur dari input pengguna. Anda dapat menggunakan jenis dalam situasi berikut:
Dalam intent, Anda dapat menganotasi frasa pelatihan dengan jenis membuat slot. Saat pengguna mengucapkan sesuatu yang cocok dengan slot, mesin NLU mengekstraknya sebagai parameter yang diketik, sehingga Anda dapat memprosesnya dalam scene.
Dalam tahap pengisian slot adegan, Anda dapat menentukan beberapa slot yang ingin Anda sediakan pengguna sebelum mereka bisa bertransisi atau keluar dari adegan.
Dalam tahap kondisi scene, Anda dapat mendasarkan logika yang menjelaskan apakah suatu parameter memiliki nilai tertentu yang ditentukan dalam suatu jenis.
Jenis kustom
Jenis khusus memungkinkan Anda membuat spesifikasi jenis sendiri untuk memberi tahu NLU untuk menetapkan satu set nilai untuk sebuah kunci. Anda dapat menentukan jenis dalam berbagai cara:
- Kata dan sinonim memungkinkan Anda memetakan beberapa nilai ke satu kunci,
yang disebut entri. Jenis Anda dapat berisi satu atau beberapa entri. Jika Anda
memilih opsi ini, Anda juga dapat mengaktifkan setelan NLU berikut:
- Aktifkan pencocokan fuzzy - Fitur ini memungkinkan entri dengan lebih dari satu kata yang cocok, bahkan saat kata tersebut diucapkan dalam urutan yang berbeda.
- Terima nilai yang tidak diketahui - Jika Anda tidak dapat menentukan semua nilai yang mungkin, pemroses bahasa dapat menerima kata atau frasa yang tidak dikenal berdasarkan lingkungan data input dan pelatihan niat, seperti item yang mungkin ditambahkan ke toko bahan makanan daftar.
- Ekspresi reguler memungkinkan jenis mencocokkan nilai menggunakan ekspresi reguler pola ekspresi berdasarkan Standar RE2 Google.
- Teks bentuk bebas memungkinkan jenis dicocokkan apa pun yang dikatakan pengguna. Membuat anotasi intent dengan jenis ini memungkinkan Anda memakai semua input sebagai parameter yang dapat melanjutkan ke NLU Anda sendiri.
Jenis sistem
Jenis sistem memungkinkan Anda menganotasi dan mengekstrak data populer dari input pengguna menggunakan data dan nilai pelatihan yang disediakan oleh sistem. Jenis sistem berikut ini adalah 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 |
Hanya berisi tanggal. Hanya tersedia untuk pengisian slot. |
actions.type.Time |
Hanya berisi waktu. Hanya tersedia untuk pengisian slot. |
actions.type.Number |
Jenis Number cocok dengan ordinal dan kardinal
angka. |
Penggunaan DateTime
, Date
, dan Time
Tipe ini berperilaku berbeda, tergantung di mana Anda menggunakan tipe dan input pengguna yang cocok dengan jenisnya.
Menggunakan with intent
Menganotasi frasa pelatihan dalam intent hanya mendukung jenis DateTime
. Pengguna
input tidak harus cocok dengan keseluruhan nilai DateTime
. Misalnya, jika pengguna
hanya menyediakan 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 yang diberikan. - Jika jenis slot adalah
Date
, Asisten akan meminta pengguna sampai tanggal nilai yang diberikan. Saat dikumpulkan, parameter yang Anda terima adalahDateTime
dengan waktu yang disetel ke 00.00. - Jika jenis slot adalah
Time
, Asisten akan meminta pengguna hingga waktu nilai yang diberikan. Saat dikumpulkan, parameter yang Anda terima adalah ObjekDateTime
dengan tanggal yang ditetapkan ke tanggal saat ini.
Misalnya, anggaplah pengguna di Los Angeles berkata, "Ok Google, buat pengingat
untuk 15 Januari 2024 pukul 08.00." Saat DateTime
diekstrak sebagai bagian dari 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 memungkinkan penggunaan angka dan string, jadi menggunakan level teratas
Parameter DateTime
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 'DateTime' tingkat teratas objek bukanlah angka atau string.
Penggantian jenis runtime
Penggantian jenis runtime memungkinkan Anda membuat atau memodifikasi jenis secara dinamis dalam pemenuhan pesanan. Fitur ini memungkinkan Anda menambah atau mengganti spesifikasi jenis di waktu beroperasi. Misalnya, Anda dapat memeriksa sumber data backend untuk memuat menu harian item ke jenis dalam pemenuhan Anda.
Lihat panduan webhook untuk mengetahui informasi selengkapnya tentang cara membangun penggantian jenis.