1. Ringkasan
Terakhir Diperbarui: 07-08-2023
Yang akan Anda bangun
Dalam codelab ini, Anda akan membangun, men-deploy, dan mengonfigurasi agen virtual sederhana di Dialogflow CX untuk membantu penyelam yang bepergian dengan pemesanan grup dan penyewaan pribadi. Agen virtual akan menggunakan AI Generatif dan model bahasa besar (LLM) generatif terbaru Google untuk menghasilkan respons agen virtual.
Yang akan Anda pelajari
- Cara mengaktifkan API yang relevan
- Cara Dialogflow otomatis mengisi nilai parameter formulir halaman dari parameter intent
- Cara mengonfigurasi pengendali peristiwa di Dialogflow
- Cara mengaktifkan penggantian respons generatif pada pengendali peristiwa tidak cocok yang digunakan dalam alur dan selama pengisian parameter
- Cara mengonfigurasi perintah teks Anda sendiri untuk menangani situasi percakapan dasar dan spesifik per agen
- Cara menulis deskripsi maksud dan parameter yang baik untuk membuat handler reprompt untuk parameter wajib (selain reprompt yang ditentukan pengguna)
- Cara menguji agen Anda dan menyimulasikan pertanyaan pelanggan yang memicu penggantian generatif
Yang Anda butuhkan
- Project Google Cloud
- Browser seperti Chrome
2. Mempersiapkan
Sebelum dapat mulai menggunakan fitur penggantian generatif di Dialogflow CX, Anda harus mengaktifkan Dialogflow API.
Mengaktifkan Dialogflow API menggunakan Cloud Console
- Buka konsol Google Cloud di browser Anda.
- Di Konsol Google Cloud, buka API Library untuk menjelajahi API dan layanan yang dapat diaktifkan.
- Menggunakan kotak penelusuran di bagian atas halaman API Library, telusuri
Dialogflow API, lalu klik layanan yang muncul. - Klik tombol Enable untuk mengaktifkan Dialogflow API di project Google Cloud Anda.
Menggunakan gcloud CLI (alternatif)
Atau, API dapat diaktifkan menggunakan perintah gcloud berikut:
gcloud services enable dialogflow.googleapis.com
Jika API berhasil diaktifkan, Anda akan melihat pesan yang mirip dengan berikut ini:
Operation "operations/..." finished successfully.
Mendapatkan kode
Anda tidak akan membuat agen virtual dari awal, kami akan memberi Anda agen yang perlu Anda pulihkan dari Konsol Dialogflow CX, lalu tingkatkan performanya.
Untuk mendownload kode sumber:
- Buka tab browser baru, buka repositori agen, lalu clone dari command line.
- Agen awal telah diekspor sebagai paket JSON. Buka file zip, periksa setelan agen, lihat definisi alur
Liveaboards.json, dan terakhir jelajahi halaman alur, maksud (intent), dan entitas.
3. Buat agen baru
Membuka konsol Dialogflow
Anda akan menggunakan konsol Dialogflow CX bersama dengan project Google Cloud untuk melakukan langkah-langkah yang tersisa dalam codelab ini.
- Di browser Anda, buka konsol Dialogflow CX.
- Pilih project Google Cloud yang ingin Anda gunakan, atau buat project baru untuk digunakan.
- Anda akan melihat daftar agen di konsol Dialogflow CX.
Jika Anda baru pertama kali menggunakan Dialogflow CX, lihat Dokumentasi Dialogflow CX untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi project dan setelan Anda, bergantung pada kebutuhan Anda.
Buat agen Dialogflow CX baru
- Untuk memulihkan agen yang didownload dari repo GitHub, Anda harus membuat agen baru. Dari konsol Dialogflow CX, klik Create new agent di sudut kanan atas halaman.

- Pilih opsi agen Build your own.

