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 membuat, 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 sungguhan dan model bahasa besar (LLM) generatif Google selama fulfillment Dialogflow CX.

Fitur yang akan Anda gunakan

Untuk menyelesaikan codelab, 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 mengurai konten Anda dan membuat agen virtual yang didukung oleh penyimpanan data dan model bahasa besar (LLM). Pelanggan dan pengguna akhir Anda kemudian dapat melakukan percakapan dengan agen dan mengajukan pertanyaan terkait konten. Lihat pengantar Vertex AI Conversation untuk mendapatkan informasi tentang jenis agen ini.

Generator

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

Penggantian generatif

Fitur penggantian 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 merespons LLM. Anda dapat menggunakan perintah teks yang telah ditentukan sebelumnya atau menambahkan perintah Anda sendiri. 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. Jika Anda ingin mempelajari lebih lanjut penggantian generatif, coba codelab ini.

Yang akan Anda pelajari

  • Cara membuat agen penyimpanan data dari data yang tidak terstruktur
  • Cara menggunakan pengendali pengetahuan untuk memungkinkan pengguna akhir melakukan percakapan dengan agen virtual tentang konten yang ditambahkan ke penyimpanan data.
  • Cara mengonfigurasi perintah teks generator dan menjadikannya kontekstual dengan 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 yang besar dan konteks dari percakapan saat ini.
  • Cara membuat email formal menggunakan generator
  • Cara menguji agen 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 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 Lanjutkan dan aktifkan API.

3. Membuat aplikasi chat dan data store baru 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 darah. Anda akan menggunakan Palang Merah Australia Lifeblood sebagai sumber kebenaran dan Anda akan membuat penyimpanan data berdasarkan data tidak terstruktur dari situs web kelayakan darah.

  1. Untuk membuat aplikasi chat baru di Vertex AI Conversation, Anda dapat:
    1. Buka konsol Vertex AI Conversation, lalu klik +Aplikasi baru di dekat bagian atas konsol.
    2. Buka konsol Dialogflow CX, klik +Create new agent, lalu pilih opsi Auto-generate, dan Anda akan dialihkan ke langkah berikut di konsol Vertex AI Conversation.
  2. Dari konsol Vertex AI Conversation, pilih Chat sebagai jenis aplikasi yang ingin Anda buat.
  3. Masukkan Company name Save a Life. Parameter ini digunakan untuk menentukan perusahaan yang diwakili oleh agen Anda dan cakupan agen Anda.
  4. Tentukan Agent name dari 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 sampel untuk codelab ini, dan perhatikan bahwa awalan gs:// tidak diperlukan:
    cloud-samples-data/dialogflow-cx/arc-lifeblood
    
  9. Pilih Dokumen tidak terstruktur sebagai jenis data yang Anda impor.
  10. Klik Lanjutkan.
  11. Tentukan Nama penyimpanan data dari Australian Red Cross Lifeblood Unstructured.
  12. Klik Create untuk membuat penyimpanan data.
  13. Dalam daftar penyimpanan data, pilih Australian Red Cross Lifeblood Unstructured yang baru dibuat.
  14. Klik Buat untuk membuat aplikasi chat.

Selamat! Anda sudah selesai membuat aplikasi chat berbasis pengetahuan yang siap membantu calon donatur. Jadi, luangkan waktu sejenak untuk merayakannya.

Namun, masih ada banyak pekerjaan yang harus dilakukan agar agen dapat diakses oleh pengguna Anda. Di bagian berikutnya, Anda akan menggunakan pengendali pengetahuan untuk memungkinkan percakapan antara agen dan pengguna akhir tentang persyaratan kelayakan.

4. Konfigurasi agen untuk menjawab FAQ kelayakan darah

Berikan dialog tanggal toko

Sementara proses pengumpulan dokumen sedang berjalan di latar belakang, beri nama brand kepada agen 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.

