Fulfillment

Untuk giliran percakapan agen, agen harus merespons pengguna akhir dengan jawaban atas pertanyaan, kueri untuk mendapatkan informasi, atau penghentian sesi. Agen Anda mungkin juga perlu menghubungi layanan Anda untuk membuat respons dinamis atau melakukan tindakan untuk giliran percakapan. Pemenuhan digunakan untuk menyelesaikan semua ini.

Pemenuhan dapat berisi salah satu dari berikut ini:

  • Pesan respons statis.
  • Panggilan webhook untuk respons dinamis dan/atau untuk melakukan tindakan.
  • Preset parameter untuk menetapkan atau mengganti nilai parameter.

Selama giliran agen, beberapa pemenuhan dapat dipanggil (dan terkadang diinginkan), yang masing-masing dapat menghasilkan pesan respons. Dialogflow CX menyimpan respons ini dalam antrean respons. Setelah giliran agen berakhir, Dialogflow CX mengirimkan respons yang diurutkan kepada pengguna akhir.

Kasus penggunaan pemenuhan

Pemenuhan digunakan di mana pun pesan respons diperlukan:

Untuk setiap kasus penggunaan ini, konsol akan membuka panel pengeditan fulfillment.

Screenshot penyelesaian

Respons agen (opsi dialog)

Pesan respons agen adalah respons agen yang Anda tentukan pada waktu desain. Anda menentukannya saat membuat pemenuhan. Saat runtime, respons ini ditambahkan ke antrean respons.

Ada beberapa jenis pesan respons, yang dijelaskan di subbagian berikut. Saat menggunakan konsol, panel pemenuhan memiliki kartu Dialog agen awal, tetapi Anda dapat mengklik + Tambahkan respons dialog untuk menambahkan lebih banyak kartu untuk jenis pesan respons lainnya.

Respons teks statis

Pesan respons teks statis mengirimkan dialog teks kepada pengguna akhir. Jika panggilan API atau panggilan integrasi detect intent Anda menggunakan sintesis ucapan, teks ini akan digunakan untuk membuat konten audio. Dalam hal ini, teks yang diberikan dapat secara opsional menggunakan Speech Synthesis Markup Language (SSML).

Anda dapat menentukan beberapa kartu respons teks, dan beberapa respons teks dalam setiap kartu. Jika Anda menentukan beberapa kartu, kartu tersebut akan digabungkan untuk satu respons saat runtime. Jika Anda menentukan beberapa respons dalam kartu, salah satu pesan dalam kartu akan dipilih secara acak saat runtime.

Pesan teks ini dapat berisi referensi parameter dan fungsi sistem inline.

Payload kustom

Beberapa integrasi mendukung respons payload kustom untuk menangani respons multimedia. Payload kustom ini harus diberikan dalam format JSON yang ditentukan dalam dokumentasi integrasi. Misalnya, lihat format payload kustom Dialogflow CX Messenger.

Anda dapat menyertakan referensi parameter dalam JSON payload kustom. Nilai tersebut harus diperlakukan sebagai nilai string JSON, jadi pastikan untuk menyertakannya dalam tanda kutip ganda. Contoh:

{
  "someField": "$session.params.date"
}

Anda juga dapat mengirim payload kustom ke integrasi yang Anda kembangkan. Tidak akan diproses oleh Dialogflow CX, jadi Anda harus menanganinya dalam logika bisnis Anda sendiri.

Lihat juga bagian template payload kustom di bawah.

Penyerahan ke agen langsung

Respons ini memberi sinyal kepada pemanggil API deteksi maksud bahwa percakapan harus diserahkan kepada agen manusia. Dialogflow CX hanya menggunakan sinyal ini untuk mengidentifikasi percakapan yang diserahkan untuk tujuan pengukuran, dan tidak mengubah status sesi dengan cara apa pun. Sistem atau integrasi Anda dapat menggunakan sinyal ini untuk melakukan tindakan apa pun yang diperlukan untuk mengalihkan percakapan. Dialogflow CX tidak memaksakan struktur apa pun pada data ini, sehingga Anda dapat memilih struktur apa pun yang sesuai dengan sistem Anda.

Metadata keberhasilan percakapan

