Pengendali status

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

Istilah Definisi
Persyaratan pengendali Berikut adalah persyaratan yang harus dipenuhi agar pengendali dapat memberikan efek pada sesi. Pengendali dikatakan dipanggil saat 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 akan 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 Pemroses 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 pengendali terpenuhi, pengendali akan lulus evaluasi.
3. Call Jika berada dalam cakupan dan lulus evaluasi, pengendali 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
Kapan 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 mengaktifkan webhook dipanggil untuk respons dinamis

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

Aturan cakupan 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, halaman tersebut hanya akan berada dalam cakupan jika memiliki persyaratan intent.
  • Rute yang diterapkan ke halaman saat ini berada dalam cakupan.
  • Pengendali peristiwa yang diterapkan ke alur aktif berada dalam cakupan.
  • Pengendali peristiwa yang diterapkan ke halaman saat ini berada dalam cakupan.
  • Pengendali peristiwa yang diterapkan ke parameter formulir yang saat ini dicoba diisi oleh agen berada dalam cakupan.

Rute

Rute memiliki dua persyaratan, dan satu atau keduanya harus disediakan. Jika kedua persyaratan disediakan, keduanya harus terpenuhi untuk memanggil rute:

Istilah Definisi
Persyaratan intent Intent yang harus dicocokkan dengan input pengguna akhir untuk giliran percakapan saat ini. Jika memiliki persyaratan intent, rute disebut rute intent.
Persyaratan kondisi Kondisi yang harus dipenuhi. Jika memiliki persyaratan kondisi, rute 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
Jika input pengguna akhir cocok dengan intent, kecocokan tersebut akan memicu respons fulfillment statis.
Jika input pengguna akhir cocok dengan intent, kecocokan tersebut akan memicu fulfillment yang mengaktifkan webhook untuk respons dinamis.
Saat input pengguna akhir telah memberikan parameter formulir akhir yang diperlukan, 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 akan digunakan. Intent yang digunakan tidak dapat dicocokkan lagi, kecuali jika input pengguna akhir baru memicu pencocokan intent baru. Namun, Anda dapat menyebarkan kecocokan intent dari satu alur ke alur lain 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 tersebut dipanggil.

Memperluas intent berguna untuk:

X Item
Mengubah halaman saat ini ke halaman tertentu dalam 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 membuat agen, Anda mungkin mendapati bahwa banyak halaman memiliki kumpulan rute yang sama. Agar rute dapat digunakan kembali, Anda dapat menentukan grup rute. Anda dapat membuat resource grup ini yang 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 banyak pekerjaan duplikat. Sebagai gantinya, Anda dapat menentukan grup rute satu kali, dan menambahkan referensi ke grup di semua halaman yang relevan.

Grup rute tingkat flow

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

Grup rute tingkat agen

Grup rute tingkat agen adalah resource grup rute yang dibuat dengan agen sebagai induk. Fungsi ini dapat digunakan kembali dalam seluruh agen, tetapi tidak mengizinkan rute yang bertransisi ke halaman non-simbolik 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
Pengendali 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 pengeditan rute akan terbuka.
  4. Berikan kolom rute.
  5. Klik Save.

Untuk mengurutkan 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 pengeditan rute akan terbuka.
  4. Berikan kolom rute.
  5. Klik Save.

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

Pengendali 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 alur (pengendali peristiwa tingkat alur), 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 tidak cocok akan memberikan respons fulfillment statis tertentu.
Timer berakhir masa berlakunya di sistem Anda, dan Anda ingin memberikan informasi pengingat kepada pengguna akhir dengan respons fulfillment statis tertentu.

Pengendali peristiwa tingkat flow

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

X Item
Pengendali dengan persyaratan peristiwa dalam cakupan untuk halaman awal alur.
Pengendali 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 Pemroses peristiwa.
  3. Panel pengendali peristiwa akan terbuka.
  4. Berikan kolom pengendali peristiwa.
  5. Klik Save.

Untuk menghapus pengendali peristiwa tingkat alur dari konsol:

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

Pengendali peristiwa tingkat halaman

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

X Item
Pengendali 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 Pemroses peristiwa, klik Tambahkan pengendali status, pilih Pemroses peristiwa, lalu klik Terapkan.
  3. Klik tombol tambahkan di judul Pemroses peristiwa.
  4. Panel pengendali peristiwa akan terbuka.
  5. Berikan kolom pengendali peristiwa.
  6. Klik Save.

Untuk menghapus pengendali peristiwa tingkat halaman dari konsol:

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

Pengendali peristiwa tingkat parameter

Pemroses peristiwa tingkat parameter adalah pemroses peristiwa yang diterapkan ke parameter formulir. Fungsi ini juga dikenal sebagai pengendali perintah ulang. 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 Pengendali peristiwa permintaan ulang, lalu klik Tambahkan pengendali peristiwa.
  5. Panel pengendali peristiwa akan terbuka.
  6. Berikan kolom pengendali peristiwa.
  7. Klik Save.

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 Pengendali peristiwa permintaan ulang.
  5. Arahkan kursor mouse ke pengendali peristiwa, lalu klik tombol hapus .

Peristiwa bawaan

Peristiwa berikut sudah terintegrasi dan dipanggil oleh Agen Percakapan (Dialogflow CX). Beberapa peristiwa dibatasi untuk tingkat tertentu.

