Pengendali status

Handler status, atau cukup disebut handler, digunakan untuk mengontrol percakapan dengan membuat respons bagi pengguna akhir dan/atau dengan mentransisikan halaman saat ini. Untuk setiap giliran percakapan, pengendali dievaluasi dan dapat memengaruhi sesi. Handler memiliki tiga jenis data umum:

Istilah Definisi
Persyaratan pengendali Berikut adalah persyaratan yang harus dipenuhi agar pengendali dapat memengaruhi sesi. Pengendali dikatakan dipanggil jika memenuhi persyaratannya dan memengaruhi sesi dengan cara tertentu.
Fulfillment pengendali Jika pengendali dipanggil, fulfillment opsional akan digunakan untuk membuat respons bagi pengguna akhir. Respons ini ditentukan dalam data agen statis atau diambil secara dinamis dari layanan webhook Anda.
Target transisi pengendali Jika pengendali dipanggil, target transisi opsional digunakan untuk mengubah halaman saat ini. Halaman berikutnya hanya dapat berupa halaman awal alur atau halaman dalam alur yang saat ini aktif.

Ada dua jenis pengendali status dengan persyaratan pengendali yang berbeda:

Istilah Definisi
Rute Rute dipanggil saat input pengguna akhir cocok dengan intent dan/atau beberapa kondisi pada status sesi terpenuhi. Rute dengan persyaratan intent juga disebut rute intent. Rute yang hanya memiliki persyaratan kondisi juga disebut rute kondisi.
Pengendali peristiwa Pengendali peristiwa dipanggil saat peristiwa dipanggil. Beberapa peristiwa bawaan dipicu saat input pengguna akhir yang tidak terduga diterima, atau saat terjadi error webhook. Anda juga dapat menentukan peristiwa kustom yang Anda panggil saat terjadi sesuatu di luar percakapan.

Ada tiga langkah untuk memproses pengendali status:

Istilah Definisi
1. Cakupan Pengendali harus berada dalam cakupan agar dapat memengaruhi sesi. Cakupan ditentukan oleh apakah pengendali diterapkan ke alur, halaman, atau parameter formulir; dan apakah alur terkait aktif, halaman terkait aktif, atau agen saat ini mencoba mengisi parameter formulir terkait.
2. Evaluasi Setiap pengendali dalam cakupan dievaluasi secara berurutan. Jika persyaratan handler terpenuhi, handler tersebut akan lulus evaluasi.
3. Telepon Jika handler berada dalam cakupan dan lulus evaluasi, handler tersebut akan dipanggil. Semua fulfillment terkait akan dipanggil, dan semua target transisi terkait akan diterapkan ke sesi.

Cakupan

Agar dapat dievaluasi, pengendali harus berada dalam cakupan. Cakupan pengendali adalah alat penting dan canggih yang membantu Anda mengontrol percakapan. Dengan mengontrol cakupan pengendali, Anda dapat mengontrol:

X Item
Saat intent dapat dicocokkan
Kapan kondisi harus diperiksa
Kapan peristiwa tertentu dapat ditangani
Kapan transisi halaman dapat terjadi
Saat respons fulfillment statis diberikan
Saat fulfillment yang mendukung webhook dipanggil untuk respons dinamis

Cakupan ditentukan oleh apakah pengendali diterapkan ke alur, halaman, atau parameter formulir; dan apakah alur terkait aktif, halaman terkait aktif, atau agen saat ini mencoba mengisi parameter formulir terkait.

Aturan pencakupan yang mendetail adalah sebagai berikut:

  • Rute yang diterapkan ke alur aktif:
    • Jika halaman saat ini adalah halaman awal alur, halaman tersebut termasuk dalam cakupan.
    • Jika halaman saat ini bukan halaman awal alur, rute hanya termasuk dalam cakupan jika memiliki persyaratan intent.
  • Rute yang diterapkan ke halaman saat ini termasuk dalam cakupan.
  • Pengendali peristiwa yang diterapkan ke alur aktif termasuk dalam cakupan.
  • Handler peristiwa yang diterapkan ke halaman saat ini termasuk dalam cakupan.
  • Handler peristiwa yang diterapkan ke parameter formulir yang saat ini sedang diisi oleh agen termasuk dalam cakupan.