Respons ini memberi sinyal kepada pemanggil API deteksi maksud bahwa percakapan dengan agen Dialogflow CX berhasil. Dialogflow CX hanya menggunakan sinyal ini untuk mengidentifikasi percakapan yang berhasil untuk tujuan pengukuran, dan tidak mengubah status sesi dengan cara apa pun. Sistem atau integrasi Anda dapat menggunakan sinyal ini untuk melakukan tindakan apa pun yang diperlukan. Dialogflow CX tidak memaksakan struktur apa pun pada data ini, sehingga Anda dapat memilih struktur apa pun yang sesuai dengan sistem Anda.

Memutar audio yang direkam sebelumnya

Respons ini memutar file audio untuk integrasi yang mendukung fitur ini.

Persyaratan format file audio mungkin berbeda untuk integrasi yang berbeda. Misalnya, lihat persyaratan untuk Gateway Telepon Dialogflow CX.

Untuk integrasi telepon partner, URL file audio harus dapat diakses oleh partner. URL yang tersedia secara publik, seperti file publik di Cloud Storage, selalu dapat diakses oleh partner. Partner juga dapat memberikan akses terbatas untuk file audio. Lihat dokumentasi partner untuk mengetahui detailnya.

Teks audio output

Respons ini mirip dengan respons teks, tetapi hanya berlaku untuk sintesis ucapan. Jika agen Anda dapat menangani sesi teks dan suara, Anda dapat menggunakan respons teks dan teks audio output yang unik untuk menciptakan pengalaman pengguna yang berbeda untuk teks dan suara. Jika teks audio output disediakan untuk sesi suara, respons teks biasa akan diabaikan.

Jika agen Anda menangani sesi teks dan suara, dan Anda menginginkan pesan respons yang sama, cukup gunakan respons teks untuk sesi teks dan suara.

Teks audio output digabungkan mirip dengan respons teks. Jika respons teks audio output adalah campuran teks dan SSML, hasil gabungan akan diperlakukan sebagai SSML. Idealnya, desainer agen harus menggunakan teks atau SSML secara konsisten.

Respons bersyarat

Jenis respons ini digunakan untuk respons bersyarat. Format umumnya adalah:

if [condition]
  [response]
elif [condition]
  [response]
elif [condition]
  [response]
else
  [response]
endif

dengan:

  • [condition] adalah format yang sama dengan yang digunakan untuk kondisi rute
  • [response] adalah respons teks
  • Blok elif dan else bersifat opsional

Contoh:

if $session.params.user-age >= 21
  Ok, you may enter.
else
  Sorry, you cannot enter.
endif

[condition] dan [response] dapat menggunakan fungsi sistem inline untuk menghasilkan nilai dinamis selama percakapan. Untuk mengetahui informasi selengkapnya, lihat referensi fungsi sistem dan kondisi rute. [condition] diselesaikan berdasarkan status sesi di awal pemenuhan. Jika [response] mengandalkan status sesi, [response] akan diselesaikan berdasarkan status sesi yang diperbarui di akhir pemenuhan.

Untuk agen multibahasa, [condition] umum untuk semua bahasa, sedangkan [response] spesifik per bahasa. Saat Anda mengubah [condition] untuk satu bahasa di konsol, bagian ini akan diperbarui dalam semua bahasa agen, dan karena menjadi kondisi baru, [response] akan dihapus untuk semua bahasa selain bahasa yang Anda pilih saat memperbarui [condition].

Panggilan transfer telepon

Untuk beberapa integrasi telepon, Anda dapat menentukan nomor telepon AS untuk transfer panggilan. Saat runtime, saat agen virtual Dialogflow CX memanggil pemenuhan dengan transfer panggilan, panggilan akan ditransfer ke nomor yang ditentukan dan penanganan agen virtual ditangguhkan.

Respons alat penyimpanan data

Jenis respons ini mengonfigurasi respons agen yang ditampilkan dari alat penyimpanan data yang ditautkan. Jika Anda mengonfigurasi alat penyimpanan data dalam pemenuhan ini, kartu respons alat penyimpanan data akan diisi secara otomatis.

  • Link sumber: Memungkinkan Anda menetapkan jumlah maksimum kutipan yang akan ditampilkan kepada pengguna setelah respons. Kutipan adalah link ke sumber informasi di penyimpanan data, yang ditampilkan sebagai tombol. Nilai defaultnya adalah 1.
  • Kutipan berangkai: Daripada link yang tercantum setelah respons, kolom ini memungkinkan Anda membatasi jumlah kutipan berangkai yang ditampilkan per kalimat.
  • Penggantian generatif: Mencentang kotak ini akan memberi tahu agen untuk mencoba respons yang dibuat AI jika penyimpanan data menampilkan hasil kosong. Jika gagal, respons akan beralih ke respons statis.
  • Respons statis: Anda dapat memasukkan respons teks statis di kolom akhir. Pesan ini dikirimkan kepada pengguna kata demi kata.