- Lengkapi formulir dengan setelan agen di bawah, lalu klik Buat untuk membuat agen.
- Sebagai nama tampilan, pilih:
Divebooker - Sebagai lokasi, pilih:
us-central1 - Pilih zona waktu yang Anda inginkan
- Pilih
en - Englishsebagai bahasa default
- Dialogflow akan otomatis membuka agen untuk Anda. Kita belum selesai!
Memulihkan agen Divebooker
- Kembali ke halaman daftar agen, identifikasi agen yang baru saja Anda buat. Klik opsi
, lalu klik tombol Pulihkan. - Pilih opsi Upload, lalu tarik atau pilih file ZIP yang sebelumnya Anda download dari repositori GitHub.
- Klik tombol Restore untuk mengimpor agen yang telah kami berikan

Bagus! Anda telah selesai membangun agen virtual reservasi penyelaman yang siap membantu pelanggan Anda. Di bagian berikutnya, Anda akan mengujinya dan melihat seberapa baik kemampuannya dalam menjawab pertanyaan pengguna dan membantu permintaan pemesanan.
4. Menguji agen
Dialogflow menyediakan simulator bawaan untuk melakukan percakapan dengan agen Anda dan menemukan bug. Untuk setiap giliran, Anda dapat memverifikasi nilai yang benar untuk intent yang dipicu, respons agen, halaman aktif, dan parameter sesi.
Kami akan menguji beberapa skenario dan untuk setiap skenario, kami akan melihat alasan mengapa agen memberikan respons tertentu. Mari kita mulai dengan yang pertama.
Intent yang belum terselesaikan
- Di konsol Dialogflow dan dari dalam agen Anda, klik Test Agent untuk membuka Simulator.

- Ketik sapaan kepada agen Anda seperti
Hellodan tanyakanwhat is a liveaboard?. Pertanyaan tidak cocok dengan maksud apa pun, perintah umum seperti "Maaf, saya tidak tahu cara membantu" akan ditampilkan. Anda dapat memeriksa apakah peristiwa bawaan sys.no-match-default dipanggil dengan memeriksa respons asli di Simulator.

Scroll ke bawah hampir ke bagian akhir respons JSON. Perhatikan bahwa saat menelusuri maksud yang cocok, Dialogflow menemukan bahwa ini adalah NO_MATCH dan memunculkan peristiwa no-match.

- Beralihlah ke tab Build, lalu buka Start Page pada alur Liveaboards.

Secara default, setiap alur memiliki handler peristiwa untuk peristiwa bawaan tidak cocok dan tidak ada input. Handler peristiwa ini dibuat secara otomatis saat Anda membuat alur, dan tidak dapat dihapus.
- Klik handler peristiwa sys.no-match-default dan scroll ke bawah ke bagian Agent responses. Dialogflow menyediakan daftar respons alternatif, tetapi Anda juga dapat menentukan berbagai jenis pesan respons, untuk memberikan lebih dari sekadar respons teks kepada pengguna akhir.

Sekarang, mari kita lanjutkan ke jalur yang berhasil.
Jalur yang berhasil
Dalam kasus kedua ini, berpura-puralah menjadi penyelam yang ingin memesan pelayaran menyelam untuk sekelompok 12 orang ke Kepulauan Galapagos tahun depan pada bulan Juli.
- Di panel Simulator, klik ikon Reset untuk memulai percakapan baru dengan agen.


- Beri tahu agen bahwa Anda ingin memesan penerbangan sewa ke Kepulauan Galapagos dan berikan detail perjalanan Anda. Anda tidak perlu menggunakan perintah yang sama persis seperti di bawah, bereksperimenlah.

- Buka Start Page, lalu klik rute head.send.group.request. Scroll ke bawah ke bagian Transisi yang memberi tahu Dialogflow halaman yang akan ditransisikan saat intent ini cocok.

- Tutup definisi Rute dan luaskan halaman Kumpulkan Info Lebih Lanjut. Perhatikan pemenuhan entri dan daftar parameter.

Untuk setiap halaman di Dialogflow CX, Anda dapat menentukan formulir, yang merupakan daftar parameter yang harus dikumpulkan dari pengguna akhir untuk halaman tersebut. Perhatikan bahwa agen tidak meminta tujuan perjalanan karena kita meneruskannya sebagai bagian dari input awal dan destination juga merupakan parameter intent. Saat halaman awalnya menjadi aktif, dan selama periode aktifnya, setiap parameter formulir dengan nama yang sama dengan parameter maksud otomatis ditetapkan ke nilai parameter sesi dan perintah yang sesuai dilewati.
- Beralih ke tab Kelola, lalu klik maksud head.send group request di bagian Intents. Lihat frasa pelatihan yang diberikan untuk intent ini dan bagian frasa pelatihan yang diberi anotasi.

- Pertimbangkan frasa pelatihan "Saya perlu mengatur perjalanan ke Kosta Rika untuk 15 penyelam". "Kosta Rika" diberi anotasi tujuan dan "15" dengan jumlah tamu. Saat Anda memberi anotasi pada bagian frasa pelatihan, Dialogflow akan mengenali bahwa bagian ini hanyalah contoh nilai sebenarnya yang akan diberikan oleh pengguna akhir saat runtime. Itulah sebabnya untuk input awal "Apakah Anda menawarkan sewa kapal ke Kepulauan Galapagos?" Dialogflow mengekstrak parameter tujuan dari "Kepulauan Galapagos".
Selanjutnya, kita akan melihat apa yang terjadi jika kita tidak memberikan input yang valid kepada agen saat diminta mengisi parameter formulir.
Input tidak valid
- Di panel Simulator, klik ikon Reset untuk memulai percakapan baru dengan agen.
- Nyatakan niat untuk melakukan pemesanan grup, kali ini jangan beri tahu agen ke mana Anda ingin pergi dan kapan. Saat Anda ditanya tujuan, jawab dengan nilai acak yang bukan Kosta Rika, Galapagos, atau Meksiko.

- Di tab Kelola, klik Jenis entity di bagian Sumber daya. Perhatikan dua tab: di tab System, Anda dapat menemukan entity sistem yang saat ini digunakan oleh agen Anda. Tab Kustom menyediakan daftar entity kustom yang dibuat untuk mencocokkan data khusus untuk agen ini.

- Klik entitas tujuan untuk mengetahui nilai yang cocok dengan entitas. "Eropa" bukan salah satu entri dan bukan juga sinonim.
- Pada diagram alur, luaskan halaman Collect Further Info yang berisi parameter formulir. Klik parameter tujuan.
- Di panel parameter, scroll ke bawah ke bagian Reprompt event handlers, lalu klik handler peristiwa No-match default.
Handler peristiwa tingkat parameter ini secara khusus ditujukan untuk menangani input pengguna akhir yang tidak valid selama pengisian formulir. Karena "Eropa" adalah input yang tidak terduga, peristiwa sys.no-match-default dipanggil, dan pengendali reprompt yang sesuai yang ditentukan untuk peristiwa ini dipanggil. Bagian Agen berkata mencantumkan dua pesan perintah ulang alternatif.

