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 skuba yang bepergian dengan pemesanan grup dan charter pribadi. Agen virtual ini akan menggunakan AI Generatif dan model bahasa besar (LLM) generatif terbaru dari Google untuk menghasilkan respons agen virtual.
Yang akan Anda pelajari
- Cara mengaktifkan API yang relevan
- Cara Dialogflow secara otomatis mengisi nilai parameter formulir halaman dari parameter intent
- Cara mengonfigurasi pengendali peristiwa di Dialogflow
- Cara mengaktifkan penggantian generatif pada pengendali peristiwa tidak cocok yang digunakan dalam alur dan selama pengisian parameter
- Cara mengonfigurasi prompt teks Anda sendiri untuk menangani situasi percakapan dasar serta agen khusus
- Cara menulis deskripsi intent dan parameter yang baik untuk menghasilkan pengendali prompt ulang untuk parameter yang diperlukan (selain prompt ulang yang ditentukan pengguna)
- Cara menguji agen 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 perlu mengaktifkan Dialogflow API.
Mengaktifkan Dialogflow API menggunakan Cloud Console
- Buka Konsol Google Cloud di browser Anda.
- Di konsol Google Cloud, buka API Library untuk menelusuri API dan layanan yang dapat diaktifkan.
- Dengan menggunakan kotak penelusuran di bagian atas halaman Library API, telusuri
Dialogflow API
, lalu klik layanan yang dihasilkan. - 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 seperti ini:
Operation "operations/..." finished successfully.
Mendapatkan kode
Anda tidak akan membuat agen virtual dari awal. Kami akan menyediakan agen yang perlu Anda pulihkan dari Konsol Dialogflow CX, lalu tingkatkan.
Untuk mendownload kode sumber:
- Buka tab browser baru, buka repositori agen, lalu clone dari command line.
- Agen awal telah diekspor sebagai paket JSON. Ekstrak file tersebut, periksa setelan agen, lihat definisi alur
Liveaboards.json
, dan terakhir jelajahi halaman alur, intent, dan entity.
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 ini adalah pertama kalinya Anda menggunakan Dialogflow CX, lihat Dokumentasi Dialogflow CX untuk informasi selengkapnya tentang cara mengonfigurasi project dan setelan sesuai kebutuhan Anda.
Membuat agen Dialogflow CX baru
- Untuk memulihkan agen yang didownload dari repo GitHub, Anda perlu membuat agen baru. Dari konsol Dialogflow CX, klik Create new agent di sudut kanan atas halaman.
- Pilih opsi Build your own agent.
- Lengkapi formulir dengan setelan agen di bawah dan klik Create untuk membuat agen.
- Sebagai nama tampilan, pilih:
Divebooker
- Sebagai pilihan lokasi:
us-central1
- Pilih zona waktu yang Anda inginkan
- Pilih
en - English
sebagai 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 Restore.
- Pilih opsi Upload, lalu lepaskan atau pilih file ZIP yang sebelumnya telah Anda download dari repositori GitHub.
- Klik tombol Pulihkan untuk mengimpor agen yang telah kami berikan
Bagus! Anda telah selesai membuat agen virtual reservasi menyelam yang siap membantu pelanggan Anda. Di bagian berikutnya, Anda akan mengujinya dan melihat seberapa bagus kemampuannya dalam menjawab pertanyaan pengguna dan membantu permintaan pemesanan.
4. Menguji agen
Dialogflow menyediakan simulator bawaan untuk melakukan chat dengan agen Anda dan menemukan bug. Untuk setiap belokan, Anda dapat memverifikasi nilai yang benar untuk intent yang dipicu, respons agen, halaman aktif, dan parameter sesi.
Kita akan menguji beberapa skenario, dan untuk setiap skenario, kita akan melihat alasan agen memberikan respons tertentu. Mari kita mulai dengan yang pertama.
Intent yang belum terselesaikan
- Pada konsol Dialogflow dan dari dalam agen Anda, klik Test Agent untuk membuka Simulator.
- Ketik ucapan untuk agen Anda seperti
Hello
, lalu mintawhat is a liveaboard?
. Pertanyaan tidak cocok dengan intent apa pun, prompt umum seperti "Maaf, saya tidak yakin cara membantu" yang ditampilkan. Anda dapat memeriksa apakah peristiwa bawaan sys.no-match-default dipanggil dengan memeriksa respons asli di Simulator.
Scroll ke bawah hampir ke akhir respons JSON. Perhatikan bahwa saat menelusuri intent yang cocok, Dialogflow akan menemukan bahwa ini adalah NO_MATCH dan memunculkan peristiwa tidak cocok.
- Beralihlah ke tab Build dan buka Halaman Awal alur Liveaboard.
Secara default, setiap alur memiliki pengendali peristiwa untuk peristiwa bawaan tanpa kecocokan dan tanpa input. Pengendali peristiwa ini dibuat secara otomatis saat Anda membuat alur, dan tidak dapat dihapus.
- Klik pengendali peristiwa sys.no-match-default, lalu 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.
Mari kita lanjutkan ke {i>happy path<i} sekarang!
Happy path
Dalam kasus kedua ini, berpura-pura menjadi penyelam yang ingin memesan kapal pesiar selam 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 tiket pesawat ke Kepulauan Galapagos dan berikan detail perjalanan Anda. Anda tidak perlu menggunakan perintah yang sama persis di bawah ini. Cobalah bereksperimen.
- Buka Halaman Awal, lalu klik rute head.send.group.request. Scroll ke bawah ke bagian Transition yang memberi tahu Dialogflow halaman untuk bertransisi saat intent ini cocok.
- Tutup definisi Rute dan luaskan halaman Kumpulkan Info Lebih Lanjut. Perhatikan fulfillment 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 kami meneruskannya sebagai bagian dari input awal dan destination juga merupakan parameter intent. Saat halaman awalnya aktif, dan selama periode aktif, parameter formulir apa pun dengan nama yang sama seperti parameter intent akan otomatis ditetapkan ke nilai parameter sesi dan perintah terkait akan dilewati.
- Beralihlah ke tab Kelola, lalu klik intent permintaan grup head.send di bagian Intent. Lihat frasa pelatihan yang disediakan untuk intent ini dan bagian frasa pelatihan yang dianotasi.
- Pertimbangkan frase pelatihan "Saya perlu mengatur perjalanan ke Kosta Rika untuk 15 penyelam". "Kosta Rika" dianotasi dengan destination dan "15" dengan jumlah tamu. Ketika Anda menganotasi bagian dari frasa pelatihan, Dialogflow menyadari bahwa bagian tersebut hanyalah contoh nilai aktual yang akan disediakan oleh pengguna akhir saat runtime. Inilah alasan mengapa untuk input awal "Apakah Anda menawarkan penyewaan 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 untuk mengisi parameter formulir.
Input tidak valid
- Di panel Simulator, klik ikon Reset untuk memulai percakapan baru dengan agen.
- Nyatakan maksud untuk melakukan pemesanan grup, kali ini jangan beri tahu agen ke mana Anda ingin pergi dan jika Anda dimintai balasan tujuan dengan nilai acak yang bukan merupakan Kosta Rika, Galapagos, atau Meksiko.
- Di tab Kelola, klik Jenis entitas di bagian Sumber daya. Perhatikan dua tab: di bawah 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 entity destination untuk mencari tahu nilai yang cocok dengan entity tersebut. "Eropa" bukan salah satu entri dan itu juga bukan sinonim.
- Pada diagram alur, luaskan halaman Kumpulkan Info Lebih Lanjut yang berisi parameter formulir. Klik parameter destination.
- Di panel parameter, scroll ke bawah ke Bagian pengendali peristiwa perintah ulang, lalu klik pengendali peristiwa No-match default.
Pengendali peristiwa tingkat parameter ini secara khusus dimaksudkan untuk menangani input pengguna akhir yang tidak valid selama pengisian formulir. Karena "Eropa'' adalah input tidak terduga, peristiwa sys.no-match-default dipanggil, dan pengendali prompt ulang terkait yang ditentukan untuk peristiwa ini dipanggil. Bagian Agent says mencantumkan dua pesan permintaan ulang alternatif.
Bagus sekali! Kasus pengujian ini mewakili skenario umum yang diharapkan dapat ditangani dengan tepat oleh agen. Sangat sering pengguna mengajukan pertanyaan yang tidak dapat dijawab oleh bot atau mereka membuat permintaan yang tidak dapat dipenuhi oleh bot. Mendesain untuk longtail sangatlah rumit, artinya mengikuti jalur yang sudah biasa digunakan oleh sebagian besar pengguna. Pikirkan tentang semua hal yang tidak diinginkan dalam percakapan dan semua jalur yang tidak terduga atau tidak didukung yang mungkin diambil pengguna.
Kemajuan dalam pengenalan ucapan otomatis (ASR) berarti bahwa kami hampir selalu mengetahui secara persis apa yang dikatakan pengguna. Namun, menentukan apa yang dimaksud pengguna masih menjadi tantangan tersendiri. Ucapan sering kali tidak dapat dipahami secara terpisah; keduanya hanya dapat dipahami dalam konteks. Di bagian berikutnya dari codelab ini, kita akan mempelajari cara model bahasa besar (LLM) generatif terbaru dari Google dapat membantu mengembalikan dialog ke alur percakapan dan memajukan percakapan.
5. Mengaktifkan penggantian generatif
Apa itu 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 garis ketika pengguna memintanya, dan meringkas percakapan. Pada pengujian pertama yang kami lakukan, agen gagal menjawab pertanyaan "Apa itu liveaboard?" karena kami belum menciptakan maksud untuk itu dan merancang alurnya untuk menangani jenis pertanyaan umum terkait selam skuba dan liveaboard.
Meskipun dengan intent yang kuat, masih ada ruang untuk error. Pengguna mungkin menonaktifkan skrip dengan tetap diam (error Tidak Ada Input) atau mengatakan sesuatu yang tidak terduga (error Tidak Cocok). 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 minimal layak yang serupa sering kali tidak cukup baik. Perintah error harus terinspirasi oleh Prinsip Kooperatif yang menyatakan bahwa komunikasi yang efisien bergantung pada asumsi bahwa ada kerja sama yang kurang efektif antara peserta percakapan.
Di bagian berikutnya, kita akan melihat cara mengonfigurasi fitur penggantian generatif untuk meningkatkan cakupan intent dan menyederhanakan penanganan error demi pengalaman pelanggan yang lebih baik.
Mengaktifkan penggantian generatif untuk seluruh peristiwa tanpa kecocokan di alur
Anda dapat mengaktifkan penggantian generatif pada pengendali peristiwa tidak cocok yang digunakan dalam alur, halaman, atau selama pengisian parameter. Ketika penggantian generatif diaktifkan untuk peristiwa tanpa kecocokan, setiap kali peristiwa tersebut terpicu, Dialogflow akan mencoba menghasilkan respons yang dihasilkan yang akan diucapkan kembali kepada pengguna. Jika pembuatan respons tidak berhasil, respons reguler yang ditentukan oleh agen akan dikirimkan.
Anda dapat mengaktifkan penggantian generatif di agen Anda pada pengendali peristiwa tidak ada, yang dapat digunakan dalam fulfillment alur, halaman, atau parameter.
Kami akan mulai mengaktifkan penggantian generatif untuk seluruh peristiwa tanpa pencocokan default dalam alur Liveaboard.
- Luaskan Halaman Awal alur.
- Klik sys.no-match-default di bagian Event handler.
- Centang Aktifkan penggantian generatif di bagian Respons agen, lalu klik Simpan
Mengaktifkan penggantian generatif pada peristiwa ketidakcocokan 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 jumlah tamu.
- Buka pengendali peristiwa No-match target (scroll ke bawah ke bagian Reprompt event handler, lalu klik pengendali peristiwa No-match default)
- Centang Aktifkan penggantian generatif di bagian Respons agen
- Terakhir, klik Simpan
- Sekarang ulangi langkah-langkah yang tepat guna mengaktifkan penggantian generatif untuk destination dan email-address
Bagus sekali! Anda telah mengaktifkan penggantian generatif untuk menangani intent yang tidak terduga dan nilai parameter yang tidak valid. Selanjutnya, kita akan melihat cara mengonfigurasi fitur penggantian generatif dengan prompt teks yang menginstruksikan LLM cara merespons.
6. Mengonfigurasi penggantian generatif
Fitur penggantian generatif meneruskan permintaan ke model bahasa besar untuk menghasilkan respons yang dihasilkan. Permintaan tersebut berbentuk perintah teks yang merupakan perpaduan antara bahasa alami dan informasi tentang status agen dan percakapan saat ini. Fitur ini dapat dikonfigurasi dengan beberapa cara:
- Pilih perintah spesifik (sudah ditentukan) yang akan digunakan untuk pembuatan respons.
- Menentukan perintah kustom.
Memilih perintah yang sudah ditentukan
- Di konsol Dialogflow CX, klik Agent Settings
- Buka tab ML, lalu subtab AI Generatif.
Fitur ini akan langsung berfungsi dengan dua perintah template, yaitu template Default (yang tidak terlihat) dan template Example yang memandu Anda menulis perintah Anda sendiri.
- Pilih template Example dan klik tombol Edit di sebelah kanan menu dropdown untuk memeriksanya.
Dengan prompt yang sudah ditentukan, agen virtual dapat menangani situasi percakapan dasar. Contoh:
- Sapa dan ucapkan selamat tinggal kepada pengguna.
- Ulangi apa yang dikatakan agen jika pengguna tidak mengerti.
- Tahan tali saat pengguna memintanya.
- Ringkas percakapan.
Mari kita coba tentukan prompt teks tertentu untuk agen Divebooker.
7. Menentukan perintah Anda sendiri
- Salin perintah di bawah dan tempelkan di area Text prompt
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 Save as a new template untuk menyimpan perintah baru sebagai template baru (pilih nama template baru) dan Save di pojok kanan bawah panel.
- Untuk benar-benar menjadikan prompt yang baru dibuat sebagai perintah aktif, Anda juga perlu Menyimpan setelan.
Saat menulis perintah teks Anda sendiri, pastikan dengan jelas, ringkas, dan preskriptif. Cara pembuatan perintah ke LLM dapat sangat memengaruhi kualitas respons LLM. LLM dilatih untuk mengikuti instruksi, jadi makin terlihat 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 Anda inginkan untuk dilakukan oleh LLM. Tidak lebih, tidak kurang. Jaga agar tetap lengkap dan singkat.
- Selain itu, prompt harus spesifik dan terdefinisi dengan baik, menghindari bahasa yang tidak jelas atau ambigu.
- Uraikan tugas-tugas yang 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 pada satu waktu dan mengurangi kemungkinan error atau kebingungan.
- Untuk meningkatkan kualitas respons, tambahkan contoh dalam perintah Anda. LLM belajar dalam konteks dari contoh-contoh tentang cara merespons.
Saat membuat perintah, selain deskripsi natural language tentang jenis konteks yang harus dibuat, placeholder berikut juga dapat digunakan:
$conversation
Percakapan antara agen dan pengguna, tidak termasuk ucapan pengguna terakhir. Anda dapat menyesuaikan awalan belokan (mis.: "Manusia", "AI" atau "Anda", "Agen") dalam prompt teks$last-user-utterance
Ucapan pengguna terakhir.$flow-description
Deskripsi alur dari alur aktif.$route-descriptions
Deskripsi intent dari intent yang aktif.
Setelah kita memiliki prompt teks awal, tugas berikutnya adalah memastikan flow dan intent memiliki deskripsi yang baik.
8. Menambahkan deskripsi alur dan intent
Menambahkan deskripsi alur
- Untuk menambahkan deskripsi ke alur Liveaboard, akses setelan alur dengan mengarahkan mouse ke atas alur di bagian Flow.
- Klik tombol opsi .
- Pilih Flow settings dan tambahkan deskripsi berikut (atau yang serupa):
search, find and book liveaboards
.
- Klik Simpan
Menambahkan deskripsi intent
- Sekarang, mari kita tambahkan deskripsi yang baik ke intent head.send.group.request. Beralihlah ke tab Manage, pilih Intent di bagian Resources, lalu pilih intent 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
Perlu diperhatikan bahwa deskripsi berisi informasi penting seperti jumlah penumpang minimum dan maksimum yang diizinkan di kapal. Ingatlah hal ini.
- Klik Simpan
Dan, selesai! Anda telah mengaktifkan penggantian generatif pada pengendali peristiwa yang tidak cocok untuk fulfillment alur dan parameter. Anda juga telah menentukan perintah teks Anda sendiri yang akan diteruskan oleh fitur penggantian generatif ke model bahasa besar untuk menghasilkan respons generatif.
Di bagian berikutnya, Anda akan menguji ulang agen untuk melihat bagaimana agen tersebut dapat menjawab pertanyaan sulit yang sama seperti sebelumnya.
9. Uji ulang agen Anda
Setelah mengonfigurasi dan mengaktifkan penggantian penggantian generatif pada agen virtual, Anda dapat mengajukan pertanyaan sulit yang serupa dan melihat bagaimana agen tersebut menangani responsnya.
Klik Agen Pengujian untuk membuka Simulator lagi.
Tanyakan lagi kepada agen tentang liveaboard dan penyelaman liveaboard. Mulai sekarang, perhatikan bagaimana setiap dialog memiliki pesan yang ditetapkan pengguna serta respons yang dihasilkan yang ditandai di kotak merah.
Apakah Anda mendapatkan respons informatif yang menarik dan bukan perintah ulang yang umum? Bagus! Setelah memberikan deskripsi tugas yang jelas dan ringkas yang Anda inginkan untuk dipenuhi oleh agen (dalam perintah teks dan deskripsi alur), bot Anda sekarang jauh lebih cerdas dalam menjawab pertanyaan terperinci tanpa membuat intent yang spesifik. Pelanggan Anda akan senang karena agen dapat memberikan respons yang lebih tepat, bukannya respons yang tidak dapat ditindaklanjuti.
Jangan malu-malu dan tantang agen tersebut, tanyakan apakah ia bisa membantu Anda menemukan kursus selam skuba karena Anda belum menjadi penyelam bersertifikat.
Benar, saat ini kami belum merancang agen untuk membantu kursus selam. Bagaimana agen mengetahui hal tersebut? Dalam perintah teks, kami telah menguraikan dengan jelas apa yang dapat dan tidak dapat dibantu oleh agen. "Saat ini, Anda tidak dapat membantu pelanggan dengan kursus dan menyelam di darat. Anda tidak dapat merekomendasikan toko menyelam lokal dan resor selam"
Sekarang, uji ulang skenario yang menyenangkan dan perkaya percakapan. Mari kita lihat perubahan pengalamannya.
Jika Dialogflow cocok dengan intent atau mencoba mengumpulkan parameter sesuai desain alur, Dialogflow akan menampilkan fulfillment yang ditentukan pada waktu desain. Saat pengguna menonaktifkan skrip yang meminta ringkasan detail perjalanan atau menawarkan untuk memberikan nomor telepon mereka, fitur penggantian generatif akan mulai berperan.
Bagus! Anda telah menguji ulang skenario yang menyenangkan dan semoga Anda memiliki percakapan yang menyenangkan dan natural dengan agen sedekat mungkin dengan pengalaman Anda dengan agen langsung.
Sayangnya, dalam percakapan bisa terjadi hal-hal yang tidak diinginkan. Mari kita lakukan pengujian lain. Kali ini saat Anda diminta untuk memberikan jumlah tamu, sebutkan angka yang lebih besar dari 15.
Ada beberapa hal yang perlu ditekankan di sini:
- Mengapa 20 bukan angka yang valid? Karena kami telah menetapkan batas jumlah tamu yang diizinkan sebagai bagian dari deskripsi intent: "Agen mengumpulkan info seperti periode keberangkatan, tujuan, jumlah tamu***(min 4 maks 15 orang)*** *, detail kontak*" kami. Respons generatif yang ditampilkan LLM adalah "Maaf, kami hanya dapat membantu pemesanan grup maksimal 15 tamu" sangat sesuai dengan pembatasan yang telah kami berikan mengenai jumlah tamu. Untuk menegakkan hal ini lebih lanjut, number-of-guest adalah entity RegExp kustom yang hanya cocok dengan angka yang disertakan dalam rentang 4 - 15.
- Percakapan berlanjut karena pada akhirnya pengguna masih tertarik untuk mendapatkan penawaran untuk 15 penyelam. Hal ini sering terjadi dalam percakapan alami. Kita cukup sering berubah pikiran. Perhatikan bagaimana agen kooperatif dan perlahan mengarahkan pengguna kembali ke jalur yang berhasil.
Desain percakapan melibatkan pembuatan skrip pada setengah bagian dialog, berharap cukup kuat sehingga siapa pun dapat turun tangan dan bertindak untuk separuh lainnya. Saat mendesain untuk longtail, developer harus fokus pada apa yang dapat dikatakan pengguna di setiap langkah dalam dialog Anda untuk menentukan rute, pengendali, dan parameter Anda. Inilah alasan kami menambahkan fitur penggantian generatif ke Dialogflow CX: agar developer dapat berfokus pada prinsip-prinsip desain percakapan dan mengurangi detail implementasi untuk memberikan pengalaman percakapan yang efektif kepada pengguna.
Mari kita lakukan satu tes 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 destination, permintaan dikirim ke model bahasa besar untuk menghasilkan respons yang dihasilkan. Respons yang telah ditentukan sebelumnya (di bagian Agen menyatakan) akan diabaikan.
Kotak teks di bawah ini akan membantu Anda lebih memahami bagaimana placeholder membantu membentuk permintaan yang dikirim ke model bahasa besar.
Ini adalah prompt 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:
Dalam kotak teks di bawah, saya telah menyertakan input yang diterima oleh model bahasa besar (LLM) dan output yang berisi respons yang dihasilkan dan akan dikatakan 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.
Serupa dengan pengujian yang dilakukan sebelumnya, respons yang dikirim kembali ke pengguna dihasilkan oleh model dan bergantung pada informasi yang kami berikan sebagai bagian dari deskripsi intent: "Tujuan harus berupa salah satu dari yang berikut di Pasifik: Kosta Rika, Meksiko, Kepulauan Galapagos"
Ubah daftar frasa yang dilarang
Fitur penggantian generatif dapat dikonfigurasi dalam beberapa cara:
- Pilih perintah spesifik (sudah ditentukan) yang akan digunakan untuk pembuatan respons.
- Menentukan perintah kustom.
- Mengubah daftar frasa yang dilarang.
Sejauh ini kita telah melihat dua cara pertama. Mari kita pelajari yang ketiga.
- Di Agent Settings, buka tab ML, lalu subtab Generative AI.
- Di bagian Frasa yang diblokir, tambahkan kalimat berikut ke daftar:
Dangerous country
Hateful place
Medical assistance
- Klik Simpan.
- Klik ikon Reset dan uji ulang skenario terakhir. Alih-alih menyediakan tujuan menyelam yang indah di seluruh dunia, masukkan salah satu frasa yang dilarang.
Perintah dan respons yang dihasilkan akan dibandingkan dengan daftar frasa yang dilarang. Frasa yang dilarang adalah frasa yang dilarang untuk AI generatif. Jika input mencakup frasa yang diblokir, atau frasa yang dianggap tidak aman, pembuatan tidak akan berhasil, dan respons reguler yang ditentukan (di bagian Agen menyatakan dalam fulfillment yang sama) akan diterbitkan sebagai gantinya.
Luar biasa! Kita telah membahas berbagai situasi percakapan di mana respons generatif dapat benar-benar membuat perbedaan. Jangan ragu untuk terus melakukan pengujian.
10. Selamat
Selamat, Anda telah menyelesaikan codelab! Waktunya bersantai.
Anda berhasil membuat agen virtual dan mengaktifkan penggantian generatif di pengendali peristiwa no-match
yang digunakan dalam alur, dan selama pengisian parameter.
Fitur penggantian generatif yang digabungkan dengan deskripsi intent dan alur yang baik dapat memberikan respons spesifik dan kooperatif dari agen, bukan perintah umum seperti "Maaf, saya tidak yakin cara membantu" atau "Maaf, Anda memasukkan opsi yang tidak valid". Perintah error yang dibuat oleh model bahasa besar dapat secara perlahan mengarahkan pengguna kembali ke jalur yang berhasil atau mereset ekspektasi mereka tentang apa yang mungkin dan tidak mungkin.
Jangan ragu untuk menguji situasi percakapan lainnya dan mempelajari fungsionalitas 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 telah dibuat.
- Di Konsol Google Cloud, buka halaman APIs and Services lalu nonaktifkan Dialogflow API.
Bacaan lebih lanjut
Terus pelajari AI percakapan dan AI generatif dengan panduan dan referensi berikut:
- Dokumentasi untuk Dialogflow CX
- Dokumentasi untuk Penggantian Generatif
- AI Generatif di Google Cloud
- Pengantar PaLM
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.