Pengendali status

Pengelola status, yang juga disebut pengelola, digunakan untuk mengontrol percakapan dengan membuat respons untuk pengguna akhir dan/atau dengan melakukan transisi halaman saat ini. Untuk setiap giliran percakapan, handler dievaluasi dan dapat memengaruhi sesi. Handler memiliki tiga jenis data umum:

Istilah Definisi
Persyaratan handler Berikut adalah persyaratan yang harus dipenuhi agar handler dapat memengaruhi sesi. Handler dikatakan dipanggil jika memenuhi persyaratannya dan memengaruhi sesi dengan cara tertentu.
Pemenuhan handler Jika handler dipanggil, fulfillment opsional digunakan untuk membuat respons bagi pengguna akhir. Respons ini ditentukan dalam data agen statis atau diambil secara dinamis dari layanan webhook Anda.
Target transisi handler Jika handler dipanggil, target transisi opsional digunakan untuk mengubah halaman saat ini. Halaman berikutnya hanya dapat berupa halaman awal alur atau halaman dalam alur yang sedang 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 dengan hanya persyaratan kondisi juga disebut rute kondisi.
Pengendali peristiwa Handler 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 Handler harus berada dalam cakupan agar dapat memengaruhi sesi. Cakupan ditentukan oleh apakah handler diterapkan ke alur, halaman, atau parameter formulir; dan oleh apakah alur terkait aktif, halaman terkait aktif, atau agen saat ini sedang mencoba mengisi parameter formulir terkait.
2. Evaluasi Setiap handler dalam cakupan dievaluasi secara berurutan. Jika persyaratan pengendali terpenuhi, pengendali tersebut akan lulus evaluasi.
3. Telepon Jika pengendali berada dalam cakupan dan lulus evaluasi, pengendali akan dipanggil. Pengiriman terkait dipanggil, dan target transisi terkait diterapkan ke sesi.

Cakupan

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

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

Cakupan ditentukan oleh apakah handler diterapkan ke parameter alur, halaman, atau formulir; dan oleh apakah alur terkait aktif, halaman terkait aktif, atau agen saat ini sedang 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, halaman tersebut hanya termasuk dalam cakupan jika memiliki persyaratan maksud.
  • 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.
  • Handler peristiwa yang diterapkan ke parameter formulir yang saat ini sedang diisi oleh agen berada 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 Maksud (intent) yang harus cocok 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
Jika input pengguna cocok dengan intent, kecocokan tersebut akan memicu respons pemenuhan statis.
Saat input pengguna cocok dengan intent, kecocokan tersebut akan memicu pemenuhan yang diaktifkan webhook untuk respons dinamis.
Jika 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 pemenuhan statis.
Pemeriksaan kondisi yang disetel ke true yang memaksakan transisi halaman.

Penyebaran intent

Biasanya, saat rute dipanggil karena maksud yang cocok, maksud tersebut akan dikonsumsi. Maksud yang sudah digunakan tidak dapat dicocokkan lagi, kecuali jika input pengguna akhir baru memicu pencocokan maksud baru. Namun, kecocokan intent dapat dipropagasi 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 dipanggil.

Menyebarkan 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 pemenuhan).

Grup rute

Saat membangun agen, Anda mungkin menemukan bahwa banyak halaman memiliki serangkaian rute yang sama. Untuk membuat 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 akan menghasilkan banyak pekerjaan yang berulang. 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. Objek ini dapat digunakan kembali dalam alur.

Grup rute tingkat agen

Grup rute tingkat agen adalah resource grup rute yang dibuat dengan agen sebagai induk. Elemen ini dapat digunakan kembali dalam seluruh agen, tetapi tidak mengizinkan rute yang bertransisi ke halaman simbolis non-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.
Handler dengan persyaratan maksud dalam cakupan untuk semua halaman dalam alur.

Untuk membuat rute tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik tombol tambahkan di heading Rute.
  3. Panel pengeditan rute akan terbuka.
  4. Menyediakan kolom rute.
  5. Klik Simpan.

Untuk menyusun ulang rute tingkat alur dari konsol:

  1. Buka halaman awal alur.
  2. Klik heading 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 heading 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
Handler 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 heading Rute.
  3. Panel pengeditan rute akan terbuka.
  4. Menyediakan kolom rute.
  5. Klik Simpan.

Untuk mengurutkan ulang rute tingkat halaman dari konsol:

  1. Buka halaman (bukan halaman awal alur).
  2. Klik heading 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 heading 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 acara event 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 dipanggil 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 maksud apa pun, pengendali peristiwa no-match akan memberikan respons pemenuhan statis tertentu.