Bagus sekali! Kasus pengujian ini mewakili skenario umum yang diharapkan dapat ditangani dengan tepat oleh agen. Pengguna sering kali mengajukan pertanyaan yang tidak dapat dijawab oleh bot atau membuat permintaan yang tidak dapat dipenuhi oleh bot. Mendesain untuk ekor panjang sangatlah rumit, yang berarti di luar jalur yang sering dilalui sebagian besar pengguna. Pikirkan semua hal yang dapat berjalan tidak sesuai rencana dalam percakapan dan semua jalur yang tidak terduga atau tidak didukung yang mungkin diambil pengguna.
Kemajuan dalam teknologi pengenalan ucapan otomatis (ASR) berarti kami hampir selalu mengetahui persis apa yang dikatakan pengguna. Namun, menentukan maksud pengguna masih menjadi tantangan. Ucapan sering kali tidak dapat dipahami secara terpisah; ucapan hanya dapat dipahami dalam konteks. Di bagian berikutnya dalam codelab ini, kita akan mempelajari bagaimana model bahasa besar (LLM) generatif terbaru Google dapat membantu mengembalikan dialog ke jalurnya dan memajukan percakapan.
5. Mengaktifkan penggantian respons generatif
Apa yang dimaksud dengan fitur penggantian generatif?
Fitur penggantian generatif adalah fitur Dialogflow CX yang menggunakan model bahasa besar (LLM) Google untuk menghasilkan respons agen virtual.
Bagaimana cara kerjanya?
Di antara kasus penggunaan utama, ada sejumlah permintaan pengguna yang agak umum seperti mengulangi apa yang dikatakan agen jika pengguna tidak mengerti, menahan panggilan saat pengguna memintanya, dan meringkas percakapan. Dalam pengujian pertama yang kami lakukan, agen gagal menjawab pertanyaan "Apa itu liveaboard?" karena kami belum membuat maksud (intent) untuk pertanyaan tersebut dan merancang alur untuk menangani jenis pertanyaan umum terkait scuba diving dan liveaboard.
Meskipun maksudnya kuat, masih ada ruang untuk kesalahan. Pengguna mungkin keluar dari skrip dengan tetap diam (error Tidak Ada Input) atau mengatakan sesuatu yang tidak terduga (error Tidak Ada Kecocokan). Meskipun mencegah terjadinya error lebih baik daripada menangani error setelah terjadi, error tidak dapat dihindari sepenuhnya. Perintah umum seperti "Maaf, saya tidak yakin cara membantu" atau solusi layak minimum serupa sering kali tidak cukup baik. Perintah error harus terinspirasi oleh Prinsip Kerja Sama yang menyatakan bahwa komunikasi yang efisien bergantung pada asumsi bahwa ada arus kerja sama antara peserta percakapan.
Di bagian berikutnya, kita akan melihat cara mengonfigurasi fitur penggantian generatif untuk meningkatkan cakupan niat dan menyederhanakan penanganan error demi pengalaman pelanggan yang lebih baik.
Mengaktifkan penggantian respons generatif untuk peristiwa tidak cocok di seluruh alur
Anda dapat mengaktifkan penggantian respons generatif pada pengendali peristiwa tidak cocok yang digunakan dalam alur, halaman, atau selama pengisian parameter. Jika penggantian respons generatif diaktifkan untuk peristiwa tanpa kecocokan, setiap kali peristiwa tersebut dipicu, Dialogflow akan mencoba menghasilkan respons generatif yang akan diucapkan kembali kepada pengguna. Jika pembuatan respons tidak berhasil, respons agen yang ditentukan secara reguler akan dikeluarkan.
Anda dapat mengaktifkan penggantian respons generatif di agen pada handler peristiwa tidak cocok, yang dapat digunakan dalam pemenuhan alur, halaman, atau parameter.
Kami akan mulai mengaktifkan penggantian respons generatif untuk seluruh peristiwa default tidak cocok pada alur Liveaboards.
- Luaskan Halaman Awal alur.
- Klik sys.no-match-default di bagian Event handlers.
- Centang Enable generative fallback di bagian Agent responses, lalu klik Save


Mengaktifkan penggantian respons generatif pada peristiwa tidak cocok tertentu
Sekarang kita ingin mengaktifkan penggantian generatif untuk menangani input yang tidak valid saat agen meminta jumlah penumpang:
- Buka halaman Kumpulkan Info Lebih Lanjut yang berisi parameter formulir. Klik parameter number-of-guests.
- Buka handler peristiwa Tidak cocok target (scroll ke bawah ke bagian Reprompt event handlers, lalu klik handler peristiwa No-match default)

- Centang Aktifkan penggantian respons generatif di bagian Respons agen

