Konteks input dan output diterapkan ke intent. Keduanya bekerja sama untuk mengontrol alur percakapan:
- Konteks output mengontrol konteks aktif. Saat intent dicocokkan, konteks output yang dikonfigurasi untuk intent tersebut akan aktif.
- Konteks input mengontrol pencocokan intent. Saat konteks aktif, Dialogflow lebih cenderung mencocokkan intent yang dikonfigurasi dengan konteks input yang merupakan subkumpulan dari konteks yang saat ini aktif.
Dengan konteks, Anda dapat:
- Mengontrol urutan pencocokan intent.
- Buat intent khusus konteks dengan frasa pelatihan yang sama.
Misalnya, pertimbangkan intent berikut:
| Nama intent | Frasa latihan | Parameter | Konteks input | Konteks output | Respons |
|---|---|---|---|---|---|
| pet-init | "Bagaimana tampilannya?" | - | - | - | "Jenis hewan peliharaan apa yang Anda 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- | "Bagaimana tampilannya?" | - | dogs | - | "Berikut adalah gambar." |
| cat-show | "Bagaimana tampilannya?" | - | cats | - | "Berikut adalah gambar kucing." |
Saat pengguna akhir mengucapkan I like dogs:
- Intent
pet-select-dogscocok. - Konteks output adalah
dogs, sehingga menjadi konteks aktif.
Saat pengguna akhir mengucapkan I like cats:
- Intent
pet-select-catscocok. - Konteks output adalah
cats, sehingga menjadi konteks aktif.
Saat pengguna akhir mengucapkan 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 dicocokkan, konteks output apa pun yang diterapkan ke intent akan aktif.
Referensi parameter untuk konteks aktif
Saat intent dengan konteks output dicocokkan, nilai parameter yang dikumpulkan dapat berfungsi sebagai penyimpanan sementara dengan referensi parameter untuk konteks aktif. Nilai ini dapat diakses selama pencocokan intent mendatang, selama konteks tetap aktif.
Misalnya, pertimbangkan variasi berikut dari contoh hewan peliharaan di atas:
| Nama intent | Frasa latihan | Parameter | Konteks input | Konteks output | Respons |
|---|---|---|---|---|---|
| pet-init | "Bagaimana tampilannya?" | - | - | - | "Jenis hewan peliharaan apa yang Anda sukai?" |
| pet-select | "Saya suka ", "Saya suka kucing" | hewan peliharaan | - | pet-chosen | "Apa yang ingin Anda ketahui tentang $pet?" |
| pet-show | "Bagaimana tampilannya?" | - | pet-chosen | - | "Berikut foto #pet-chosen.pet." |
Saat pengguna akhir mengucapkan I like dogs atau I like cats:
- Intent
pet-selectcocok. - Parameter
petditetapkan ke jenis hewan peliharaan yang dipilih. - Konteks output adalah
pet-chosen, sehingga menjadi konteks aktif.
Saat pengguna akhir mengucapkan 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 pakai
Setiap konteks aktif memiliki masa aktif yang menentukan jumlah giliran percakapan yang konteksnya tetap aktif. Masa aktif default adalah lima giliran percakapan untuk intent normal dan dua giliran percakapan untuk intent tindak lanjut. Anda dapat mengganti masa berlaku default untuk konteks apa pun. Selain itu, semua konteks akan berakhir masa berlakunya setelah 20 menit aktif. Saat intent dicocokkan dengan konteks output yang sudah aktif, timer masa berlaku dan masa berlaku akan direset.
Misalnya, pertimbangkan deskripsi intent berikut untuk agen informasi hewan peliharaan:
| Nama intent | Frasa latihan | Parameter | Konteks input | Konteks output | Respons |
|---|---|---|---|---|---|
| pet-init | "Bagaimana tampilannya?", "Bagaimana suaranya?", "Berapa ukurannya?" | - | - | - | "Jenis hewan peliharaan apa yang Anda sukai?" |
| pet-select | "Saya suka ", "Saya suka kucing" | hewan peliharaan | - | pet-chosen (lifespan = 2) | "Apa yang ingin Anda ketahui tentang $pet?" |
| pet-show | "Bagaimana tampilannya?" | - | pet-chosen | - | "Berikut adalah foto #pet-chosen.pet. Apa lagi yang ingin Anda ketahui?" |
| audio-hewan | "Bagaimana suaranya?" | - | pet-chosen | - | "Berikut adalah suara #pet-chosen.pet. Apa lagi yang ingin Anda ketahui?" |
| ukuran hewan peliharaan | "Berapa ukurannya?" | - | pet-chosen | - | "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: Jenis hewan peliharaan 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 bentuknya? 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 adalah 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: Berapa ukurannya? Agen: Jenis hewan peliharaan 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 mendetail adalah sebagai berikut:
- Daftar konteks input intent harus berupa subkumpulan daftar konteks yang saat ini aktif agar dapat dicocokkan. Hal ini juga berlaku untuk intent tanpa konteks input.
- Untuk intent yang memenuhi aturan #1, intent dengan daftar konteks input yang paling cocok dengan daftar konteks yang saat ini aktif lebih cenderung akan dicocokkan.
Contoh:
- Intent tanpa konteks input dapat dicocokkan kapan saja.
- Jika tidak ada konteks yang aktif, hanya intent tanpa konteks input yang dapat dicocokkan.
- Jika konteks "A" dan "B" aktif, intent 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 cenderung cocok daripada intent tanpa konteks input atau intent dengan hanya "A" untuk konteks input.