Buka dialog penyimpanan data

  1. Isi formulir di bawah ini untuk menghasilkan perintah penyimpanan data berikut: Nama Anda Donate, dan Anda adalah chatbot yang ramah dan sopan di Save a life, a fictitious organization. Tugas Anda adalah membantu humans with eligibility information.

Isi formulir untuk membuat perintah Anda

Mengaktifkan penggantian generatif untuk peristiwa tanpa kecocokan Alur Awal Default

  1. Beralihlah ke tab Build dan buka Start Page.
  2. Klik pengendali peristiwa sys.no-match-default. Aktifkan fitur penggantian generatif, kecuali jika kotak sudah dicentang.

Mengaktifkan penggantian generatif jika alur tidak cocok

Memeriksa penyimpanan data agen

Di Halaman Awal, klik Edit penyimpanan data untuk melihat setelan Penyimpanan data.

Edit penyimpanan data

Penyimpanan data yang Anda buat sebelumnya telah 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 pada 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 seberapa baik jawaban tersebut.

Klik Test Agent untuk membuka Simulator lagi.

Uji agen lagi

Ajukan pertanyaan yang Anda ingin temukan di halaman FAQ di 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?

Periksa jawaban berasal dari pusat informasi

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

Memeriksa respons JSON asli

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

Pengguna: "Bagaimana cuaca di Jakarta?"

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

Jawaban ini berisi konten buatan AI dan berasal dari perintah teks yang dibuat Dialogflow, dimulai dari setelan konektor pengetahuan yang disediakan sebelumnya: "Nama Anda adalah Donasi, dan Anda adalah chatbot yang berguna dan sopan di Save a Life. Tugas Anda adalah membantu manusia terkait informasi kelayakan". Perintah teks ini berisi nama perusahaan, nama agen, dan yang terpenting cakupannya yang digunakan Dialogflow untuk menghasilkan respons agen.

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

6. Menyiapkan agen untuk kuis kelayakan

Tugas kita selanjutnya adalah merancang agen untuk menentukan kelayakan pengguna dalam mendonorkan darah. Ada persyaratan ketat yang harus dipenuhi donatur seperti usia, berat badan, kondisi yang ada, perjalanan terbaru, dll. Untuk cakupan codelab ini, kami 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 Awal 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 “yes” dan "tidak" yang dihasilkan. Untuk memulai, buat intent confirmation.yes dan intent confirmation.no. Ikuti panduan ini tentang penggunaan ulang intent.
  3. Kemudian, di Halaman Awal, buat rute untuk intent confirm.yes yang bertransisi ke Kuis Kelayakan halaman baru.

Membuat rute untuk intent Confirm.yes

Ketikaconfirm.yes dipicu transisi ke halaman baru Kuis Kelayakan.

  1. Seperti yang disebutkan sebelumnya, kami akan menyederhanakan kuis dan hanya akan mempertimbangkan usia dan berat pengguna untuk menentukan apakah mereka memenuhi syarat untuk berdonasi atau tidak. Buka halaman Kuis Kelayakan dan tambahkan parameter formulir baru age-weight, pilih @sys.any sebagai jenis entitas. Berikan "What is your age and weight?" sebagai fulfillment perintah awal. Kami 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 dari Google selama fulfillment Dialogflow CX. Generator untuk menghasilkan respons agen pada runtime. Generator dapat menangani respons umum yang melibatkan pengetahuan umum dari {i>dataset<i} tekstual besar yang digunakan untuk melatihnya atau konteks dari percakapan.

Kami 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 memberikan donasi.

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

Membuat generator baru

  1. Berikutnya, berikan nama tampilan deskriptif dan tulis prompt teks. Biarkan setelan kontrol kualitas model default. Kemudian klik Save 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)

Prompt teks dikirim ke model generatif selama fulfillment saat runtime. Ini harus berupa pertanyaan atau permintaan yang jelas agar model dapat menghasilkan respons yang memuaskan. Anda dapat menggunakan placeholder perintah generator bawaan khusus di perintah teks Anda:

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

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