- Terakhir, klik Simpan.
- Sekarang ulangi langkah-langkah yang sama persis untuk mengaktifkan penggantian generatif untuk destination dan email-address
Bagus sekali! Anda telah mengaktifkan penggantian generatif untuk menangani maksud yang tidak terduga dan nilai parameter yang tidak valid. Selanjutnya, kita akan melihat cara mengonfigurasi fitur penggantian generatif dengan perintah teks yang menginstruksikan LLM cara merespons.
6. Mengonfigurasi penggantian respons generatif
Fitur penggantian generatif meneruskan permintaan ke model bahasa besar untuk menghasilkan respons yang dibuat. Permintaan ini berbentuk perintah teks yang merupakan campuran bahasa alami dan informasi tentang status agen dan percakapan saat ini. Fitur ini dapat dikonfigurasi dengan beberapa cara:
- Pilih perintah spesifik (yang sudah ditentukan) untuk digunakan dalam pembuatan respons.
- Tentukan perintah kustom.
Memilih perintah yang sudah ditentukan
- Di konsol Dialogflow CX, klik Agent Settings

- Buka tab ML, lalu sub-tab AI Generatif.

Fitur ini langsung tersedia dengan dua perintah template, template Default (yang tidak terlihat) dan template Contoh yang memandu Anda menulis perintah sendiri.
- Pilih template Contoh, lalu klik tombol Edit di sisi kanan dropdown untuk memeriksanya.
Dengan perintah yang telah ditentukan sebelumnya, agen virtual dapat menangani situasi percakapan dasar. Contoh:
- Menyapa dan mengucapkan selamat tinggal kepada pengguna.
- Ulangi apa yang dikatakan agen jika pengguna tidak mengerti.
- Tahan saluran saat pengguna memintanya.
- Ringkas percakapan.
Mari kita coba tentukan perintah teks tertentu untuk agen Divebooker.
7. Menentukan perintah Anda sendiri
- Salin perintah di bawah dan tempel di area Perintah teks
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description
At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.
Currently you can $route-descriptions
The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}
Then the human asked:
$last-user-utterance
You say:
- Pilih Simpan sebagai template baru untuk menyimpan perintah baru sebagai template baru (pilih nama template baru) dan Simpan di pojok kanan bawah panel.

- Agar perintah yang baru dibuat benar-benar menjadi perintah aktif, Anda juga perlu Menyimpan setelan.

Saat menulis perintah teks Anda sendiri, gunakan bahasa yang jelas, ringkas, dan preskriptif. Cara pembuatan perintah untuk LLM dapat sangat memengaruhi kualitas respons LLM. LLM dilatih untuk mengikuti petunjuk, sehingga makin mirip perintah Anda dengan petunjuk yang tepat, makin baik hasil yang akan Anda dapatkan. Buat perintah dan berdasarkan hasil yang Anda dapatkan, lalu lakukan iterasi untuk meningkatkannya.
Untuk membuat perintah yang efektif, ikuti praktik terbaik berikut:
- Berikan deskripsi yang jelas dan ringkas tentang tugas yang ingin Anda lakukan dengan LLM. Tidak lebih, tidak kurang. Buat tetap lengkap dan singkat.
- Selain itu, perintah harus spesifik dan jelas, serta menghindari bahasa yang tidak jelas atau ambigu.
- Pecah tugas-tugas kompleks menjadi bagian-bagian yang lebih kecil dan lebih mudah dikelola. Dengan memecah tugas menjadi langkah-langkah yang lebih kecil, Anda dapat membantu model berfokus pada satu hal dalam satu waktu dan mengurangi kemungkinan terjadinya kesalahan atau kebingungan.
- Untuk meningkatkan kualitas respons, tambahkan contoh dalam perintah Anda. LLM belajar menurut konteks dari contoh tentang cara memberikan respons.
Saat membuat perintah, selain deskripsi bahasa alami tentang jenis konteks yang harus dibuat, placeholder berikut juga dapat digunakan:
$conversationPercakapan antara agen dan pengguna, tidak termasuk ucapan pengguna yang terakhir. Anda dapat menyesuaikan awalan belokan (misalnya: "Manusia", "AI", "Anda", "Agen") dalam perintah teks$last-user-utteranceUcapan terakhir pengguna.$flow-descriptionDeskripsi alur dari alur aktif.$route-descriptionsDeskripsi intent dari intent aktif.
Setelah memiliki perintah teks awal, tugas berikutnya adalah memastikan alur dan maksud memiliki deskripsi yang baik.
8. Menambahkan deskripsi alur dan maksud
Tambahkan deskripsi alur
- Untuk menambahkan deskripsi ke alur Liveaboards, akses setelan alur dengan mengarahkan kursor ke alur di bagian Alur.

- Klik tombol opsi
. - Pilih Setelan alur dan tambahkan deskripsi berikut (atau yang serupa):
search, find and book liveaboards.

- Klik Simpan
Tambahkan deskripsi maksud
- Sekarang, tambahkan deskripsi yang baik ke intent head.send.group.request. Beralih ke tab Manage, pilih Intents di bagian Resources, lalu pilih maksud head.send.group.request.
- Tambahkan deskripsi berikut:
assist users with group or full charter reservations. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands
Perhatikan bahwa deskripsi berisi informasi penting seperti jumlah minimum dan maksimum penumpang yang diizinkan di atas kapal. Ingat hal ini.
- Klik Simpan
Dan, selesai! Anda telah mengaktifkan penggantian respons generatif pada pengendali peristiwa tidak cocok untuk pemenuhan alur dan parameter. Anda juga telah menentukan perintah teks Anda sendiri yang diteruskan oleh fitur penggantian generatif ke model bahasa besar untuk menghasilkan respons generatif.
Di bagian berikutnya, Anda akan menguji ulang agen untuk melihat cara agen menjawab pertanyaan sulit yang sama seperti sebelumnya.
9. Menguji ulang agen Anda
Setelah mengonfigurasi dan mengaktifkan penggantian generatif pada agen virtual, Anda dapat mengajukan pertanyaan sulit yang serupa dan melihat cara agen virtual menangani respons.
Klik Test Agent untuk membuka Simulator lagi.

Tanyakan lagi kepada agen tentang liveaboard dan penyelaman liveaboard. Mulai sekarang, perhatikan bagaimana setiap dialog memiliki pesan yang ditentukan pengguna serta respons yang dihasilkan yang ditandai dalam kotak merah.

Apakah Anda mendapatkan respons informatif yang bagus, bukan perintah ulang generik? Bagus! Setelah memberikan deskripsi yang jelas dan ringkas tentang tugas yang ingin Anda selesaikan oleh agen (dalam perintah teks dan dalam deskripsi alur), bot Anda kini jauh lebih pintar dalam menjawab pertanyaan mendetail tanpa membuat maksud tertentu. Pelanggan Anda akan menghargai bahwa agen dapat memberikan respons yang lebih tepat, bukan respons yang tidak dapat ditindaklanjuti.
Jangan ragu untuk menantang agen, tanyakan apakah agen dapat membantu Anda menemukan kursus menyelam karena Anda belum menjadi penyelam bersertifikat.

Benar, saat ini kami belum mendesain agen untuk membantu kursus scuba. Bagaimana agen mengetahuinya? Dalam perintah teks, kami telah menguraikan dengan jelas apa yang dapat dan tidak dapat dibantu oleh agen. "Saat ini Anda tidak dapat membantu pelanggan terkait kursus dan penyelaman di darat. Anda tidak dapat merekomendasikan toko selam dan resor selam setempat"
Sekarang, uji ulang skenario yang berhasil dan perbanyak percakapan. Mari kita lihat bagaimana pengalaman telah berubah.


