Tindakan Percakapan tidak akan digunakan lagi pada 13 Juni 2023. Untuk mengetahui informasi selengkapnya, lihat Penghentian Action Percakapan.

Adegan

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

Beberapa fitur adegan meliputi:

  • Loop eksekusi - Scene akan dieksekusi dalam loop hingga memenuhi kriteria transisi yang Anda tentukan. Hal ini memungkinkan Anda membuat alur logika kontrol yang jauh lebih efisien dalam satu scene.
  • Pemisahan dialog - Bersama intent, scene memungkinkan Anda mengelompokkan dialog ke dalam potongan logis, yang memberi Anda cara mudah untuk membuat pasangan permintaan dan respons Tindakan pengguna.
  • Cakupan pencocokan intent - Karena hanya satu scene yang dapat aktif pada satu waktu, Anda dapat mencakup pencocokan intent dengan scene pilihan Anda dan mencocokkannya hanya saat scene tersebut aktif.
  • Pengisian slot - Anda dapat menggunakan pengisian slot dalam scene untuk mengumpulkan beberapa bagian input pengguna yang diketik, tanpa harus membuat beberapa intent
  • Kondisi di balik layar - Anda dapat memeriksa slot, sesi, pengguna, dan penyimpanan rumah untuk menjalankan logika bersyarat yang sederhana tanpa memicu webhook.

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

Adegan kustom

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

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

Aktivasi

Sebelum scene dapat dieksekusi, scene harus aktif. Hanya satu scene yang dapat aktif kapan saja. Anda dapat mengaktifkan adegan dengan cara berikut:

  • Panggilan - Jika 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 beralih secara terprogram ke scene lain.

Siklus proses eksekusi

Saat aktif, scene dalam siklus proses yang ditentukan dengan baik dan melakukan loop hingga scene memenuhi kriteria transisi yang Anda tetapkan. Siklus proses eksekusi scene dipisahkan menjadi tahap opsional yang berjalan dalam urutan berikut:

  1. On enter - Tahap ini hanya berjalan sekali ketika scene diaktifkan. Anda dapat memicu webhook atau meminta pengguna untuk melakukan penyiapan satu kali scene Anda.

  2. Kondisi - Kondisi memungkinkan Anda mengevaluasi kriteria tertentu sebelum memajukan tahapan siklus proses, memicu webhook, atau mengirim perintah. 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). Suatu scene meminta satu slot setiap kali melalui loop eksekusinya. Jika ada slot yang hilang, siklus proses scene nantinya akan kembali ke tahap pengisian slot dan perintah untuk slot yang diperlukan berikutnya. Tahap ini dapat menentukan kriteria transisi untuk keluar dari loop eksekusi.

  4. Prompt - Asisten mengirimkan antrean pesan ke pengguna dan menghapus antrean. Antrean perintah adalah kumpulan permintaan yang digabung yang digabungkan sejak terakhir kali tahap ini menghapus antrean.

  5. Input - Asisten menggunakan dan menampilkan input pengguna ke scene 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 ada input. Tahap ini dapat menentukan kriteria transisi untuk keluar dari loop eksekusi. Jika tidak transisi, 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

Saat masuk, ini adalah satu-satunya tahap yang tidak dieksekusi dalam loop eksekusi scene. Kode ini melakukan inisialisasi satu kali scene Anda dalam urutan berikut:

  • Jika runtime Asisten dapat mengisi slot dari intent yang sebelumnya cocok, runtime Asisten akan melakukannya untuk menyiapkan scene untuk tahap pengisian slot. Misalnya, beberapa input pengguna mungkin cocok dengan sebuah intent dan menyediakan slot. Pencocokan intent tersebut mengaktifkan scene dan dapat mengisi slot dalam scene jika nama slot cocok.
  • Jika diaktifkan, webhook akan memicu peristiwa secara sinkron dan menunggu layanan web menampilkan respons.
  • Saat menerima respons webhook, runtime akan menyelesaikan referensi parameter apa pun dalam perintah dan memilih kandidat perintah berdasarkan platform pengguna, lalu memilih satu varian untuk dikirim kandidat tersebut kepada pengguna di lain waktu.
  • Jika berisi pesan, respons webhook akan ditambahkan ke antrean pesan. Jika perintah statis juga ada, perintah webhook akan digabungkan ke antrean perintah terlebih dahulu, diikuti dengan perintah statis.
  • Jika respons webhook berisi transisi, hal itu akan melakukannya sekarang. Jika tidak, adegan terus berlanjut ke tahap pengisian slot.

Kondisi

Dengan kondisi, Anda dapat memeriksa data sesi, pengguna, atau slot agar kondisi benar. Misalnya, Anda dapat memeriksa apakah semua slot telah terisi dan menetapkannya sebagai kriteria untuk bertransisi ke scene lain untuk memproses slot.

  • Runtime Asisten mengevaluasi setiap kondisi sesuai urutan yang ditentukan. Kondisi pertama yang dievaluasi ke 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 selesai dan dapat memicu webhook atau menambahkan permintaan ke antrean perintah.

Setelah evaluasi kondisi, transisi scene tidak akan ditentukan oleh pengisian slot jika scene tidak ditentukan.

Pengisian slot

Tahap ini menambahkan perintah slot untuk satu slot yang tidak terisi dan 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 tambahan yang tidak terisi ditangani nanti saat loop eksekusi kembali ke tahap ini.
  • Slot aktif saat ini dapat memiliki perintah penanganan error yang menggantikan 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 memakai input pengguna.

Input

Runtime Asisten mencoba mencocokkan input dengan intent atau slot:

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

    • no_match_1
    • no_match_2
    • no_match_final

    Setiap tingkat tidak ada kecocokan (pengisian slot, scene, dan global) dapat memicu peristiwa webhook. Secara default, percakapan yang terakhir dan tidak ada kecocokan akan mengakhiri percakapan.

Transition

Transisi dapat terjadi dalam tahapan berikut:

  • Kondisi - Anda dapat beralih ke scene lain berdasarkan kondisi yang ditentukan. Kondisi umum yang harus diperiksa adalah pengisian slot yang lengkap.
  • Input (pencocokan intent pengguna) - Jika intent cocok, dapat memicu transisi ke scene lain.
  • Input (pencocokan intent sistem) - Anda dapat memicu webhook selama peristiwa pencocokan intent sistem. Jika tidak ada kecocokan dan tidak ada peristiwa input, scene secara default akan bertransisi ke scene End percakapan setelah tiga kejadian.

Scene sistem

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

Daftar berikut menjelaskan scene sistem yang didukung dan cara menggunakannya:

  • Mengakhiri percakapan - Menutup mikrofon dan mengakhiri percakapan dengan pengguna. Asisten mengambil kembali kontrol pengalaman pengguna setelah scene ini dieksekusi.
  • Penautan akun - Memandu pengguna melalui alur penautan akun dan memberikan Tindakan 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 Tindakan Anda ke update harian pengguna. Lihat dokumentasi update harian untuk informasi selengkapnya tentang cara menggunakan scene ini.
  • Notifikasi - Memandu pengguna melalui alur konfirmasi untuk menerima notifikasi dari Action Anda. Lihat dokumentasi notifikasi push untuk informasi selengkapnya tentang cara menggunakan scene ini.