Menggunakan generator dalam fulfillment dan mengonfigurasi semua parameter yang diperlukan

  1. Di halaman Kuis Kelayakan, tambahkan rute baru yang akan terjadi setelah semua parameter 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 pada panel Fulfillment dan luaskan. Kemudian, klik Tambahkan generator dan pilih generator Kelayakan Donasi Darah. Setelah memilih generator, Anda perlu menentukan parameter output yang akan berisi hasil generator setelah dieksekusi.

Pilih generator “Kelayakan Donasi Darah”, kaitkan placeholder perintah dengan parameter sesi, dan tentukan parameter output

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

Menggunakan parameter output dalam respons agen

7. Uji ulang agen Anda

Klik Agen Pengujian untuk membuka Simulator lagi.

Uji agen lagi

Pada Simulator, mulai percakapan baru dengan agen. Tanyakan terlebih dahulu tentang persyaratan usia, lalu lanjutkan ke kuis kelayakan. Menguji "valid" jalur 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 iya kan? Apa yang terjadi jika pengguna memberikan usia tetapi bukan berat badan (atau sebaliknya)?

Berikan usia, tetapi bukan berat

8. prompt tuning generator

Mengumpulkan usia dan berat badan dalam satu bulan sebelumnya tampaknya tidak berhasil kecuali usia dan berat badan diberikan. Sebagai gantinya, sebaiknya buat formulir yang mengumpulkan kedua nilai tersebut sebagai parameter entity. Agar dialog konfirmasi tersebut sesuai dengan semua persyaratan kelayakan (seperti usia dan berat), kita dapat menggunakan placeholder dengan menambahkan $ sebelum kata. Nantinya, kita akan mengaitkan placeholder perintah generator ini dengan parameter sesi dalam fulfillment dan placeholder tersebut akan diganti dengan nilai parameter sesi selama eksekusi.

  1. Buka halaman Kuis Kelayakan 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 dapat mengubah prompt teks generator, karena kita akan menambahkan dua placeholder kustom baru, kita harus menghapus generator dari fulfillment rute terlebih dahulu. Klik Simpan.

Menghapus generator

  1. Buka tab Manage, pilih Generator dan perbarui perintah teks generator Kelayakan Donasi Darah 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 Save.

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

Mengonfigurasi ulang perintah teks

  1. Di halaman Kelayakan Kuis, pilih rute dan luaskan bagian Generator pada panel Fulfillment. Kemudian, klik Tambahkan generator dan pilih generator Kelayakan Donor Darah. Setelah memilih generator, Anda perlu mengaitkan placeholder perintah baru dengan parameter sesi masing-masing. Selain itu, Anda perlu mengatur ulang parameter output. Klik Save.

Mengupdate binding generator

  1. Uji ulang agen lagi. Saat ini, pemeriksaan kelayakan memperhitungkan usia dan berat badan, dan susunan katanya telah diubah dari nada bicara percakapan menjadi respons yang lebih sopan yang siap dikirim tanpa melibatkan calon manusia.

Email yang menyatakan 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 kami telah menyelidiki generator dalam konteks kuis kelayakan. Anda telah melihat bahwa generator menggunakan LLM untuk menghasilkan respons agen. Selain itu, jika didukung oleh pusat informasi, generator juga dapat membuat keputusan yang tepat. Tentu saja ada banyak kasus penggunaan lain yang dapat diimplementasikan dengan memanfaatkan generator dan penyimpanan data dan kami tidak sabar untuk mengenalnya.

Pembersihan

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

  • Untuk menghindari biaya Google Cloud yang tidak perlu, gunakan Konsol Google Cloud untuk menghapus project jika Anda tidak memerlukannya.
  • Jika Anda menggunakan project Google Cloud yang sudah ada, hapus resource yang dibuat untuk menghindari timbulnya biaya pada akun Anda. Untuk 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, lalu klik Disable API dan konfirmasi, lalu buka halaman Detail Layanan Dialogflow API, lalu klik Disable API lalu konfirmasi.

Pelajari Lebih Lanjut

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

Lisensi

Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.