Konteks input dan output diterapkan ke intent. Keduanya bekerja sama untuk mengontrol alur percakapan:
- Konteks output mengontrol konteks aktif. Saat intent cocok, konteks output yang dikonfigurasi untuk intent tersebut akan menjadi aktif.
- Konteks input mengontrol pencocokan maksud. Saat konteks aktif, Dialogflow lebih cenderung mencocokkan intent yang dikonfigurasi dengan konteks input yang merupakan subset dari konteks yang saat ini aktif.
Dengan konteks, Anda dapat:
- Mengontrol urutan pencocokan intent.
- Buat maksud khusus konteks dengan frasa pelatihan yang sama.
Misalnya, pertimbangkan maksud berikut:
| Nama intent | Frasa latihan | Parameter | Konteks input | Konteks output | Respons |
|---|---|---|---|---|---|
| pet-init | "Seperti apa tampilannya?" | - | - | - | "Hewan peliharaan seperti apa yang kamu sukai?" |
| pet-select-dogs | "Saya suka" | - | - | dogs | "Apa yang ingin Anda ketahui tentang?" |
| pet-select-cats | "Saya suka kucing" | - | - | cats | "Apa yang ingin Anda ketahui tentang kucing?" |
| pertunjukan | "Seperti apa tampilannya?" | - | dogs | - | "Berikut adalah gambar." |
| pertunjukan kucing | "Seperti apa tampilannya?" | - | cats | - | "Ini adalah gambar kucing." |
Saat pengguna akhir mengatakan I like dogs:
- Intent
pet-select-dogscocok. - Konteks output adalah
dogs, sehingga menjadi konteks aktif.
Saat pengguna akhir mengatakan I like cats:
- Intent
pet-select-catscocok. - Konteks output adalah
cats, sehingga menjadi konteks aktif.
Saat pengguna akhir mengatakan What do they look like?:
- Jika
dogsadalah konteks aktif:- Intent
dog-showcocok. - Pengguna akhir akan melihat gambar.
- Intent
- Jika
catsadalah konteks aktif:- Intent
cat-showcocok. - Pengguna akhir akan melihat gambar kucing.
- Intent
- Jika tidak ada konteks aktif:
- Intent
pet-initcocok. - Pengguna akhir ditanya jenis hewan peliharaan yang mereka sukai.
- Intent
Konteks output
Beberapa konteks output dapat diterapkan ke intent. Saat intent cocok, konteks output yang diterapkan ke intent akan menjadi aktif.
Referensi parameter untuk konteks aktif
Saat intent dengan konteks output cocok, nilai parameter yang dikumpulkannya dapat berfungsi sebagai penyimpanan sementara dengan referensi parameter untuk konteks aktif. Nilai ini dapat diakses selama pencocokan maksud pada masa mendatang, selama konteks tetap aktif.
Misalnya, perhatikan variasi contoh pet di atas berikut:
| Nama intent | Frasa latihan | Parameter | Konteks input | Konteks output | Respons |
|---|---|---|---|---|---|
| pet-init | "Seperti apa tampilannya?" | - | - | - | "Hewan peliharaan seperti apa yang kamu sukai?" |
| pet-select | "Saya suka ", "Saya suka kucing" | peliharaan | - | dipilih hewan peliharaan | "Apa yang ingin Anda ketahui tentang $pet?" |
| pet-show | "Seperti apa tampilannya?" | - | dipilih hewan peliharaan | - | "Berikut adalah foto #pet-chosen.pet." |
Saat pengguna akhir mengatakan I like dogs atau I like cats:
- Intent
pet-selectcocok. petParameter disetel ke jenis hewan peliharaan yang dipilih.- Konteks output adalah
pet-chosen, sehingga menjadi konteks aktif.
Saat pengguna akhir mengatakan What do they look like?:
- Jika
pet-chosenadalah konteks aktif:- Intent
pet-showcocok. - Jika pengguna akhir memilih
dogspada giliran percakapan sebelumnya, pengguna akhir akan melihat gambar. - Jika pengguna akhir memilih
catspada giliran percakapan sebelumnya, pengguna akhir akan melihat gambar kucing.
- Intent
- Jika tidak ada konteks aktif:
- Intent
pet-initcocok. - Pengguna akhir diminta untuk memilih jenis hewan peliharaan.
- Intent
Masa aktif
Setiap konteks aktif memiliki masa aktif yang menentukan jumlah giliran percakapan agar konteks tetap aktif. Masa aktif default adalah lima giliran percakapan untuk maksud normal dan dua giliran percakapan untuk maksud lanjutan. Anda dapat mengganti masa aktif default untuk konteks apa pun. Selain itu, semua konteks akan habis masa berlakunya setelah 20 menit menjadi aktif. Jika intent cocok dengan konteks output yang sudah aktif, masa aktif dan timer habis masa berlakunya akan direset.
Misalnya, pertimbangkan deskripsi maksud berikut untuk agen informasi hewan peliharaan:
| Nama intent | Frasa latihan | Parameter | Konteks input | Konteks output | Respons |
|---|---|---|---|---|---|
| pet-init | "Seperti apa tampilannya?", "Bagaimana suaranya?", "Seberapa besar ukurannya?" | - | - | - | "Hewan peliharaan seperti apa yang kamu sukai?" |
| pet-select | "Saya suka ", "Saya suka kucing" | peliharaan | - | dipilih hewan peliharaan (masa aktif = 2) | "Apa yang ingin Anda ketahui tentang $pet?" |
| pet-show | "Seperti apa tampilannya?" | - | dipilih hewan peliharaan | - | "Berikut adalah foto #pet-chosen.pet. Apa lagi yang ingin Anda ketahui?" |
| pet-audio | "Bagaimana suaranya?" | - | dipilih hewan peliharaan | - | "Berikut suara #pet-chosen.pet. Apa lagi yang ingin Anda ketahui?" |
| ukuran hewan peliharaan | "Seberapa besar ukurannya?" | - | dipilih hewan peliharaan | - | "Berikut adalah tabel ukuran #pet-chosen.pet. Apa lagi yang ingin Anda ketahui?" |
Tabel berikut menunjukkan contoh dialog untuk agen informasi hewan peliharaan ini,
yang menggambarkan masa aktif konteks pet-chosen:
| Belok | Dialog | Penjelasan |
|---|---|---|
| 1 | Agen: Hewan peliharaan seperti apa yang Anda sukai? | Intent pet-init cocok. |
| 2 | Pengguna: Saya suka kucing. Agen: Apa yang ingin Anda ketahui tentang kucing? |
Intent pet-select cocok. Konteks output pet-chosen menjadi konteks aktif. |
| 3 | Pengguna: Seperti apa penampilannya? Agen: Berikut adalah gambar kucing. Apa lagi yang ingin Anda ketahui? |
Intent pet-show memiliki konteks input pet-chosen, sehingga cocok. Konteks pet-chosen telah aktif selama 1 giliran. |
| 4 | Pengguna: Seperti apa suaranya? Agen: Berikut suara kucing. Apa lagi yang ingin Anda ketahui? |
Intent pet-audio memiliki konteks input pet-chosen, sehingga cocok. Konteks pet-chosen telah aktif selama 2 giliran. |
| 5 | Pengguna: Seberapa besar ukurannya? Agen: Hewan peliharaan seperti apa yang Anda sukai? |
Intent pet-init dicocokkan lagi, karena konteks pet-chosen tidak lagi aktif. |
Konteks input
Saat konteks aktif, Dialogflow lebih cenderung mencocokkan intent yang dikonfigurasi dengan konteks input yang sesuai dengan konteks yang saat ini aktif. Aturan pencocokan intent yang mendetail adalah sebagai berikut:
- Daftar konteks input maksud harus berupa subset dari daftar konteks yang saat ini aktif agar dapat dicocokkan. Hal ini juga berlaku untuk maksud tanpa konteks input.
- Untuk maksud yang memenuhi aturan #1, maksud dengan daftar konteks input yang paling cocok dengan daftar konteks yang saat ini aktif lebih mungkin cocok.
Contoh:
- Maksud tanpa konteks input dapat dicocokkan kapan saja.
- Jika tidak ada konteks yang aktif, hanya maksud tanpa konteks input yang dapat dicocokkan.
- Jika konteks "A" dan "B" aktif, maka maksud dengan konteks input "A" dan "C" tidak dapat dicocokkan.
- Jika konteks "A", "B", dan "C" aktif, intent dengan konteks input "A" dan "B" dapat dicocokkan.
- Jika konteks "A" dan "B" aktif, intent dengan konteks input "A" dan "B" lebih mungkin cocok daripada intent tanpa konteks input atau intent dengan hanya "A" untuk konteks input.