Saat mencocokkan intent atau mencoba mengumpulkan parameter sesuai desain alur, Dialogflow akan menampilkan pemenuhan yang ditentukan pada waktu desain. Saat pengguna keluar dari skrip dengan meminta ringkasan detail perjalanan atau menawarkan untuk memberikan nomor teleponnya, fitur penggantian generatif akan berperan.
Bagus! Anda telah menguji ulang skenario yang berhasil dan kami harap Anda telah melakukan percakapan yang menyenangkan dan alami dengan agen sedekat mungkin dengan pengalaman yang akan Anda dapatkan dengan agen langsung.
Sayangnya, ada hal-hal yang bisa salah dalam percakapan. Mari kita lakukan pengujian lain. Kali ini, saat Anda ditanya jumlah tamu, sebutkan angka yang lebih besar dari 15.


Ada beberapa hal yang perlu diperhatikan di sini:
- Mengapa 20 bukan angka yang valid? Karena kami telah menetapkan batas jumlah tamu yang diizinkan sebagai bagian dari deskripsi maksud: "Agen mengumpulkan info seperti periode keberangkatan, tujuan, jumlah tamu ***(min 4 maks 15 orang)****, detail kontak*" . Respons generatif yang ditampilkan LLM "Maaf, kami hanya dapat membantu pemesanan grup hingga 15 tamu" sangat sesuai dengan batasan yang telah kami berikan terkait jumlah tamu. Untuk lebih menerapkan hal ini, number-of-guests adalah entity RegExp kustom yang hanya cocok dengan angka yang termasuk dalam rentang 4 - 15.
- Percakapan berlanjut karena pada akhirnya pengguna masih ingin mendapatkan penawaran untuk 15 penyelam. Hal ini sering terjadi selama percakapan alami, kita sering berubah pikiran. Perhatikan bagaimana agen bersikap kooperatif dan dengan lembut mengarahkan pengguna kembali ke jalur yang berhasil.
Desain percakapan melibatkan penulisan setengah dialog, dengan harapan dialog tersebut cukup kuat sehingga siapa pun dapat masuk dan memerankan setengah dialog lainnya. Saat mendesain untuk long tail, developer perlu berfokus pada apa yang dapat dikatakan pengguna di setiap langkah dalam dialog Anda untuk menentukan rute, handler, dan parameter. Itulah sebabnya kami menambahkan fitur penggantian generatif ke Dialogflow CX: agar developer dapat berfokus pada prinsip desain percakapan dan tidak terlalu berfokus pada detail penerapan untuk memberikan pengalaman percakapan yang andal kepada pengguna.
Mari kita lakukan satu pengujian lagi, kali ini tantang bot lagi dengan tempat yang tidak ada dalam daftar tujuan yang tersedia seperti Maladewa. Kemudian, kita akan melihat sekilas apa yang terjadi di balik layar.