Timer berakhir 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
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 dibagikan 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 no-match dan no-input peristiwa bawaan. Handler 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 heading Pengendali peristiwa.
  3. Panel handler 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 heading Event handlers.
  3. Panel daftar handler peristiwa akan terbuka.
  4. Arahkan kursor mouse ke atas 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
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 dipicu 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 heading Event handlers, klik Add state handler, pilih Event handlers, lalu klik Apply.
  3. Klik tombol tambahkan di heading Pengendali peristiwa.
  4. Panel handler 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 heading Event handlers.
  3. Panel daftar handler peristiwa akan terbuka.
  4. Arahkan kursor mouse ke atas pengendali peristiwa, lalu klik tombol hapus .

Pengendali peristiwa tingkat parameter

Pengendali peristiwa tingkat parameter adalah pengendali peristiwa yang diterapkan ke parameter formulir. Mereka juga dikenal sebagai reprompt handler. Handler 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 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 handler 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 atas pengendali peristiwa, lalu klik tombol hapus .

Peristiwa bawaan

Peristiwa berikut bersifat bawaan dan dipanggil oleh Dialogflow CX. Beberapa acara dibatasi untuk tingkat tertentu.

Nama peristiwa
Tingkat aliran Tingkat halaman Tingkat parameter Dipanggil saat
sys.no-match-default
  • Untuk tingkat flow atau halaman: input pengguna akhir tidak cocok dengan maksud apa pun untuk handler yang tercakup.
  • 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 dalam urutan: 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 kosong dari pengguna akhir.
  • 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 parameter atau maksud non-generatif. Jika tidak diberikan, Dialogflow CX akan memperlakukan ucapan panjang pengguna sebagai no-match. Untuk input audio streaming, peristiwa ini hanya dipicu setelah klien menutup aliran 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 pemenuhan 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 di rute asli yang memanggil pemenuhan 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 pemenuhan 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 pemenuhan 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 di rute asli yang memanggil pemenuhan 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 pemenuhan 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 END_FLOW_WITH_CANCELLATION target transisi simbolis.
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 ke Petugas, lihat END_FLOW_WITH_HUMAN_ESCALATION target transisi simbolis.

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 diidentifikasi berdasarkan nama. Anda sebaiknya tidak menggunakan 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

Handler dievaluasi dalam urutan tertentu. Aturan umum berikut berlaku:

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

Ada tiga fase evaluasi:

  1. Rute yang memiliki persyaratan maksud 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 diterapkan ke alur aktif, dalam urutan yang diberikan.
  2. Rute dengan hanya 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 diterapkan ke alur aktif, dalam urutan yang diberikan.
  3. Handler peristiwa dievaluasi dalam urutan ini:
    1. Tingkat parameter: Handler peristiwa yang diterapkan ke parameter formulir halaman saat ini yang saat ini sedang diisi oleh agen (handler permintaan ulang), sesuai urutan yang diberikan.
    2. Tingkat halaman: Handler 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 handler, Anda dapat memasukkan alur atau halaman tertentu, tetapi Anda juga dapat memasukkan target transisi simbolis:

Target transisi simbolis
Deskripsi
START_PAGE Beralih ke halaman awal alur aktif dengan nama yang sama.
END_FLOW Mengakhiri alur yang saat ini aktif dan bertransisi kembali ke halaman yang menyebabkan transisi ke alur saat ini. Lihat juga Stack panggilan handler dan batas stack alur.
END_FLOW_WITH_CANCELLATION Mengakhiri alur yang saat ini aktif dan bertransisi kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan flow-cancelled peristiwa bawaan. Lihat juga Stack panggilan handler dan batas stack alur.
END_FLOW_WITH_FAILURE Mengakhiri alur yang saat ini aktif dan bertransisi kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan flow-failed peristiwa bawaan. Lihat juga Stack panggilan handler dan batas stack alur.
END_FLOW_WITH_HUMAN_ESCALATION Mengakhiri alur yang saat ini aktif dan bertransisi kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan flow-failed-human-escalation peristiwa bawaan. Lihat juga Stack panggilan handler dan batas 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 Melakukan transisi ulang ke halaman saat ini. Tindakan ini dapat berguna jika Anda ingin agen mengulangi sesuatu.

Stack panggilan handler dan batas stack alur

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

Stack panggilan handler

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 handler dipertahankan. Semua handler yang sebelumnya dievaluasi dari halaman panggilan akan dilewati, dan handler 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 handler di halaman P berlanjut dari status yang dipertahankan, sehingga H3 dievaluasi.

Batas stack alur

Batas stack alur maksimum adalah 25. Melebihi batas tumpukan maksimum dapat menyebabkan alur dikeluarkan dari tumpukan, sehingga 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 memberikan aturan kondisi dengan salah satu dari tiga opsi logis:

  • Cocokkan 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 Sesuaikan ekspresi dan masukkan $sys.func.rand() < 0.1 di kolom Kondisi:

Screenshot cara menyetel kondisi kustom