Konteks input dan output

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-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.
  • Jika cats adalah konteks aktif:
    • Intent cat-show cocok.
    • Pengguna akhir akan melihat gambar kucing.
  • Jika tidak ada konteks aktif:
    • Intent pet-init cocok.
    • Pengguna akhir ditanya jenis hewan peliharaan yang mereka sukai.

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-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 pada giliran percakapan sebelumnya, pengguna akhir akan melihat gambar.
    • Jika pengguna akhir memilih cats pada giliran percakapan sebelumnya, pengguna akhir akan melihat gambar kucing.
  • Jika tidak ada konteks aktif:
    • Intent pet-init cocok.
    • Pengguna akhir diminta untuk memilih jenis hewan peliharaan.

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:

Turn 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:

  1. 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.
  2. 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.