Rute

Rute memiliki dua persyaratan, dan salah satu atau keduanya harus diberikan. Jika kedua persyaratan diberikan, keduanya harus dipenuhi untuk memanggil rute:

Istilah Definisi
Persyaratan intent Intent yang harus dicocokkan dengan input pengguna akhir untuk giliran percakapan saat ini. Jika rute memiliki persyaratan intent, rute tersebut disebut rute intent.
Persyaratan kondisi Kondisi yang harus dipenuhi. Jika rute memiliki persyaratan kondisi, rute tersebut disebut rute kondisi.

Anda dapat menerapkan rute ke alur (rute tingkat alur) dan halaman (rute tingkat halaman). Misalnya, Anda dapat menggunakan rute dalam situasi berikut:

X Item
Saat input pengguna akhir cocok dengan intent, kecocokan tersebut akan memicu respons fulfillment statis.
Saat input pengguna akhir cocok dengan intent, kecocokan tersebut akan memicu fulfillment yang diaktifkan webhook untuk respons dinamis.
Saat input pengguna akhir telah memberikan parameter formulir yang diperlukan terakhir, pemeriksaan kondisi akan memicu transisi sesi ke halaman lain.
Saat input pengguna akhir telah memberikan parameter formulir tertentu, pemeriksaan kondisi akan memicu respons fulfillment statis.
Pemeriksaan kondisi yang ditetapkan ke true yang memaksa transisi halaman.

Penyebaran intent

Biasanya, saat rute dipanggil karena intent yang cocok, intent tersebut akan digunakan. Intent yang digunakan tidak dapat dicocokkan lagi, kecuali jika input pengguna akhir baru memicu pencocokan intent baru. Namun, pencocokan intent dapat disebarkan dari satu alur ke alur lainnya dalam skenario berikut:

  • Rute di flow F1 memiliki intent I1 sebagai persyaratan dan flow F2 sebagai target transisi.
  • Flow F2 memiliki rute yang juga memiliki intent I1 sebagai persyaratan.

Dalam hal ini, saat rute di flow F1 dipanggil, intent I1 dicocokkan dua kali untuk satu input pengguna akhir, dan kedua rute dipanggil.

Menyebarkan intent berguna untuk:

X Item
Mengubah halaman saat ini ke halaman tertentu di alur lain (rute alur target transisi memiliki halaman target transisi tertentu).
Buat pesan entri untuk halaman awal alur (rute alur target transisi memiliki fulfillment).

Grup rute

Saat membangun agen, Anda mungkin mendapati bahwa banyak halaman memiliki serangkaian rute yang sama. Agar rute dapat digunakan kembali, Anda dapat menentukan grup rute. Anda dapat membuat resource grup ini dapat digunakan kembali dalam alur atau seluruh agen.

Misalnya, Anda mungkin ingin alur Anda menangani input pengguna akhir seperti "Saya ingin menambahkan topping ke pizza saya" dan "Saya ingin mengubah ukuran minuman saya". Input ini harus ditangani saat salah satu dari beberapa halaman alur aktif. Anda dapat menentukan dua rute dengan intent untuk menangani input ini untuk semua halaman yang relevan, tetapi ini adalah pekerjaan yang banyak duplikatnya. Sebagai gantinya, Anda dapat menentukan grup rute sekali, dan menambahkan referensi ke grup tersebut di semua halaman yang relevan.

Grup rute tingkat alur

Grup rute tingkat alur adalah resource grup rute yang dibuat dengan alur sebagai induk. Komponen ini dapat digunakan kembali dalam alur.

Grup rute tingkat agen

