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. Meskipun konteks aktif, Dialogflow lebih cenderung cocok dengan intent yang dikonfigurasi dengan konteks input yang merupakan subset 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 | "Seperti apa bentuknya?" | - | - | - | "Kamu suka hewan peliharaan apa?" |
pilih--hewan peliharaan | "Saya suka" | - | - | dogs | "Apa yang ingin kamu ketahui tentang?" |
kucing-pilih-hewan peliharaan | "Aku suka kucing" | - | - | cats | "Apa yang ingin kamu ketahui tentang kucing?" |
pertunjukan | "Seperti apa bentuknya?" | - | dogs | - | "Ini adalah gambar." |
pertunjukan kucing | "Seperti apa bentuknya?" | - | cats | - | "Ini ada gambar kucing." |
Saat pengguna akhir mengatakan I like dogs
:
- Intent
pet-select-dogs
cocok. - Konteks output adalah
dogs
sehingga menjadi konteks aktif.
Saat pengguna akhir mengatakan I like cats
:
- Intent
pet-select-cats
cocok. - Konteks output adalah
cats
sehingga menjadi konteks aktif.
Saat pengguna akhir mengatakan What do they look like?
:
- Jika
dogs
adalah konteks aktif:- Intent
dog-show
cocok. - Pengguna akhir melihat sebuah gambar {i>dog<i}.
- 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 apa 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 cocok, parameter value yang dikumpulkannya dapat berfungsi sebagai penyimpanan sementara dengan referensi parameter untuk konteks aktif. Nilai ini dapat diakses selama pencocokan intent mendatang, selama konteksnya tetap aktif.
Misalnya, perhatikan variasi berikut dari contoh hewan peliharaan di atas:
Nama intent | Frasa latihan | Parameter | Konteks input | Konteks output | Respons |
---|---|---|---|---|---|
pet-init | "Seperti apa bentuknya?" | - | - | - | "Kamu suka hewan peliharaan apa?" |
pilih hewan peliharaan | "Saya suka ", "Saya suka kucing" | hewan peliharaan | - | pilihan hewan peliharaan | "Apa yang ingin kamu ketahui tentang $pet?" |
acara hewan peliharaan | "Seperti apa bentuknya?" | - | pilihan hewan peliharaan | - | "Berikut adalah gambar #pet-chosen.pet." |
Saat pengguna akhir mengucapkan I like dogs
atau I like cats
:
- Intent
pet-select
cocok. - Parameter
pet
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-chosen
adalah konteks aktif:- Intent
pet-show
cocok. - Jika pengguna akhir memilih
dogs
pada percakapan percakapan sebelumnya, pengguna akhir akan melihat {i>dog picture<i}. - Jika pengguna akhir memilih
cats
pada percakapan 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 putaran percakapan dengan konteksnya tetap aktif. Masa aktif default adalah lima putaran percakapan untuk intent normal dan dua putaran percakapan untuk intent tindak lanjut. Anda dapat mengganti masa aktif default untuk konteks apa pun. Selain itu, semua konteks akan berakhir setelah 20 menit aktif. Saat intent dicocokkan dengan konteks output yang sudah aktif, masa aktif dan timer habis masa berlakunya akan direset.
Misalnya, pertimbangkan deskripsi intent berikut untuk agen informasi hewan peliharaan:
Nama intent | Frasa latihan | Parameter | Konteks input | Konteks output | Respons |
---|---|---|---|---|---|
pet-init | "Seperti apa bentuknya?", "Seperti apa suara mereka?", "Seberapa besar mereka?" | - | - | - | "Kamu suka hewan peliharaan apa?" |
pilih hewan peliharaan | "Saya suka ", "Saya suka kucing" | hewan peliharaan | - | dipilih hewan peliharaan (masa hidup = 2) | "Apa yang ingin kamu ketahui tentang $pet?" |
acara hewan peliharaan | "Seperti apa bentuknya?" | - | pilihan hewan peliharaan | - | "Berikut adalah gambar #pet-chosen.pet. Apa lagi yang ingin Anda ketahui?" |
audio hewan peliharaan | "Seperti apa suara itu?" | - | pilihan hewan peliharaan | - | "Ini suara #pet-chosen.pet. Apa lagi yang ingin Anda ketahui?" |
ukuran hewan peliharaan | "Seberapa besar mereka?" | - | pilihan hewan peliharaan | - | "Berikut adalah diagram ukuran #pet-chosen.pet. Apa lagi yang ingin Anda ketahui?" |
Tabel berikut menampilkan contoh dialog untuk agen informasi hewan peliharaan ini,
yang menggambarkan masa aktif konteks pet-chosen
:
Ubah | Dialog | Penjelasan |
---|---|---|
1 | Agen: Hewan peliharaan apa yang Anda suka? | Intent pet-init cocok. |
2 | Pengguna: Saya suka kucing. Agen: Apa yang ingin kamu ketahui tentang kucing? |
Intent pet-select cocok. Konteks output pet-chosen akan menjadi konteks aktif. |
3 | Pengguna: Seperti apa mereka? Agen: Ini gambar kucing. Apa lagi yang ingin kamu ketahui? |
Intent pet-show memiliki konteks input pet-chosen sehingga cocok. Konteks pet-chosen telah aktif selama 1 putaran. |
4 | Pengguna: Bagaimana suaranya? Agen: Ini dia 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 putaran. |
5 | Pengguna: Seberapa besar mereka? Agen: Jenis hewan peliharaan apa yang Anda suka? |
Intent pet-init dicocokkan lagi, karena konteks pet-chosen tidak lagi aktif. |
Konteks input
Meskipun konteks aktif, Dialogflow lebih cenderung cocok dengan 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 subset dari daftar konteks yang saat ini aktif agar dapat dicocokkan. 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 mungkin untuk 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 mungkin cocok daripada intent tanpa konteks input atau intent hanya dengan "A" untuk konteks input.