Perhatikan bahwa karena kami juga telah mengaktifkan penggantian generatif pada peristiwa no-match untuk parameter tujuan, permintaan dikirim ke model bahasa besar untuk menghasilkan respons yang dibuat. Respons yang telah ditentukan sebelumnya (di bagian Agen berkata) diabaikan.
Kotak teks di bawah akan membantu Anda lebih memahami cara placeholder membantu membentuk permintaan yang dikirim ke model bahasa besar.
Berikut adalah perintah teks kustom yang telah kita konfigurasi di Dialogflow dengan placeholder yang disorot dalam huruf tebal:
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description
At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.
Currently you can $route-descriptions
The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}
Then the human asked:
$last-user-utterance
You say:
Di kotak teks di bawah, saya telah menyertakan input yang diterima oleh model bahasa besar dan output yang berisi respons yang dihasilkan yang akan diucapkan kembali kepada pengguna:
llm_input: You are a friendly agent that likes helping traveling divers. You are under development and you can only help search, find and book liveaboards. At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts. Currently you can assist users who are looking for a group reservation or a full charter. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands. The conversation between the human and you so far was: Human: Hi, my name's Alessia AI Hi Alessia, what can I help you with today? Human: Can you help me find a nice boat for myself and my family? AI To assist you with that I need to collect the details of your travel and then we'll get back to you with an offer shortly. Where would you like to go? We can organize a charter in Costa Rica, Galapagos Islands and several locations around Mexico Then the human asked: The kids want to go to the Maldives llm_output: You say: I'm sorry Alessia, we can only help you with liveaboards in Costa Rica, Galapagos Islands and several locations around Mexico.
Mirip dengan pengujian yang dilakukan sebelumnya, respons yang dikirim kembali kepada pengguna dihasilkan oleh model dan mengandalkan informasi yang telah kami berikan sebagai bagian dari deskripsi maksud: "Tujuan harus salah satu dari berikut ini di Pasifik: Kosta Rika, Meksiko, Kepulauan Galapagos"
Mengubah daftar frasa yang dilarang
Fitur penggantian respons generatif dapat dikonfigurasi dengan beberapa cara:
- Pilih perintah spesifik (yang sudah ditentukan) untuk digunakan dalam pembuatan respons.
- Tentukan perintah kustom.
- Mengubah daftar frasa yang dilarang.
Sejauh ini kita telah mempelajari dua cara pertama. Mari kita pelajari yang ketiga.
- Di Agent Settings, buka tab ML, lalu sub-tab Generative AI.
- Di bagian Frasa yang dilarang, tambahkan kalimat berikut ke daftar:
Dangerous countryHateful placeMedical assistance- Klik Simpan.
- Klik ikon Reset dan uji ulang skenario terakhir. Alih-alih memberikan destinasi menyelam yang indah di seluruh dunia, masukkan salah satu frasa yang dilarang.

Perintah dan respons yang dihasilkan diperiksa berdasarkan daftar frasa yang dilarang. Frasa terlarang adalah frasa yang dilarang untuk AI generatif. Jika input menyertakan frasa yang dilarang, atau frasa yang dianggap tidak aman, pembuatan akan gagal, dan respons yang telah ditentukan secara rutin (di bagian Agen mengatakan dalam pemenuhan yang sama) akan dikeluarkan sebagai gantinya.
Bagus sekali! Kami telah membahas berbagai situasi percakapan di mana respons generatif dapat membuat perbedaan yang signifikan. Jangan ragu untuk terus melakukan pengujian.
10. Selamat
Selamat, Anda telah menyelesaikan codelab. Saatnya bersantai!

Anda telah berhasil membuat agen virtual dan mengaktifkan penggantian generatif pada pengendali peristiwa no-match yang digunakan dalam alur, dan selama pengisian parameter.
Fitur penggantian generatif yang dikombinasikan dengan deskripsi alur dan maksud yang baik dapat memberikan respons spesifik dan kooperatif agen, bukan perintah umum seperti "Maaf, saya tidak yakin cara membantu" atau "Maaf, Anda telah memasukkan opsi yang tidak valid". Perintah kesalahan yang dihasilkan oleh model bahasa besar dapat secara halus mengarahkan pengguna kembali ke jalur yang berhasil atau mengatur ulang ekspektasi mereka tentang apa yang mungkin dan tidak mungkin dilakukan.
Jangan ragu untuk menguji situasi percakapan lainnya dan menjelajahi fungsi lain yang tersedia terkait Dialogflow CX dan AI generatif.
Pembersihan
Anda dapat melakukan pembersihan berikut agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam codelab ini:
- Buka konsol Dialogflow CX dan hapus semua agen yang Anda buat.
- Di konsol Google Cloud, buka halaman APIs and Services, lalu nonaktifkan Dialogflow API.
Bacaan lebih lanjut
Lanjutkan mempelajari AI percakapan dan AI generatif dengan panduan dan referensi berikut:
- Dokumentasi untuk Dialogflow CX
- Dokumentasi untuk Penggantian respons generatif
- AI Generatif di Google Cloud
- Pengantar PaLM
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.