Grup rute tingkat agen adalah resource grup rute yang dibuat dengan agen sebagai induk. Halaman ini dapat digunakan kembali dalam seluruh agen, tetapi tidak mengizinkan rute yang bertransisi ke halaman non-simbolis sebagai target.

Rute tingkat flow

Rute tingkat alur adalah rute yang diterapkan ke alur dengan menambahkannya ke halaman awal alur. Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Handler dengan persyaratan intent atau kondisi dalam cakupan untuk halaman awal alur.
Pengendali dengan persyaratan intent dalam cakupan untuk semua halaman dalam alur.

Untuk membuat rute tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik tombol tambahkan di judul Routes.
  3. Panel edit rute akan terbuka.
  4. Berikan kolom rute.
  5. Klik Simpan.

Untuk menyusun ulang rute tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik judul Routes.
  3. Panel daftar rute akan terbuka.
  4. Tarik rute dalam urutan yang diinginkan. Atau, klik menu opsi , lalu pilih Pindahkan Ke.

Untuk menghapus rute tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik judul Routes.
  3. Panel daftar rute akan terbuka.
  4. Klik menu opsi .
  5. Pilih Hapus.

Rute tingkat halaman

Rute tingkat halaman adalah rute yang diterapkan ke halaman. Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Pengendali dengan persyaratan intent atau kondisi dalam cakupan saat halaman tertentu aktif.

Untuk membuat rute tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik tombol tambahkan di judul Routes.
  3. Panel edit rute akan terbuka.
  4. Berikan kolom rute.
  5. Klik Simpan.

Untuk mengurutkan ulang rute tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik judul Routes.
  3. Panel daftar rute akan terbuka.
  4. Tarik rute dalam urutan yang diinginkan. Atau, klik menu opsi , lalu pilih Pindahkan Ke.

Untuk menghapus rute tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik judul Routes.
  3. Panel daftar rute akan terbuka.
  4. Klik menu opsi .
  5. Pilih Hapus.

Pengendali peristiwa

Handler peristiwa memiliki satu persyaratan agar dapat dipanggil:

Istilah Definisi
Persyaratan peristiwa Peristiwa yang harus dipanggil. Peristiwa diidentifikasi berdasarkan namanya. Beberapa peristiwa bawaan dipanggil saat input pengguna akhir yang tidak terduga diterima, atau saat terjadi error webhook. Anda juga dapat menentukan peristiwa kustom yang Anda panggil saat terjadi sesuatu di luar percakapan.

Anda dapat menerapkan pengendali peristiwa ke flow (pengendali peristiwa tingkat flow), halaman (pengendali peristiwa tingkat halaman), dan parameter (pengendali peristiwa tingkat parameter). Misalnya, Anda dapat menggunakan pengendali peristiwa dalam situasi berikut:

X Item
Jika input pengguna akhir tidak cocok dengan intent apa pun, pengendali peristiwa tanpa kecocokan akan memberikan respons fulfillment statis tertentu.
Timer berakhir di sistem Anda, dan Anda ingin memberikan informasi pengingat kepada pengguna akhir dengan respons fulfillment statis tertentu.

Pengendali peristiwa tingkat alur

Pengendali peristiwa tingkat alur adalah pengendali peristiwa yang diterapkan ke alur. Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Handler dengan persyaratan peristiwa dalam cakupan untuk halaman awal alur.
Handler dengan persyaratan peristiwa dalam cakupan untuk semua halaman dalam alur.
Menangani input pengguna akhir yang tidak terduga, yang digunakan bersama oleh semua halaman dalam alur.
Menangani error webhook, yang dibagikan oleh semua halaman dalam alur.
Menangani peristiwa kustom yang dipanggil oleh sistem Anda, yang dibagikan oleh semua halaman dalam alur.

Setiap alur memiliki pengendali peristiwa untuk peristiwa bawaan no-match dan no-input. Pengendali peristiwa ini dibuat secara otomatis saat Anda membuat alur, dan tidak dapat dihapus.

