Adegan

Dikombinasikan dengan intent, scene adalah elemen penyusun utama lainnya dari model percakapan Anda. Scene mewakili setiap status percakapan Anda dan tujuan utamanya adalah mengatur percakapan menjadi bagian-bagian logis, menjalankan tugas, dan menampilkan dialog kepada pengguna.

Beberapa fitur adegan antara lain:

  • Eksekusi berulang - Scene dieksekusi dalam loop hingga memenuhi kriteria transisi yang Anda tentukan. Hal ini memungkinkan Anda membuat alur logika kontrol dengan jauh lebih efisien dalam satu scene.
  • Pemisahan dialog - Dengan kombinasi intent, scene memungkinkan Anda mengelompokkan dialog ke dalam potongan logis, sehingga memberi Anda cara mudah untuk membuat pasangan permintaan pengguna dan respons Tindakan.
  • Cakupan pencocokan intent - Karena hanya satu scene yang dapat aktif pada satu waktu, Anda dapat menentukan cakupan pencocokan intent dengan scene pilihan Anda dan membuatnya cocok hanya saat scene tersebut aktif.
  • Pengisian slot - Anda dapat menggunakan pengisian slot dalam scene untuk mengumpulkan beberapa input pengguna yang diketik, tanpa harus membuat beberapa intent
  • Kondisi dalam skenario - Anda dapat memeriksa slot, sesi, pengguna, dan penyimpanan rumah untuk menjalankan logika kondisional sederhana tanpa memicu webhook.

Anda dapat menentukan scene sebagai bagian dari model percakapan sebagai adegan kustom. Logika percakapan Asisten juga mencakup scene sistem yang menyediakan fungsi standar untuk percakapan Anda.

Adegan kustom

Scene kustom adalah elemen penyusun logika percakapan yang membentuk bagian dari model percakapan Action Anda. Scene kustom memiliki tahapan yang menentukan cara dan waktu dimulai, yang disebut Aktivasi, pemrosesan percakapan yang dijalankannya, yang disebut Siklus proses eksekusi, dan cara scene berakhir, yang disebut Transisi:

  • Aktivasi - Sebelum scene dapat dieksekusi, Anda harus mengaktifkannya melalui pencocokan intent global atau transisi scene.
  • Eksekusi - Saat aktif, scene akan dijalankan dalam siklus proses yang ditentukan dengan baik, sehingga Anda dapat melakukan berbagai tugas seperti pengisian slot, pemeriksaan kondisional, pembuatan perintah, dan pemicu peristiwa web.
  • Transisi - Setelah scene memenuhi kriteria yang Anda tentukan, seperti mencocokkan intent atau menyelesaikan pengisian slot, Anda dapat beralih ke scene lain untuk melakukan lebih banyak logika. Atau, Anda dapat beralih ke scene sistem End conversation, yang mengakhiri percakapan dengan pengguna.
Gambar 1. Transisi scene yang umum. Intent global mengaktifkan scene selama pemanggilan, scene menggunakan input pengguna dan cocok dengan intent, yang mentransisikan dan mengaktifkan scene lain.

Aktivasi

Sebelum dapat dieksekusi, scene harus aktif. Hanya satu scene yang dapat aktif pada setiap saat. Anda dapat mengaktifkan suasana dengan cara berikut:

  • Pemanggilan - Saat input pengguna cocok dengan model bahasa intent global, Anda dapat mengaktifkan scene untuk memproses pemanggilan.
  • Transisi scene statis - Jika scene memenuhi kriteria transisi, Anda dapat menentukan transisi ke scene lain.
  • Transisi scene dinamis - Dalam pengendali webhook, Anda dapat melakukan transisi secara terprogram ke scene lain.

Siklus proses eksekusi

