Pengambilan keputusan yang tepat menggunakan generator Dialogflow CX dan penyimpanan data

1. Ringkasan

Terakhir Diperbarui: 10-10-2023

Yang akan Anda build

Dalam codelab ini, Anda akan menggunakan Vertex AI Conversation dan Dialogflow CX untuk membangun, men-deploy, dan mengonfigurasi agen virtual guna membantu orang yang ingin mendonorkan darah dan memastikan mereka memenuhi persyaratan kelayakan yang diperlukan. Agen akan menggunakan data publik yang nyata dan model bahasa besar (LLM) generatif Google selama fulfillment Dialogflow CX.

Fitur yang akan Anda gunakan

Untuk menyelesaikan codelab ini, Anda akan mengonfigurasi dan menggunakan tiga fitur berbeda:

Agen penyimpanan data

Fitur Vertex AI Conversation membuat agen Dialogflow khusus, yang disebut agen penyimpanan data.

Dengan fitur ini, Anda memberikan URL situs, data terstruktur atau data tidak terstruktur (penyimpanan data), lalu Google akan mengurai konten Anda dan membuat agen virtual yang didukung oleh penyimpanan data dan model bahasa besar. Kemudian, pelanggan dan pengguna akhir Anda dapat melakukan percakapan dengan agen dan mengajukan pertanyaan tentang konten. Lihat pengantar Vertex AI Conversation untuk mengetahui informasi tentang jenis agen ini.

Generator

Fitur generator adalah fitur Dialogflow CX yang memungkinkan developer menggunakan model bahasa besar (LLM) generatif terbaru Google dan perintah kustom untuk menghasilkan respons agen saat runtime. Generator dapat menangani respons umum yang melibatkan pengetahuan umum dari set data tekstual besar yang digunakan untuk melatihnya atau konteks dari percakapan.

Penggantian generatif

Fitur penggantian respons generatif menggunakan model bahasa besar (LLM) generatif terbaru Google untuk menghasilkan respons agen virtual saat input pengguna akhir tidak cocok dengan intent atau parameter untuk pengisian formulir. Fitur ini dapat dikonfigurasi dengan perintah teks yang menginstruksikan cara LLM merespons. Anda dapat menggunakan perintah teks standar atau menambahkan perintah Anda sendiri. 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. Jika Anda ingin mempelajari lebih lanjut penggantian generatif, coba codelab ini.

Yang akan Anda pelajari

  • Cara membuat agen penyimpanan data dari data tidak terstruktur
  • Cara menggunakan handler pengetahuan untuk memungkinkan pengguna akhir melakukan percakapan dengan agen virtual tentang konten yang ditambahkan ke penyimpanan data.
  • Cara mengonfigurasi perintah teks generator dan membuatnya menjadi kontekstual menggunakan placeholder perintah generator bawaan.
  • Cara menandai kata sebagai placeholder perintah generator, lalu mengaitkannya dengan parameter sesi dalam fulfillment untuk menggunakan nilainya selama eksekusi.
  • Cara mengonfigurasi generator untuk menangani respons yang melibatkan pengetahuan dari set data tekstual besar dan konteks dari percakapan saat ini.
  • Cara membuat email formal menggunakan generator
  • Cara menguji agen Anda dan menyimulasikan pertanyaan pelanggan yang memicu respons yang dihasilkan

Yang Anda butuhkan

  • Project Google Cloud
  • Browser seperti Chrome

2. Mengaktifkan API

Sebelum dapat membuat agen penyimpanan data di Vertex AI Conversation, Anda harus mengaktifkan Dialogflow API serta Vertex AI Search and Conversation API.

Untuk mengaktifkan Dialogflow API, ikuti langkah-langkah berikut:

  1. Di browser Anda, buka halaman Detail Layanan Dialogflow API.
  2. Klik tombol Enable untuk mengaktifkan Dialogflow API di project Google Cloud Anda.

Untuk mengaktifkan Vertex AI Search and Conversation API, ikuti langkah-langkah berikut:

  1. Di Konsol Google Cloud, buka konsol Vertex AI Search and Conversation.
  2. Baca dan setujui Persyaratan Layanan, lalu klik Continue and activate the API.

3. Membuat aplikasi chat baru dan penyimpanan data untuk aplikasi Anda

Sekarang, Anda akan membuat aplikasi chat baru untuk agen virtual dan mengonfigurasinya dengan sumber data. Tujuan agen yang akan Anda buat adalah untuk membantu pelanggan yang memiliki pertanyaan tentang kelayakan donor darah. Anda akan menggunakan Australian Red Cross Lifeblood sebagai sumber tepercaya dan membuat penyimpanan data berdasarkan data tidak terstruktur dari situs kelayakan donor darah tersebut.

  1. Untuk membuat aplikasi chat baru di Vertex AI Conversation, Anda dapat:
    1. Buka konsol Vertex AI Conversation, lalu klik +New app di dekat bagian atas konsol.
    2. Buka konsol Dialogflow CX, klik +Create new agent, lalu pilih opsi Auto-generate. Kemudian, Anda akan dialihkan ke langkah berikutnya di konsol Vertex AI Conversation.
  2. Dari konsol Vertex AI Conversation, pilih Chat sebagai jenis aplikasi yang ingin Anda buat.
  3. Masukkan Nama perusahaan Save a Life. Parameter ini digunakan untuk menentukan perusahaan yang diwakili agen Anda dan cakupan agen Anda.
  4. Tentukan Agent name Blood Donation Agent.
  5. Klik Lanjutkan.
  6. Klik Create new data store.
  7. Pilih Cloud Storage sebagai sumber data untuk penyimpanan data Anda.
  8. Tentukan folder Google Cloud Storage berikut yang berisi data contoh untuk codelab ini, dan perhatikan bahwa awalan gs:// tidak diperlukan:
    cloud-samples-data/dialogflow-cx/arc-lifeblood
    
  9. Pilih Unstructured documents sebagai jenis data yang Anda impor.
  10. Klik Lanjutkan.
  11. Tentukan Data store name, yaitu Australian Red Cross Lifeblood Unstructured.
  12. Klik Create untuk membuat penyimpanan data.
  13. Di daftar penyimpanan data, pilih Australian Red Cross Lifeblood Unstructured yang baru dibuat.
  14. Klik Create untuk membuat aplikasi chat.

Selamat! Anda telah selesai membangun aplikasi chat berbasis pengetahuan yang siap membantu calon pendonor darah, jadi luangkan waktu untuk merayakannya.

Namun, masih ada tugas lain yang perlu dilakukan untuk membuat agen dapat diakses oleh pengguna Anda. Di bagian berikutnya, Anda akan menggunakan handler pengetahuan untuk mengaktifkan percakapan antara agen dan pengguna akhir tentang persyaratan kelayakan.

4. Mengonfigurasi agen untuk menjawab FAQ terkait kelayakan donor darah

Memberikan perintah penyimpanan data

Saat proses pengumpulan dokumen berjalan di latar belakang, mari kita beri agen sebuah merek dengan mengedit perintah penyimpanan data.

  1. Dari konsol Vertex AI Conversation, klik nama aplikasi chat Anda, yang akan mengalihkan Anda ke konsol Dialogflow CX untuk pengujian dan penyesuaian lebih lanjut.
  2. Di konsol Dialogflow CX dan dari dalam agen Anda, klik Agent settings (sudut kanan atas halaman), lalu buka tab ML, dan terakhir buka tab Generative AI.

Membuka perintah penyimpanan data

  1. Isi formulir seperti di bawah untuk membuat perintah penyimpanan data berikut: Your name is Donate, and you are a helpful and polite chatbot at Save a life, a fictitious organization. Tugas Anda adalah membantu humans with eligibility information.

Isi formulir untuk membuat perintah Anda

Mengaktifkan penggantian respons generatif untuk peristiwa tidak cocok pada Default Start Flow

  1. Beralih ke tab Build dan buka Start Page.
  2. Klik handler peristiwa sys.no-match-default. Kecuali jika kotak sudah dicentang, aktifkan fitur penggantian respons generatif.

Mengaktifkan penggantian respons generatif saat tidak ada kecocokan alur

Periksa penyimpanan data agen

Di Halaman Mulai, klik Edit penyimpanan data untuk melihat Setelan penyimpanan data.

Mengedit penyimpanan data

Penyimpanan data yang telah Anda buat sebelumnya sudah dipilih untuk Anda oleh Dialogflow.

Mengaitkan penyimpanan data yang telah Anda buat

Scroll ke bawah ke Agent Responses di bagian Fulfillment. Fulfillment adalah respons agen kepada pengguna akhir. Dialogflow telah mengisi Agent says dengan parameter $request.knowledge.answers[0] yang saat runtime berisi jawaban teratas untuk pertanyaan pengguna.

Respons agen berisi jawaban teratas untuk pertanyaan pengguna

5. Menguji agen

Setelah dokumen tersedia dan siap digunakan oleh agen Anda, periksa kualitas jawabannya.

Klik Test Agent untuk membuka Simulator lagi.

Menguji agen lagi

Ajukan pertanyaan yang Anda harapkan dapat ditemukan di halaman FAQ situs:

  • What age do I need to be to donate?
  • Can pregnant women donate?
  • I've just come back from a trip to Africa. Can I donate?
  • How can I schedule an appointment?

Memeriksa apakah jawaban berasal dari pusat informasi

Perhatikan bahwa jawaban diambil dari situs Australian Red Cross Lifeblood. Seperti yang dinyatakan di halaman ini, ada usia minimum dan maksimum untuk donor darah. Usia minimum adalah 18 tahun dan usia maksimum adalah 75 tahun untuk pendonor pertama kali. Bukti lebih lanjut bahwa kita menarik informasi dari penyimpanan data diberikan oleh ikon bintang kecil yang muncul pada respons agen dan oleh respons JSON asli.

Periksa respons JSON asli

Terakhir, mari kita coba dan tantang agen dengan pertanyaan yang sama sekali tidak terkait dengan donor darah.

Pengguna: "Bagaimana cuaca di Melbourne?"

Agen: "Maaf, kami tidak dapat membantu Anda terkait hal ini. Ada yang bisa saya bantu terkait informasi kelayakan?"

Jawaban ini berisi konten buatan AI dan berasal dari perintah teks yang telah dibuat oleh Dialogflow, dimulai dari setelan konektor jawaban yang diberikan sebelumnya: "Your name is Donate, and you are a helpful and polite chatbot at Save a Life. Tugas Anda adalah membantu manusia mendapatkan informasi kelayakan". Perintah teks ini berisi nama perusahaan, nama agen, dan yang paling penting, cakupannya yang digunakan oleh Dialogflow untuk membuat respons agen.

Bagus! Sejauh ini, Anda menggunakan penyimpanan data untuk membantu menjawab pertanyaan umum (FAQ) yang dimiliki orang-orang terkait donor darah. Di bagian berikutnya dari codelab ini, kita akan melihat cara mengikat perintah teks generator ke konten yang sama untuk membuat keputusan yang tepat.

6. Menyiapkan agen untuk kuis kelayakan

Tugas kita selanjutnya adalah mendesain agen untuk menentukan kelayakan pengguna sebagai pendonor darah. Ada persyaratan ketat yang harus dipenuhi pendonor seperti usia, berat badan, kondisi kesehatan, perjalanan baru-baru ini, dll. Untuk cakupan codelab ini, kita hanya akan mempertimbangkan usia dan berat badan. Generator akan menggunakan model bahasa besar (LLM) Google untuk membuat keputusan yang tepat secara dinamis berdasarkan konteks percakapan dan pusat informasi.

Mengonfigurasi rute dan parameter baru

  1. Buka Halaman Mulai dan klik Edit penyimpanan data
  2. Ubah respons agen yang ada menjadi $request.knowledge.answers[0] Would you like to take the eligibility quiz to find out if you can donate blood, and start changing lives?.

Memperkaya respons agen terhadap FAQ pengguna

  1. Klik tombol Simpan
  2. Sekarang kita perlu mendesain agen untuk menangani respons "ya" dan "tidak". Untuk memulai, buat intent confirmation.yes dan intent confirmation.no. Ikuti panduan ini tentang penggunaan ulang maksud.
  3. Kemudian, di Start Page, buat rute untuk maksud confirmation.yes yang bertransisi ke halaman baru Eligibility Quiz.

Buat rute untuk intent confirmation.yes

Saat confirmation.yes dipicu, transisi ke halaman baru, yaitu Kuis Kelayakan.

  1. Seperti yang disebutkan sebelumnya, kita akan menyederhanakan kuis dan hanya mempertimbangkan usia dan berat badan pengguna untuk menentukan apakah mereka memenuhi syarat untuk mendonasi atau tidak. Buka halaman Eligibility Quiz dan tambahkan parameter formulir baru age-weight, pilih @sys.any sebagai jenis entity. Berikan "What is your age and weight?" sebagai pemenuhan perintah awal. Kita ingin mengumpulkan usia dan berat badan sekaligus. Simpan semua perubahan.

Buat parameter

Membuat dan mengonfigurasi generator kelayakan

Fitur generator adalah fitur Dialogflow CX yang memungkinkan developer menggunakan model bahasa besar (LLM) generatif terbaru Google selama fulfillment Dialogflow CX. Generator akan menghasilkan respons agen saat runtime. Generator dapat menangani respons umum yang melibatkan pengetahuan umum dari set data tekstual besar yang digunakan untuk melatihnya atau konteks dari percakapan.

Kita akan membuat generator baru yang akan membandingkan informasi yang diberikan oleh pengguna (seperti usia dan berat badan) dengan persyaratan kelayakan untuk menentukan apakah pengguna dapat mendonorkan darah.

  1. Di konsol Dialogflow CX, buka tab Manage, pilih Generators, lalu klik Create new.

Membuat generator baru

  1. Selanjutnya, masukkan nama tampilan yang deskriptif dan tulis perintah teks. Tetap gunakan setelan default untuk kendali mutu model. Kemudian, klik Simpan untuk membuat generator.
    • Nama tampilan: Blood Donation Eligibility
    • Perintah teks: Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. Weight should be above 50 Kg. The user age and weight is $last-user-utterance. Be nice and tell the user if they are eligible to donate (also tell them why not in case)

Perintah teks dikirim ke model generatif selama fulfillment saat runtime. Pertanyaan atau permintaan harus jelas agar model dapat menghasilkan respons yang memuaskan. Anda dapat menggunakan placeholder perintah generator bawaan khusus dalam perintah teks:

  • $conversation Percakapan antara agen dan pengguna, tidak termasuk ucapan pengguna yang terakhir.
  • $last-user-utterance Ucapan terakhir pengguna.

Perintah teks yang telah Anda konfigurasi mengharapkan pengguna memberikan usia dan berat badan dalam satu giliran percakapan (the `$last-user-utterance``).

Menggunakan generator dalam fulfillment dan mengonfigurasi semua parameter yang diperlukan

  1. Di halaman Eligibility Quiz, tambahkan rute baru yang akan terjadi saat semua parameter telah diisi. Masukkan persyaratan kondisi $page.params.status = "FINAL", lalu klik Simpan.

Tambahkan rute baru yang akan terjadi saat semua parameter telah diisi

  1. Buka bagian Generators di panel Fulfillment, lalu luaskan. Kemudian, klik Add generator dan pilih generator Blood Donation Eligibility. Setelah memilih generator, Anda perlu menentukan parameter output yang akan berisi hasil generator setelah eksekusi.

Pilih generator “Blood Donation Eligibility”, kaitkan placeholder perintah dengan parameter sesi, dan tentukan parameter output

  1. Gunakan parameter output dalam respons agen dan simpan rute. Sekarang Anda siap menguji semuanya.

Menggunakan parameter output dalam respons agen

7. Menguji ulang agen Anda

Klik Test Agent untuk membuka Simulator lagi.

Uji agen lagi

Di Simulator, mulai percakapan baru dengan agen. Pertama, tanyakan persyaratan usia, lalu lanjutkan ke kuis kelayakan. Uji jalur "eligible" terlebih dahulu, jadi masukkan usia antara 18-75 dan berat di atas 50 Kg.

Jalur yang memenuhi syarat

Kemudian, periksa apakah pemeriksaan kelayakan gagal jika salah satu atau kedua persyaratan tidak terpenuhi.

Jalur yang tidak memenuhi syarat

Bagus, generator berfungsi seperti yang diharapkan. Atau tidak? Apa yang terjadi jika pengguna memberikan usia, tetapi tidak memberikan berat badan (atau sebaliknya)?

Memberikan usia, tetapi tidak memberikan berat badan

8. Penyesuaian perintah generator

Mengumpulkan usia dan berat badan sekaligus sepertinya tidak berfungsi, kecuali jika baik usia maupun berat badan diberikan. Sebagai gantinya, kita harus membuat formulir yang mengumpulkan kedua nilai sebagai parameter entity. Untuk membuat perintah kontekstual dari semua persyaratan kelayakan (seperti usia dan berat), kita dapat menggunakan placeholder dengan menambahkan $ sebelum kata. Lalu, kita akan mengaitkan placeholder perintah generator ini dengan parameter sesi dalam fulfillment dan placeholder tersebut akan digantikan oleh nilai parameter sesi selama eksekusi.

  1. Buka halaman Eligibility Quiz dan tambahkan dua parameter formulir terpisah: satu untuk berat dan satu untuk usia. Pilih @sys.number-integer sebagai jenis entity dan tandai parameter yang diperlukan. Berikan fulfillment perintah awal seperti How old are you? dan What is your correct weight?. Simpan semua perubahan.

Formulir kelayakan

  1. Sebelum mengubah perintah teks generator karena kita akan menambahkan dua placeholder kustom baru, kita harus menghapus generator dari pemenuhan rute terlebih dahulu. Klik Simpan.

Menghapus generator

  1. Buka tab Manage, pilih Generators, lalu perbarui perintah teks generator Blood Donation Eligibility dengan: Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. The weight must be at least 50 kg. The user is $age years old and weighs $weight Kg. Craft an email and politely explain to the user if they're eligible to donate and if not why.. Klik Simpan.

Perhatikan bahwa kita tidak hanya membuat perintah teks kontekstual dari parameter formulir usia dan berat, tetapi kita juga telah mengubah kalimat terakhir agar dapat membuat email formal kepada pengguna yang berisi hasil resmi kuis kelayakan.

Mengonfigurasi ulang perintah teks

  1. Di halaman Eligibility Quiz, pilih rute dan luaskan bagian Generators di panel Fulfillment. Kemudian, klik Add generator dan pilih generator Blood Donation Eligibility. Setelah memilih generator, Anda perlu mengaitkan placeholder perintah baru dengan parameter sesi masing-masing. Selain itu, Anda perlu menyetel ulang parameter output. Klik Simpan.

Memperbarui binding generator

  1. Uji agen lagi. Pemeriksaan kelayakan kini mempertimbangkan usia dan berat badan, dan kata-katanya telah berubah dari gaya percakapan menjadi respons yang lebih sopan dan siap dikirim tanpa memerlukan interaksi manusia.

Email yang menyatakan bahwa pengguna tidak memenuhi syarat

Email yang menyatakan bahwa pengguna memenuhi syarat

9. Selamat

Selamat, Anda telah menyelesaikan codelab ini.

Selamat, Anda telah menyelesaikan codelab.

Hari ini kita telah menyelidiki generator dalam konteks kuis kelayakan. Anda telah melihat bahwa generator menggunakan LLM untuk menghasilkan respons agen dan jika didukung oleh pusat informasi, generator juga dapat membuat keputusan yang tepat. Tentu ada banyak kasus penggunaan lain yang dapat diterapkan dengan memanfaatkan generator dan penyimpanan data, dan kami tidak sabar untuk mengetahuinya.

Pembersihan

Anda dapat melakukan pembersihan berikut agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam codelab ini:

  • Untuk menghindari tagihan Google Cloud yang tidak perlu, gunakan konsol Google Cloud untuk menghapus project jika Anda tidak membutuhkannya.
  • Jika Anda menggunakan project Google Cloud yang sudah ada, hapus resource yang Anda buat untuk menghindari timbulnya biaya pada akun Anda. Untuk mengetahui informasi selengkapnya, lihat langkah-langkah untuk Menghapus aplikasi.
  • Jika Anda ingin menonaktifkan API untuk Vertex AI Conversation dan Dialogflow, buka halaman Detail Layanan Discovery Engine API, klik Disable API, lalu konfirmasi, dan buka halaman Detail Layanan Dialogflow API, klik Disable API, lalu konfirmasi.

Pelajari Lebih Lanjut

Lanjutkan mempelajari AI Percakapan dan AI Generatif dengan panduan dan referensi berikut:

Lisensi

Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.