Untuk membuat pengendali peristiwa tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik tombol tambahkan di judul Event handlers.
  3. Panel pengendali peristiwa akan terbuka.
  4. Berikan kolom pengendali peristiwa.
  5. Klik Simpan.

Untuk menghapus pengendali peristiwa tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik judul Event handlers.
  3. Panel daftar pengendali peristiwa akan terbuka.
  4. Arahkan kursor mouse ke pengendali peristiwa, lalu klik tombol hapus .

Pengendali peristiwa tingkat halaman

Handler peristiwa tingkat halaman adalah handler peristiwa yang diterapkan ke halaman. Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Handler dengan persyaratan peristiwa dalam cakupan saat halaman tertentu aktif.
Menangani input pengguna akhir yang tidak terduga, khusus untuk halaman.
Menangani error webhook, khusus untuk halaman.
Menangani peristiwa kustom yang dipanggil oleh sistem Anda, khusus untuk halaman.

Untuk membuat pengendali peristiwa tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Jika tidak ada judul Event handlers, klik Add state handler, pilih Event handlers, lalu klik Apply.
  3. Klik tombol tambahkan di judul Event handlers.
  4. Panel pengendali peristiwa akan terbuka.
  5. Berikan kolom pengendali peristiwa.
  6. Klik Simpan.

Untuk menghapus pengendali peristiwa tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik judul Event handlers.
  3. Panel daftar pengendali peristiwa akan terbuka.
  4. Arahkan kursor mouse ke pengendali peristiwa, lalu klik tombol hapus .

Pengendali peristiwa tingkat parameter

Pengendali peristiwa tingkat parameter adalah pengendali peristiwa yang diterapkan ke parameter formulir. Handler ini juga dikenal sebagai pengelola reprompt. Pengendali peristiwa ini tidak mengizinkan peristiwa kustom, karena secara khusus ditujukan untuk menangani input pengguna akhir yang tidak valid selama pengisian formulir.

Jenis pengendali ini memiliki kasus penggunaan berikut:

X Item
Pengguna akhir tidak memberikan input yang valid saat diminta untuk mengisi parameter formulir.

Untuk membuat pengendali peristiwa tingkat parameter dari konsol:

  1. Buka halaman yang berisi parameter formulir.
  2. Klik parameter.
  3. Panel parameter akan terbuka.
  4. Scroll ke bawah ke bagian Reprompt event handlers, lalu klik Add event handler.
  5. Panel pengendali peristiwa akan terbuka.
  6. Berikan kolom pengendali peristiwa.
  7. Klik Simpan.

Untuk menghapus pengendali peristiwa tingkat parameter dari konsol:

  1. Buka halaman yang berisi parameter formulir.
  2. Klik parameter.
  3. Panel parameter akan terbuka.
  4. Scroll ke bawah ke bagian Reprompt event handlers.
  5. Arahkan kursor mouse ke pengendali peristiwa, lalu klik tombol hapus .

Peristiwa bawaan

Peristiwa berikut adalah peristiwa bawaan dan dipanggil oleh Dialogflow CX. Beberapa acara dibatasi untuk level tertentu.

Nama peristiwa
Tingkat flow Tingkat halaman Tingkat parameter Dipanggil saat
sys.no-match-default ✔ ✔ ✔
  • Untuk level alur atau halaman: input pengguna akhir tidak cocok dengan intent apa pun untuk pengendali yang berada dalam cakupan.
  • Untuk level parameter: input pengguna akhir tidak memenuhi parameter formulir.
sys.no-match-[1-6] ✔ ✔ ✔ Jika Anda menyediakan pengendali untuk salah satu peristiwa yang diurutkan secara numerik ini, pengendali tersebut akan dipanggil, bukan sys.no-match-default, dan secara berurutan: sys.no-match-1, sys.no-match-2, ...
sys.no-input-default ✔ ✔ ✔ Input pengguna akhir tidak diterima. Hal ini dapat dipanggil saat:
  • Dialogflow CX menerima input teks pengguna akhir yang kosong.
  • Dialogflow CX menerima input audio pengguna akhir yang kosong atau input tidak berisi ucapan yang dikenali.
  • Waktu tunggu tanpa ucapan terjadi sebelum input audio pengguna akhir berisi ucapan yang dikenali.