Saat scene aktif, scene akan dieksekusi dalam siklus proses yang terdefinisi dengan baik, yang berulang hingga scene memenuhi kriteria transisi yang Anda tetapkan. Siklus proses eksekusi adegan dipisahkan menjadi tahap opsional yang berjalan dalam urutan berikut:

  1. Saat masuk - Tahap ini hanya berjalan sekali saat scene diaktifkan. Anda dapat memicu webhook atau meminta pengguna melakukan penyiapan satu kali untuk scene Anda.

  2. Kondisi - Kondisi memungkinkan Anda mengevaluasi kriteria tertentu sebelum melanjutkan tahap siklus proses, memicu webhook, atau mengirim permintaan. Tahap ini dapat menentukan kriteria transisi untuk keluar dari loop eksekusi.

  3. Pengisian slot - Scene dapat otomatis meminta pengguna hingga mengumpulkan semua slot yang diperlukan (data yang diketik). Scene meminta satu slot setiap kali melalui loop eksekusinya. Jika ada slot yang hilang, siklus proses scene pada akhirnya akan melakukan loop kembali ke tahap pengisian slot dan meminta slot yang diperlukan berikutnya. Tahap ini dapat menentukan kriteria transisi untuk keluar dari loop eksekusi.

  4. Perintah - Asisten mengirimkan antrean perintah kepada pengguna dan menghapus antrean. Antrean perintah adalah kumpulan permintaan gabungan yang digabungkan sejak terakhir kali tahap ini menghapus antrean.

  5. Input - Asisten menggunakan dan menampilkan input pengguna ke suasana Anda, sehingga Anda dapat memprosesnya, yang mungkin mencakup pencocokan intent (intent global atau intent pengguna dalam scene), melanjutkan pengisian slot (jika tidak selesai), atau menangani error tidak ada kecocokan atau tidak input sama sekali. Tahap ini dapat menentukan kriteria transisi untuk keluar dari loop eksekusi. Jika tidak ditransisikan, loop eksekusi akan kembali ke tahap kondisi.

Gambar 2. Siklus proses eksekusi scene

Bagian berikut menjelaskan setiap tahap siklus proses secara lebih mendetail.

Saat masuk

On enter adalah satu-satunya tahap yang tidak dieksekusi dalam loop eksekusi scene. Metode ini melakukan inisialisasi satu kali atas scene Anda dalam urutan berikut:

  • Jika runtime Asisten dapat mengisi slot apa pun dari intent yang cocok sebelumnya, runtime Asisten akan melakukannya sekarang untuk menyiapkan scene untuk tahap pengisian slot. Misalnya, beberapa input pengguna mungkin cocok dengan intent dan menyediakan slot. Pencocokan intent tersebut akan mengaktifkan scene dan dapat mengisi slot dalam scene jika nama slot cocok.
  • Jika diaktifkan, webhook akan memicu peristiwa secara sinkron dan menunggu layanan web Anda menampilkan respons.
  • Saat menerima respons webhook, runtime akan me-resolve referensi parameter apa pun dalam perintah dan memilih kandidat perintah berdasarkan platform pengguna, lalu memilih satu varian untuk dikirimkan oleh kandidat tersebut ke pengguna nanti.
  • Jika respons webhook berisi perintah, respons webhook akan menambahkannya ke antrean pesan. Jika ada prompt statis juga, prompt webhook akan digabungkan ke antrean perintah terlebih dahulu, lalu diikuti dengan perintah statis.
  • Jika respons webhook berisi transisi, respons webhook akan mencakup transisi sekarang. Jika tidak, adegan berlanjut ke tahap pengisian slot.

Kondisi

Kondisi memungkinkan Anda memeriksa data sesi, pengguna, atau slot agar kondisinya benar. Misalnya, Anda dapat memeriksa untuk melihat apakah semua slot sudah terisi dan menetapkannya sebagai kriteria untuk bertransisi ke scene lain guna memproses slot.

  • Runtime Asisten mengevaluasi setiap kondisi sesuai urutan yang ditentukan. Kondisi pertama yang bernilai true akan mengeksekusi pengendali terkait dan menghentikan evaluasi kondisi.
  • Kondisi else if scene.slots.status = "FINAL" akan otomatis ditambahkan ke daftar kondisi jika Anda melakukan pengisian slot. Kondisi opsional ini memeriksa apakah pengisian slot sudah lengkap dan dapat memicu webhook atau menambahkan perintah ke antrean permintaan.

Setelah evaluasi kondisi, jika scene tidak menentukan transisi, scene akan terus mengisi slot.

Pengisian slot

