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 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-dogs
cocok. - Konteks output adalah
dogs
, sehingga menjadi konteks aktif.
Saat pengguna akhir mengucapkan I like cats
:
- Intent
pet-select-cats
cocok. - Konteks output adalah
cats
, sehingga menjadi konteks aktif.
Saat pengguna akhir mengucapkan What do they look like?
:
- Jika
dogs
adalah konteks aktif:- Intent
dog-show
cocok. - Pengguna akhir akan melihat gambar.
- Intent
- Jika
cats
adalah konteks aktif:- Intent
cat-show
cocok. - Pengguna akhir akan melihat gambar kucing.
- Intent
- Jika tidak ada konteks aktif:
- Intent
pet-init
cocok. - 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?" |
pertunjukan-hewan-peliharaan | "Bagaimana tampilannya?" | - | pet-chosen | - | "Berikut foto #pet-chosen.pet." |
Saat pengguna akhir mengucapkan I like dogs
atau I like cats
:
- Intent
pet-select
cocok. - Parameter
pet
ditetapkan 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-chosen
adalah konteks aktif:- Intent
pet-show
cocok. - Jika pengguna akhir memilih
dogs
di giliran percakapan sebelumnya, pengguna akhir akan melihat gambar. - Jika pengguna akhir memilih
cats
pada giliran percakapan sebelumnya, pengguna akhir akan melihat gambar kucing.
- Intent
- Jika tidak ada konteks aktif:
- Intent
pet-init
cocok. - 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?" |
pertunjukan-hewan-peliharaan | "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
:
Putar | 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 merupakan 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 dicocokkan daripada intent tanpa konteks input atau intent dengan hanya "A" untuk konteks input.