sys.no-input-[1-6] ✔ ✔ ✔ Jika Anda menyediakan pengendali untuk salah satu peristiwa yang diurutkan secara numerik ini, pengendali tersebut akan dipanggil, bukan sys.no-input-default, dan secara berurutan: sys.no-input-1, sys.no-input-2, ...
sys.invalid-parameter ✔ Dipanggil saat respons webhook membatalkan parameter dengan menetapkan WebhookResponse.pageInfo.formInfo.parameterInfo.state ke INVALID.
sys.long-utterance ✔ ✔ ✔ Input pengguna akhir melebihi panjang maksimum yang diizinkan (256 karakter) yang cocok dengan intent non-generatif atau parameter. Jika tidak diberikan, Dialogflow CX akan memperlakukan ucapan panjang pengguna sebagai no-match. Untuk input audio streaming, peristiwa ini hanya dipicu setelah klien menutup streaming audio.
webhook.error ✔ ✔ Panggilan webhook menampilkan error. Peristiwa ini hanya dipanggil: 1) jika tidak ada pengendali peristiwa webhook yang mendetail (misalnya webhook.error.timeout) yang cocok dengan kode error webhook, 2) jika tidak ada target transisi yang ditetapkan dalam rute asli yang memanggil fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.timeout ✔ ✔ Waktu panggilan webhook habis. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan dalam rute asli yang memanggil fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.bad-request ✔ ✔ Webhook menampilkan 400 Bad Request. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan dalam rute asli yang memanggil fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.rejected ✔ ✔ Webhook menampilkan 401 Unauthorized atau 403 Forbidden. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan dalam rute asli yang memanggil fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.unavailable ✔ ✔ Webhook menampilkan 503 Service Unavailable. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan dalam rute asli yang memanggil fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.not-found ✔ ✔ Panggilan webhook gagal karena URL webhook tidak dapat dijangkau. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan dalam rute asli yang memanggil fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
flow-cancelled ✔ ✔ Pengguna akhir meminta pembatalan alur. Peristiwa ini dipicu oleh halaman End Flow With Cancellation, lihat END_FLOW_WITH_CANCELLATION target transisi simbolis.
flow-failed ✔ ✔ Alur ini tidak dapat menyelesaikan tugas yang diberikan. Peristiwa ini dipicu oleh halaman End Flow With Failure, lihat target transisi simbolis END_FLOW_WITH_FAILURE.
flow-failed-human-escalation ✔ ✔ Pengguna akhir meminta untuk berbicara dengan agen manusia. Peristiwa ini dipicu oleh halaman End Flow With Human Escalation, lihat target transisi simbolis END_FLOW_WITH_HUMAN_ESCALATION.

Peristiwa kustom

Anda dapat membuat peristiwa kustom dan pengendali peristiwa. Peristiwa kustom digunakan untuk menangani hal-hal yang terjadi di luar percakapan dengan pengguna akhir. Misalnya, pengguna akhir mengklik tombol, waktu dengan durasi tertentu telah berlalu, inventaris yang tersedia telah berubah selama percakapan, dan sebagainya.

Peristiwa diidentifikasi berdasarkan nama. Anda harus menghindari penggunaan nama peristiwa yang diawali dengan sys. atau webhook. untuk menghindari konflik dengan peristiwa bawaan.

Untuk memanggil peristiwa dengan API, lihat kolom queryInput.event dari metode detectIntent untuk jenis Session.

Pilih protokol dan versi untuk Referensi sesi:

Protokol V3 V3beta1
REST Resource sesi Resource sesi
RPC Antarmuka sesi Antarmuka sesi
C++ SessionsClient Tidak tersedia
C# SessionsClient Tidak tersedia
Go SessionsClient Tidak tersedia
Java SessionsClient SessionsClient
Node.js SessionsClient SessionsClient
PHP Tidak tersedia Tidak tersedia
Python SessionsClient SessionsClient
Ruby Tidak tersedia Tidak tersedia

Urutan evaluasi

Pengendali dievaluasi dalam urutan tertentu. Aturan umum berikut berlaku:

  1. Hanya pengendali dalam cakupan yang dievaluasi.
  2. Hanya pengendali yang persyaratannya terpenuhi yang dapat dipanggil.
  3. Jika pengendali tanpa target transisi dipanggil, evaluasi daftar pengendali akan dilanjutkan. Karena aturan ini, beberapa fulfillment dapat menambahkan beberapa pesan ke antrean respons.
  4. Jika pengendali dengan target transisi dipanggil, evaluasi daftar pengendali akan berakhir.
  5. Jika pengendali dengan fulfillment dipanggil, dan fulfillment menghasilkan error webhook:
    • Jika pengendali memiliki target transisi yang ditentukan, webhook akan gagal secara otomatis.
    • Jika handler peristiwa berada dalam cakupan peristiwa, handler tersebut akan menangani peristiwa dan evaluasi daftar handler akan berakhir.
    • Jika tidak ada pengendali peristiwa yang berada dalam cakupan peristiwa, webhook akan gagal tanpa ada pemberitahuan.
  6. Jika persyaratan intent terpenuhi, intent akan digunakan, sehingga hanya pengendali rute pertama yang ditemukan untuk intent tersebut yang dapat dipanggil (Lihat penyebaran intent untuk pengecualian).
  7. Jika persyaratan kondisi terpenuhi, kondisi tidak digunakan, sehingga beberapa rute dengan kondisi tersebut dapat dipanggil.
  8. Saat persyaratan peristiwa terpenuhi, peristiwa akan digunakan, sehingga hanya pengendali peristiwa pertama yang ditemukan untuk peristiwa tersebut yang dapat dipanggil.
  9. Stack panggilan pengendali dapat memengaruhi urutan evaluasi.

Ada tiga fase evaluasi:

  1. Rute yang memiliki persyaratan intent dievaluasi dalam urutan berikut:
    1. Tingkat halaman: Rute individual yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    2. Grup tingkat halaman: Grup rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    3. Tingkat alur: Rute yang diterapkan ke alur aktif, dalam urutan yang diberikan.
    4. Grup tingkat alur: Grup rute yang diterapkan ke alur aktif, dalam urutan yang diberikan.
  2. Rute yang hanya memiliki persyaratan kondisi dievaluasi dalam urutan ini:
    1. Tingkat halaman: Rute individual yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    2. Grup tingkat halaman: Grup rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    3. Tingkat alur (Hanya jika halaman saat ini adalah halaman awal alur): Rute yang diterapkan ke alur aktif, dalam urutan yang diberikan.
    4. Grup tingkat alur (Hanya jika halaman saat ini adalah halaman awal alur): Grup rute yang diterapkan ke alur aktif, dalam urutan yang diberikan.
  3. Pengendali peristiwa dievaluasi dalam urutan berikut:
    1. Tingkat parameter: Handler peristiwa yang diterapkan ke parameter formulir halaman saat ini yang saat ini sedang dicoba diisi oleh agen (handler reprompt), dalam urutan yang diberikan.
    2. Tingkat halaman: Pengendali peristiwa yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    3. Tingkat alur: Pengendali peristiwa yang diterapkan ke alur aktif, dalam urutan yang diberikan.

Target transisi simbolis

Saat memasukkan target transisi untuk pengendali, Anda dapat memasukkan flow atau halaman tertentu, tetapi Anda juga dapat memasukkan target transisi simbolis:

