Masa Berlaku | Definisi |
---|---|
Persyaratan pengendali | Ini adalah persyaratan yang harus dipenuhi agar pengendali dapat berpengaruh pada sesi. Pengendali dikatakan dipanggil jika telah 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 sedang aktif. |
Ada dua jenis pengendali status dengan persyaratan pengendali yang berbeda:
Masa Berlaku | Definisi |
---|---|
Rute | Rute dipanggil saat input pengguna akhir cocok dengan intent dan/atau kondisi tertentu 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 dipanggil ketika sesuatu terjadi di luar percakapan. |
Ada tiga langkah untuk memproses pengendali status:
Masa Berlaku | Definisi |
---|---|
1. Cakupan | Pengendali harus berada dalam cakupan agar dapat berpengaruh pada sesi. Cakupan ditentukan oleh apakah pengendali diterapkan ke alur, halaman, atau parameter formulir; dan berdasarkan apakah alur yang terkait aktif, halaman terkait aktif, atau agen saat ini mencoba mengisi parameter formulir yang terkait. |
2. Evaluasi | Setiap pengendali dalam cakupan dievaluasi secara berurutan. Jika persyaratan pengendali terpenuhi, pengendali akan lulus evaluasi. |
3. Panggilan Telepon | Jika pengendali berada dalam cakupan dan lulus evaluasi, pengendali akan dipanggil. Fulfillment yang terkait akan dipanggil, dan semua target transisi yang terkait akan diterapkan ke sesi tersebut. |
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 | |
Ketika 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 yang terkait aktif, halaman terkait aktif, atau agen sedang mencoba mengisi parameter formulir yang terkait.
Aturan pencakupan mendetail adalah sebagai berikut:
- Rute yang diterapkan ke alur aktif:
- Jika halaman saat ini adalah halaman awal alur, halaman tersebut akan termasuk dalam cakupan.
- Jika halaman saat ini bukan halaman awal alur, halaman tersebut hanya akan tercakup jika memiliki persyaratan intent.
- Rute yang diterapkan ke halaman saat ini termasuk 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 coba diisi oleh agen berada dalam cakupan.
Rute
Rute memiliki dua persyaratan, dan salah satu atau keduanya harus diberikan. Jika kedua persyaratan tersedia, keduanya harus dipenuhi untuk memanggil rute:
Masa Berlaku | Definisi |
---|---|
Persyaratan intent | Intent yang harus dicocokkan dengan input pengguna akhir untuk percakapan saat ini. Jika rute memiliki persyaratan intent, rute ini disebut rute intent. |
Persyaratan kondisi | Kondisi yang harus dipenuhi. Jika sebuah rute memiliki persyaratan kondisi, rute ini 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 harus memicu respons fulfillment statis. | |
Jika input pengguna akhir cocok dengan intent, kecocokan tersebut harus memicu fulfillment yang mengaktifkan webhook untuk respons dinamis. | |
Saat input pengguna akhir memberikan parameter formulir akhir yang diperlukan, pemeriksaan kondisi akan memicu transisi sesi ke halaman lain. | |
Saat input pengguna akhir memberikan parameter formulir tertentu, pemeriksaan kondisi akan memicu respons fulfillment statis. | |
Pemeriksaan kondisi yang ditetapkan ke true
yang memaksa transisi halaman. |
Propagasi intent
Biasanya, saat rute dipanggil karena intent yang cocok, intent akan consume. 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
memilikiintent I1
sebagai persyaratan danflow F2
sebagai target transisi. Flow F2
memiliki rute yang juga memilikiintent 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 akan dipanggil.
Menyebarkan intent berguna untuk:
X | Item |
---|---|
Ubah 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 menemukan bahwa banyak halaman memiliki serangkaian rute yang umum. Agar rute dapat digunakan kembali, Anda dapat menentukan grup rute. Anda dapat membuat resource grup ini yang dapat digunakan kembali baik di dalam flow maupun 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 jika salah satu dari beberapa halaman alur aktif. Anda dapat menentukan dua rute dengan intent guna menangani input ini untuk semua halaman yang relevan, tetapi ini adalah banyak pekerjaan duplikat. 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. Keduanya dapat digunakan kembali dalam alur.
Grup rute tingkat agen
Grup rute tingkat agen adalah resource grup rute yang dibuat dengan agen sebagai induk. API ini dapat digunakan kembali di seluruh agen, tetapi jangan izinkan rute yang bertransisi ke halaman non simbol sebagai target.
Rute tingkat alur
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:
- Buka halaman awal alur.
- Klik tombol tambahkan di judul Routes.
- Panel pengeditan rute akan terbuka.
- Berikan kolom rute.
- Klik Save.
Untuk menyusun ulang rute tingkat alur dari konsol:
- Buka halaman awal alur.
- Klik judul Routes.
- Panel daftar rute akan terbuka.
- Tarik rute sesuai urutan yang diinginkan. Atau, klik menu opsi , lalu pilih Pindahkan Ke.
Untuk menghapus rute tingkat alur dari konsol:
- Buka halaman awal alur.
- Klik judul Routes.
- Panel daftar rute akan terbuka.
- Klik menu opsi .
- 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 console:
- Buka halaman (bukan halaman awal alur).
- Klik tombol tambahkan di judul Routes.
- Panel pengeditan rute akan terbuka.
- Berikan kolom rute.
- Klik Save.
Untuk menyusun ulang rute tingkat halaman dari konsol:
- Buka halaman (bukan halaman awal alur).
- Klik judul Routes.
- Panel daftar rute akan terbuka.
- Tarik rute sesuai urutan yang diinginkan. Atau, klik menu opsi , lalu pilih Pindahkan Ke.
Untuk menghapus rute tingkat halaman dari konsol:
- Buka halaman (bukan halaman awal alur).
- Klik judul Routes.
- Panel daftar rute akan terbuka.
- Klik menu opsi .
- Pilih Hapus.
Pengendali peristiwa
Pengendali peristiwa memiliki satu persyaratan agar dapat dipanggil:
Masa Berlaku | 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 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 intent apa pun, pengendali peristiwa no-match akan memberikan respons fulfillment statis tertentu. | |
Timer akan berakhir di sistem, dan Anda ingin memberikan informasi pengingat kepada pengguna akhir dengan respons fulfillment statis tertentu. |
Pengendali peristiwa tingkat alur
Pengendali peristiwa level flow adalah pengendali peristiwa yang diterapkan ke flow. 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, 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 peristiwa bawaan
no-match
dan no-input
.
Pengendali peristiwa ini otomatis dibuat saat Anda membuat flow,
dan tidak dapat dihapus.
Untuk membuat pengendali peristiwa tingkat alur dari konsol:
- Buka halaman awal alur.
- Klik tombol tambahkan di judul Pengendali peristiwa.
- Panel pengendali peristiwa akan terbuka.
- Menyediakan kolom pengendali peristiwa.
- Klik Save.
Untuk menghapus pengendali peristiwa tingkat alur dari konsol:
- Buka halaman awal alur.
- Klik judul Pengendali peristiwa.
- Panel daftar pengendali peristiwa akan terbuka.
- Arahkan 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 sebuah 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:
- Buka halaman (bukan halaman awal alur).
- Jika tidak ada judul Pengendali peristiwa, klik Tambahkan pengendali status, pilih Pengendali peristiwa, lalu klik Apply.
- Klik tombol tambahkan di judul Pengendali peristiwa.
- Panel pengendali peristiwa akan terbuka.
- Menyediakan kolom pengendali peristiwa.
- Klik Save.
Untuk menghapus pengendali peristiwa tingkat halaman dari konsol:
- Buka halaman (bukan halaman awal alur).
- Klik judul Pengendali peristiwa.
- Panel daftar pengendali peristiwa akan terbuka.
- Arahkan mouse ke pengendali peristiwa, lalu klik tombol hapus .
Pengendali peristiwa level parameter
Pengendali peristiwa level parameter adalah pengendali peristiwa yang diterapkan ke parameter formulir. Ini juga dikenal sebagai pengendali permintaan ulang. Pengendali peristiwa ini tidak mengizinkan peristiwa kustom, karena ditujukan khusus 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 level parameter dari konsol:
- Buka halaman yang berisi parameter formulir.
- Klik parameter.
- Panel parameter akan terbuka.
- Scroll ke bawah ke bagian Pengendali peristiwa Reprompt, lalu klik Tambahkan pengendali peristiwa.
- Panel pengendali peristiwa akan terbuka.
- Menyediakan kolom pengendali peristiwa.
- Klik Save.
Untuk menghapus pengendali peristiwa level parameter dari konsol:
- Buka halaman yang berisi parameter formulir.
- Klik parameter.
- Panel parameter akan terbuka.
- Scroll ke bawah ke bagian Pengendali peristiwa Reprompt.
- Arahkan mouse ke pengendali peristiwa, lalu klik tombol hapus .
Acara bawaan
Peristiwa berikut merupakan bawaan dan dipanggil oleh Dialogflow. Beberapa peristiwa dibatasi pada level tertentu.
Nama peristiwa |
Tingkat alur | Tingkat halaman | Level parameter | Dipanggil saat |
---|---|---|---|---|
sys.no-match-default |
✔ | ✔ | ✔ | |
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. Ini dapat dipanggil jika:
|
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 dalam urutan: 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 intent non-generatif. Jika tidak disediakan, Dialogflow 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 (mis. webhook.error.timeout) yang cocok dengan kode error webhook, 2) jika tidak ada target transisi yang ditetapkan di rute asli yang disebut 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 di rute asli yang disebut 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 disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya. | |
webhook.error.rejected |
✔ | ✔ | Webhook menampilkan 401 Tidak Sah atau 403 Terlarang. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di rute asli yang disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya. | |
webhook.error.unavailable |
✔ | ✔ | Webhook menampilkan 503 Service Tidak Tersedia. Peristiwa webhook hanya akan dipanggil jika tidak ada target transisi yang ditetapkan di rute asli yang disebut 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 disebut fulfillment dengan webhook yang gagal. Lihat bagian urutan evaluasi untuk mengetahui detailnya. | |
flow-cancelled |
✔ | ✔ | Pengguna akhir meminta pembatalan alur. Peristiwa ini dipicu oleh halaman Alur Akhir 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 Alur Akhir 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 Alur Akhir 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 seterusnya.
Peristiwa cukup 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
pada metode detectIntent
untuk jenis Session
.
Pilih protokol dan versi untuk Referensi sesi:
Protokol | V3 | V3beta1 |
---|---|---|
REST | Referensi sesi | Referensi 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:
- Hanya pengendali dalam cakupan yang dievaluasi.
- Hanya pengendali yang persyaratannya terpenuhi yang dapat dipanggil.
- Jika pengendali tanpa target transisi dipanggil, evaluasi daftar pengendali akan dilanjutkan. Karena aturan ini, beberapa fulfillment dapat menambahkan beberapa pesan ke antrean respons.
- Jika pengendali dengan target transisi dipanggil, evaluasi daftar pengendali akan berakhir.
- Jika pengendali dengan fulfillment dipanggil,
dan fulfillment menghasilkan error webhook:
- Jika pengendali telah menentukan target transisi, webhook akan otomatis gagal.
- Jika pengendali peristiwa berada dalam cakupan peristiwa, pengendali peristiwa akan menangani peristiwa dan evaluasi daftar pengendali berakhir.
- Jika tidak ada pengendali peristiwa yang tercakup dalam peristiwa, webhook akan otomatis gagal.
- Jika persyaratan intent terpenuhi, intent akan digunakan, sehingga hanya pengendali rute pertama yang ditemukan untuk intent yang dapat dipanggil (Lihat propagasi intent untuk pengecualian).
- Jika persyaratan kondisi terpenuhi, kondisi tidak akan dipakai, sehingga beberapa rute dengan kondisi tersebut dapat dipanggil.
- Jika suatu persyaratan peristiwa terpenuhi, peristiwa tersebut akan dipakai, sehingga hanya pengendali peristiwa pertama yang ditemukan untuk peristiwa tersebut yang dapat dipanggil.
- Stack panggilan pengendali dapat memengaruhi urutan evaluasi.
Ada tiga fase dalam evaluasi:
- Rute yang memiliki persyaratan intent
akan dievaluasi dalam urutan ini:
- Tingkat halaman: Setiap rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
- Grup tingkat halaman: Grup rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
- Tingkat alur: Rute yang diterapkan pada alur aktif, dalam urutan yang diberikan.
- Grup tingkat alur: Grup rute yang diterapkan pada alur aktif, dalam urutan yang diberikan.
- Rute dengan persyaratan kondisi saja
akan dievaluasi dalam urutan ini:
- Tingkat halaman: Setiap rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
- Grup tingkat halaman: Grup rute yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
- Tingkat alur (Hanya jika halaman saat ini adalah halaman awal alur): Rute yang diterapkan pada alur aktif, dalam urutan yang diberikan.
- Grup tingkat alur (Hanya jika halaman saat ini adalah halaman awal alur): Grup rute yang diterapkan ke alur aktif, dalam urutan yang diberikan.
- Pengendali peristiwa dievaluasi dalam urutan ini:
- Level parameter: Pengendali peristiwa yang diterapkan ke parameter formulir halaman saat ini yang sedang coba diisi oleh agen (pengendali permintaan ulang), dalam urutan yang diberikan.
- Tingkat halaman: Pengendali peristiwa yang diterapkan ke halaman saat ini, dalam urutan yang diberikan.
- Tingkat alur: Pengendali peristiwa yang diterapkan pada alur aktif, dalam urutan yang diberikan.
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 |
Transisi ke halaman awal alur aktif dengan nama serupa. |
END_FLOW |
Akhiri alur yang saat ini aktif dan transisikan kembali ke halaman yang menyebabkan transisi ke alur saat ini. Lihat juga Stack panggilan pengendali dan batas stack alur. |
END_FLOW_WITH_CANCELLATION |
Akhiri alur yang saat ini aktif dan transisikan kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan peristiwa bawaan flow-cancelled . Lihat juga Stack panggilan pengendali dan batas stack alur. |
END_FLOW_WITH_FAILURE |
Akhiri alur yang saat ini aktif dan transisikan kembali ke halaman yang menyebabkan transisi ke alur saat ini. Halaman panggilan dapat menangani transisi ini dengan peristiwa bawaan flow-failed . Lihat juga Stack panggilan pengendali dan batas stack alur. |
END_FLOW_WITH_HUMAN_ESCALATION |
Akhiri alur yang saat ini aktif dan transisikan 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 Stack panggilan pengendali dan batas stack alur. |
END_SESSION |
Hapus sesi saat ini dan transisi 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 |
Transisi ulang ke halaman saat ini. Hal ini dapat berguna jika Anda ingin agen mengulangi sesuatu. |
Stack panggilan pengendali dan batas stack alur
Saat sesi bertransisi dari flow ke flow dengan target transisi tertentu, setiap alur didorong ke stack alur.
Stack panggilan pengendali
Saat bertransisi ke END_FLOW
, sesi akan kembali ke halaman panggilan
yang menyebabkan transisi ke alur 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:
- Halaman P memiliki tiga pengendali dalam urutan ini: H1, H2, H3.
- H1 dievaluasi, tetapi tidak menyebabkan transisi.
- H2 dievaluasi, dan menyebabkan transisi mengalir F.
- Halaman di alur F bertransisi ke
END_FLOW
. - Sesi akan kembali ke Halaman P, yang akan aktif lagi dengan status yang dipertahankan.
- Evaluasi pengendali di halaman P berlanjut dari status yang dipertahankan, sehingga H3 dievaluasi.
Batas stack flow
Batas tumpukan alur maksimum adalah 25. Melebihi batas stack maksimum dapat
menyebabkan flow dimunculkan dari stack, yang menyebabkan perilaku yang tidak terduga
saat menggunakan transisi END_FLOW
.
Untuk menghindari potensi masalah ini, minimalkan jumlah transisi flow-to-flow
sebelum transisi END_FLOW
.
Jika stack alur kosong, transisi END_FLOW
akan mengakhiri sesi.
Menetapkan kondisi
Untuk menetapkan conditions dengan konsol, Anda memberikan aturan kondisi dengan salah satu dari tiga opsi logis:
- Cocokkan SEDIKIT SATU aturan (OR)
- Cocokkan SEMUA aturan (DAN)
- Sesuaikan ekspresi
Untuk memudahkan, Anda dapat menggunakan opsi AND/OR (DAN/ATAU) untuk membuat kondisi sederhana atau gabungan untuk parameter value.
Anda dapat menggunakan opsi bentuk bebas Sesuaikan ekspresi untuk semua jenis kondisi, termasuk fungsi sistem dan boolean constants.
Misalnya,
untuk menetapkan kondisi yang memiliki peluang 10% lulus evaluasi,
pilih opsi Customize expression
dan masukkan $sys.func.rand() < 0.1
di kolom Condition: