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. 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}.
  • 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 apa 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 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.
  • 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 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:

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