Target transisi simbolis
Deskripsi
START_PAGE Transisi ke halaman awal alur aktif dengan nama yang sama.
END_FLOW Mengakhiri alur yang saat ini aktif dan beralih kembali ke halaman yang menyebabkan transisi ke alur saat ini. Lihat juga Batas stack panggilan dan stack alur pengendali.
END_FLOW_WITH_CANCELLATION Mengakhiri alur yang saat ini aktif dan beralih kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan peristiwa bawaan flow-cancelled. Lihat juga Batas stack panggilan dan stack alur pengendali.
END_FLOW_WITH_FAILURE Mengakhiri alur yang saat ini aktif dan beralih kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan peristiwa bawaan flow-failed. Lihat juga Batas stack panggilan dan stack alur pengendali.
END_FLOW_WITH_HUMAN_ESCALATION Mengakhiri alur yang saat ini aktif dan beralih kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan peristiwa bawaan flow-failed-human-escalation. Lihat juga Batas stack panggilan dan stack alur pengendali.
END_SESSION Hapus sesi saat ini dan beralih ke halaman khusus bernama END_SESSION. Input pengguna berikutnya akan memulai ulang sesi di halaman awal dari Default Start Flow.
PREVIOUS_PAGE Transisi ke halaman sebelumnya yang menyebabkan transisi ke halaman saat ini. Status halaman dari halaman sebelumnya akan dipulihkan setelah transisi.
CURRENT_PAGE Melakukan transisi ulang ke halaman saat ini. Hal ini dapat berguna jika Anda ingin agen mengulangi sesuatu.

Batas stack panggilan dan stack alur pengendali

Saat sesi beralih dari satu alur ke alur lain dengan target transisi tertentu, setiap alur akan didorong ke stack alur.

Stack panggilan pengendali

Saat sesi beralih ke END_FLOW, sesi akan kembali ke halaman panggilan yang menyebabkan transisi ke alur yang telah selesai. Dalam situasi ini, stack panggilan pengendali dipertahankan. Semua pengendali yang sebelumnya dievaluasi dari halaman panggilan akan dilewati, dan pengendali yang tersisa akan dievaluasi secara berurutan.

Contoh:

  1. Halaman P memiliki tiga pengendali dalam urutan ini: H1, H2, H3.
  2. H1 dievaluasi, tetapi tidak menyebabkan transisi.
  3. H2 dievaluasi, dan menyebabkan transisi ke alur F.
  4. Halaman dalam alur F bertransisi ke END_FLOW.
  5. Sesi kembali ke Halaman P, yang menjadi aktif lagi dengan status yang dipertahankan.
  6. Evaluasi pengendali di halaman P berlanjut dari status yang dipertahankan, sehingga H3 dievaluasi.

Batas stack alur

Batas stack alur maksimum adalah 25. Melebihi batas stack maksimum dapat menyebabkan flow dikeluarkan dari stack, sehingga menyebabkan perilaku yang tidak terduga saat menggunakan transisi END_FLOW. Untuk menghindari potensi masalah ini, minimalkan jumlah transisi flow-ke-flow sebelum transisi END_FLOW.

Jika stack alur kosong, transisi END_FLOW akan mengakhiri sesi.

Tetapkan kondisi

Untuk menetapkan kondisi dengan konsol, Anda memberikan aturan kondisi dengan salah satu dari tiga opsi logis:

  • Match AT LEAST ONE rule (OR)
  • Cocok dengan SETIAP aturan (DAN)
  • Sesuaikan ekspresi

Untuk memudahkan, Anda dapat menggunakan opsi DAN/ATAU untuk membuat kondisi sederhana atau gabungan untuk parameter value.

Anda dapat menggunakan opsi Sesuaikan ekspresi bentuk bebas untuk semua jenis kondisi, termasuk fungsi sistem dan konstanta boolean.

Misalnya, untuk menetapkan kondisi yang memiliki peluang 10% untuk lulus evaluasi, pilih opsi Customize expression dan masukkan $sys.func.rand() < 0.1 di kolom Condition:

Screenshot penetapan kondisi kustom