Nama peristiwa
Tingkat flow Tingkat halaman Tingkat parameter Dipanggil saat
sys.no-match-default
  • Untuk level flow atau halaman: input pengguna akhir tidak cocok dengan intent apa pun untuk pengendali yang berada dalam cakupan.
  • Untuk tingkat 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:
  • Agen Percakapan (Dialogflow CX) menerima input teks kosong dari pengguna akhir.
  • Agen Percakapan (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 validasi parameter dengan menetapkan WebhookResponse.pageInfo.formInfo.parameterInfo.state ke INVALID.
sys.long-utterance Input pengguna akhir melebihi panjang maksimum yang diizinkan (256 karakter) yang dicocokkan oleh intent non-generatif atau parameter. Jika tidak diberikan, Agen Percakapan (Dialogflow CX) akan memperlakukan ucapan pengguna yang panjang 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 terperinci (misalnya webhook.error.timeout) yang cocok dengan kode error webhook, 2) jika tidak ada target transisi yang ditetapkan di rute asli yang memanggil fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.timeout Waktu tunggu panggilan webhook habis. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di 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 di 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 di rute asli yang memanggil fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya.
webhook.error.unavailable Webhook menampilkan 503 Layanan Tidak Tersedia. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di 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 di 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 Akhiri Alur Dengan Pembatalan, lihat target transisi simbolis END_FLOW_WITH_CANCELLATION.
flow-failed Alur ini tidak dapat menyelesaikan tugas yang diberikan. Peristiwa ini dipicu oleh halaman Akhiri Alur dengan Kegagalan, 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 Akhiri Alur dengan Eskalasi Manusia, 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 tertentu telah berlalu, inventaris yang tersedia telah berubah selama percakapan, dan sebagainya.

Peristiwa hanya diidentifikasi berdasarkan namanya. 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 berlanjut. 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 diam-diam.
    • Jika pengendali peristiwa berada dalam cakupan peristiwa, penangan peristiwa tersebut akan dimulai dan evaluasi daftar pengendali akan berakhir.
    • Jika tidak ada pengendali peristiwa dalam cakupan untuk peristiwa tersebut, webhook akan gagal secara otomatis.
  6. Jika persyaratan intent terpenuhi, intent akan digunakan, sehingga hanya pengendali rute pertama yang ditemukan untuk intent yang dapat dipanggil (Lihat penyebaran intent untuk pengecualian).
  7. Jika persyaratan kondisi terpenuhi, kondisi tidak akan digunakan, sehingga beberapa rute dengan kondisi dapat dipanggil.
  8. Jika persyaratan peristiwa terpenuhi, peristiwa akan digunakan, sehingga hanya pengendali peristiwa pertama yang ditemukan untuk peristiwa yang dapat dipanggil.
  9. Stack panggilan pengendali dapat memengaruhi urutan evaluasi.

Ada tiga fase dalam evaluasi:

  1. Rute yang memiliki persyaratan intent dievaluasi dalam urutan ini:
    1. Tingkat halaman: Setiap rute 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: Setiap rute 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 diterapkan ke alur aktif, dalam urutan yang diberikan.
  3. Pengendali peristiwa dievaluasi dalam urutan ini:
    1. Tingkat parameter: Pemroses peristiwa yang diterapkan ke parameter formulir halaman saat ini yang saat ini dicoba diisi oleh agen (pemroses perintah ulang), dalam urutan yang diberikan.
    2. Tingkat halaman: Pemroses peristiwa yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
    3. Tingkat alur: Pemroses peristiwa yang diterapkan ke alur aktif, dalam urutan yang disediakan.

Target transisi simbolis

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

Target transisi simbolis
Deskripsi
START_PAGE Bertransisi ke halaman awal alur aktif yang bernama sama.
END_FLOW Akhiri alur yang saat ini aktif dan transisi kembali ke halaman yang menyebabkan transisi ke alur saat ini. Lihat juga Batas stack panggilan pengendali dan stack alur.
END_FLOW_WITH_CANCELLATION Akhiri alur yang saat ini aktif dan transisi 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 pengendali dan stack alur.
END_FLOW_WITH_FAILURE Akhiri alur yang saat ini aktif dan transisi 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 pengendali dan stack alur.
END_FLOW_WITH_HUMAN_ESCALATION Akhiri alur yang saat ini aktif dan transisi 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 pengendali dan stack alur.
END_SESSION Hapus sesi saat ini dan beralih ke halaman khusus bernama END_SESSION. Input pengguna berikutnya akan memulai ulang sesi di halaman awal Alur Mulai Default.
PREVIOUS_PAGE Transisi ke halaman sebelumnya yang menyebabkan transisi ke halaman saat ini. Status halaman dari halaman sebelumnya akan dipulihkan setelah transisi.
CURRENT_PAGE Lakukan transisi ulang ke halaman saat ini. Hal ini dapat berguna jika Anda ingin agen mengulangi sesuatu.

Batas stack panggilan pengendali dan stack alur

Saat sesi bertransisi dari alur ke alur dengan target transisi tertentu, setiap alur akan didorong ke stack alur.

Stack panggilan pengendali

Saat sesi bertransisi 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 kembali dengan status yang dipertahankan.
  6. Evaluasi pengendali di halaman P berlanjut dari status yang dipertahankannya, sehingga H3 dievaluasi.

Batas stack alur

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

Jika stack alur kosong, transisi END_FLOW akan mengakhiri sesi.

Menetapkan kondisi

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

  • Cocok dengan SETIDAKNYA SATU aturan (ATAU)
  • Cocokkan SETIAP aturan (DAN)
  • Menyesuaikan ekspresi

Untuk memudahkan, Anda dapat menggunakan opsi AND/OR untuk membuat kondisi sederhana atau gabungan untuk nilai parameter.

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 setelan kondisi kustom