Tahap ini akan menambahkan {i>prompt<i} slot untuk satu slot yang tidak terisi dan yang diperlukan. Jika Anda tidak menentukan slot apa pun dalam scene, tahap ini tidak akan melakukan apa pun.

  • Runtime Asisten memilih slot tidak terisi pertama dan menambahkan perintah yang sesuai ke antrean perintah. Karena loop eksekusi scene, slot yang tidak terisi tambahan akan ditangani nanti saat loop eksekusi kembali ke tahap ini.
  • Slot aktif saat ini dapat memiliki perintah penanganan error yang menggantikan perintah yang ditentukan dalam tahap input scene.
  • Saat pengguna mengisi slot, Anda dapat memvalidasinya di layanan web dengan memicu webhook.

Perintah

Runtime Asisten mengirimkan antrean perintah kepada pengguna, menghapus antrean, dan menggunakan input pengguna.

Input

Runtime Asisten mencoba mencocokkan input dengan intent atau slot:

  • Dalam kasus pencocokan intent pengguna, scene akan mengeksekusi pengendali intent terkait (intent pengguna atau sistem). Pengendali intent scene lebih diutamakan daripada intent global. Jika Anda tidak menentukan transisi, eksekusi adegan akan melakukan loop kembali ke tahap kondisi.
  • Pada kasus kecocokan slot, scene kembali ke tahap pengisian slot.
  • Jika ada pencocokan intent sistem (misalnya, tidak ada input atau tidak ada kecocokan), Anda dapat menambahkan perintah ke antrean perintah, memicu webhook, atau transisi. Jika ada beberapa perintah tidak ada kecocokan yang ditentukan, runtime Asisten akan memilih yang paling relevan, dengan urutan berikut: pengisian slot, scene, lalu perintah tidak ada kecocokan global. Tidak ada kecocokan berturut-turut akan menghasilkan peristiwa yang sesuai:

    • no_match_1
    • no_match_2
    • no_match_final

    Setiap level tanpa kecocokan (pengisian slot, scene, dan global) dapat memicu peristiwa webhook. Secara default, pencocokan ketiga dan terakhir tidak akan mengakhiri percakapan.

Transition

Transisi dapat terjadi dalam tahap-tahap berikut:

  • Kondisi - Anda dapat melakukan transisi ke scene lain berdasarkan kondisi yang Anda tentukan. Kondisi umum yang harus diperiksa adalah pengisian slot yang harus selesai.
  • Input (pencocokan intent pengguna) - Jika intent cocok, intent tersebut dapat memicu transisi ke scene lain.
  • Input (pencocokan intent sistem) - Anda dapat memicu webhook selama peristiwa pencocokan intent sistem. Untuk tanpa kecocokan dan tanpa peristiwa input, scene secara default akan bertransisi ke scene End conversation setelah tiga kejadian.

Adegan sistem

Scene sistem memungkinkan Anda menggunakan logika percakapan bawaan yang disediakan oleh Asisten, yang memungkinkan Anda menambahkan alur percakapan standar ke pengalaman pengguna Anda. Misalnya, scene sistem penautan akun memungkinkan Asisten mengambil alih sementara untuk menjalankan alur penautan akun, yang menampilkan informasi yang Anda butuhkan untuk benar-benar menautkan akun pengguna. Scene sistem tidak mengikuti siklus proses scene standar.

Daftar berikut menjelaskan scene sistem yang didukung dan cara menggunakannya:

  • Akhiri percakapan - Menutup mikrofon dan mengakhiri percakapan dengan pengguna. Asisten mengambil kembali kontrol pengalaman pengguna setelah scene ini dijalankan.
  • Penautan akun - Memandu pengguna melalui alur penautan akun dan memberikan Action Anda informasi yang diperlukan untuk menautkan akun pengguna di server backend dengan Akun Google pengguna. Lihat dokumentasi penautan akun untuk informasi selengkapnya tentang cara menggunakan scene ini.
  • Update harian - Memandu pengguna melalui alur konfirmasi untuk menambahkan Action ke update harian pengguna. Lihat dokumentasi update harian untuk mengetahui informasi selengkapnya tentang cara menggunakan scene ini.
  • Notifikasi - Memandu pengguna melalui alur konfirmasi untuk menerima notifikasi dari Action Anda. Lihat dokumentasi notifikasi push untuk mengetahui informasi selengkapnya tentang cara menggunakan scene ini.