Pesan respons khusus saluran

Saat menentukan pemenuhan, Anda dapat membuat pesan respons khusus saluran, sehingga Anda dapat membuat respons yang ditargetkan untuk chat teks, suara, SMS, integrasi tertentu yang mendukung saluran, dan sebagainya. Semua pesan respons yang tidak spesifik untuk suatu saluran disebut pesan respons default.

Saat runtime, Dialogflow CX akan memilih pesan respons default, atau pesan respons khusus saluran saat permintaan deteksi maksud menentukan saluran. Sebagai praktik terbaik, Anda harus menentukan pesan respons default, meskipun Anda menggunakan pesan respons khusus saluran. Pesan respons default dapat bertindak sebagai penggantian jika sistem Anda gagal menyediakan channel yang valid.

Nama saluran adalah kolom kustom yang dapat Anda tetapkan ke teks apa pun. Jika Anda menggunakan Dialogflow CX API secara langsung untuk panggilan runtime, Anda dapat menggunakan nama saluran apa pun yang Anda sukai. Jika menggunakan integrasi yang ada, Anda harus menggunakan nama channel yang dikenali oleh integrasi.

Menetapkan pesan respons khusus saluran pada waktu desain

Untuk memberikan pesan respons khusus saluran untuk pemenuhan saat menggunakan konsol:

  • Klik Tambahkan saluran setelah menambahkan pesan respons default. Antarmuka pengguna akan memungkinkan Anda menambahkan pesan respons khusus saluran. Klik Tambahkan channel lagi untuk menambahkan channel lain.

Untuk memberikan pesan respons khusus saluran untuk pemenuhan saat menggunakan API:

  • Tetapkan kolom Fulfillment.messages[i].channel ke saluran yang diinginkan untuk setiap pesan respons. Jika kolom ini tidak disetel, responsnya adalah pesan respons default.

Menggunakan pesan respons khusus saluran saat runtime

Untuk menerima pesan respons khusus channel, channel harus ditentukan dalam pesan permintaan deteksi maksud. Lihat kolom queryParams.channel dalam metode detectIntent dari jenis Sessions.

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

Jika tidak ada channel yang ditentukan dalam permintaan, atau tidak ada channel yang cocok ditemukan dalam pemenuhan, pesan respons default akan ditampilkan oleh Dialogflow CX.

Template payload kustom

Jika Anda sering menggunakan payload kustom, sebaiknya gunakan template payload kustom. Payload kustom terkadang berukuran besar dan kompleks, jadi penggunaan template dapat membantu mempermudah proses pembuatan agen.

Anda dapat menyediakan template ini di setelan agen, yang membuatnya tersedia untuk dipilih setiap kali Anda membuat pemenuhan untuk agen.

Misalnya, payload JSON untuk tombol "ya" dan "tidak" dapat ditentukan sebagai template payload kustom. Saat membuat pemenuhan yang memerlukan tombol ini, Anda hanya perlu memilih template saat membuat pemenuhan.

Saat Anda memilih template untuk payload kustom pemenuhan, konten template akan dimasukkan ke dalam payload. Kemudian, Anda dapat mengedit payload sesuai kebutuhan.

Jika Anda mengubah template, perubahan tidak akan otomatis diterapkan ke semua payload pemenuhan yang merujuk ke template tersebut.

Untuk membuat template payload kustom, lihat setelan umum agen.

Untuk memilih template payload kustom saat membuat pemenuhan, klik Pilih template saat membuat payload kustom pemenuhan.

Panggilan webhook

Saat fulfillment dipanggil, dan fulfillment memiliki webhook, agen akan mengirimkan permintaan ke webhook Anda. Webhook Anda dapat melakukan tindakan apa pun yang diperlukan dalam layanan Anda, memberikan pesan respons dinamis, mengganti nilai parameter, dan mengubah halaman saat ini.

Berikut ini penjelasan setelan webhook untuk fulfillment:

Istilah Definisi
Mengaktifkan webhook Tindakan ini mengaktifkan webhook untuk pemenuhan.
Webhook Pilih resource webhook.
Tag Tag teks yang Anda berikan di sini akan diisi di kolom WebhookRequest.fulfillmentInfo.tag permintaan webhook yang dikirim ke layanan webhook Anda. Ini dapat digunakan untuk mengontrol perilaku webhook dengan cara yang khusus untuk pemenuhan.
Menampilkan respons sebagian Memungkinkan pembatalan pemutaran respons parsial. Lihat setelan ucapan lanjutan untuk mengetahui detailnya.

Preset parameter

Anda dapat menggunakan pemenuhan untuk menyediakan preset yang menetapkan atau mengganti nilai parameter saat ini. Preset ini akan diterapkan sebelum menyelesaikan pesan respons statis atau memanggil webhook.

Anda juga dapat menggunakan fungsi sistem untuk menyetel parameter ke nilai yang dihasilkan secara dinamis.

Contohnya antara lain:

  • Menetapkan parameter now ke waktu saat ini:

    Parameter Nilai
    sekarang $sys.func.NOW()
  • Menambah parameter counter yang ada sebesar 1:

    Parameter Nilai
    konter $sys.func.ADD($session.params.counter, 1)
  • Menetapkan parameter new-cost ke nilai parameter other-cost, sambil mempertahankan nilai objek komposit penuh:

    Parameter Nilai
    biaya-baru $sys.func.IDENTITY($session.params.other-cost)

Alat penyimpanan data

Lihat dokumentasi alat penyimpanan data untuk mengetahui informasi selengkapnya tentang fitur ini.

Setelan ucapan lanjutan

Setelan ucapan lanjutan ini dapat menggantikan setelan ucapan halaman, setelan ucapan alur, dan setelan ucapan agen yang sama secara opsional.

Antrean respons

Selama giliran agen, beberapa pemenuhan dapat dipanggil (dan terkadang diinginkan), yang masing-masing dapat menghasilkan pesan respons. Dialogflow CX menyimpan respons ini dalam antrean respons.

Respons parsial untuk API streaming

Secara default, Dialogflow CX hanya mengirimkan respons yang diurutkan kepada pengguna akhir setelah giliran agen berakhir. Anda juga dapat mengaktifkan opsi Tampilkan respons parsial dalam pemenuhan untuk menampilkan respons yang saat ini dalam antrean sebagai respons parsial saat menggunakan API streaming. Lihat Siklus proses halaman untuk mengetahui detail selengkapnya.

Misalnya, jika webhook Anda kemungkinan akan berjalan dalam waktu yang lama, Anda dapat menambahkan respons statis dalam pemenuhan dan mengaktifkan respons parsial. Hal ini menyebabkan Dialogflow CX mengosongkan antrean respons dan mengirim semua pesan sebagai respons sebagian sebelum memanggil webhook.

Respons parsial saat ini tidak didukung untuk berikut ini, tetapi akan didukung nanti:

Untuk menguji fitur ini di simulator, Anda harus mengaktifkan respons parsial.

Screenshot respons sebagian simulator

Dalam contoh berikut, anggap webhook Anda memerlukan waktu 5 detik untuk menyelesaikan, dan Anda tidak mengaktifkan respons parsial. Giliran percakapan agen Dialogflow CX belum selesai hingga webhook selesai. Selama giliran 5 detik ini, respons diantrekan sambil menunggu webhook, dan tidak dikembalikan ke pengguna akhir hingga giliran selesai. Hal ini menyebabkan pengalaman pengguna yang buruk.

Tanpa respons sebagian.

Jika Anda mengaktifkan respons parsial dalam pemenuhan pertama, Dialogflow CX akan menampilkan pesan pemenuhan pertama dengan cepat dan memanggil webhook. Setelah webhook selesai, Dialogflow CX akan menampilkan respons akhir. Pengalaman pengguna akhir ditingkatkan dalam skenario ini karena mereka diberi tahu bahwa mereka akan menunggu sebentar. Selain itu, panggilan webhook dijalankan secara bersamaan dengan respons yang dikirim kepada pengguna akhir.

Dengan respons sebagian.

Speech Synthesis Markup Language (SSML)

Anda dapat menggunakan Speech Synthesis Markup Language (SSML) di kolom pengisian teks atau audio output. Hal ini memungkinkan Anda menyesuaikan respons audio dengan memberikan detail tentang jeda, dan pemformatan audio untuk akronim, tanggal, waktu, singkatan, atau teks yang harus disensor.

Untuk mengetahui detail sintaksis, lihat dokumentasi SSML Text-to-Speech.