Membangun Asisten Shopping Pintar dengan AlloyDB dan Vertex AI Agent Builder - Bagian 2

1. Ringkasan

Dalam lanskap retail yang serba cepat saat ini, memberikan layanan pelanggan yang luar biasa sekaligus memungkinkan pengalaman belanja yang dipersonalisasi adalah hal yang sangat penting. Kami akan membawa Anda dalam perjalanan teknis melalui pembuatan aplikasi chat berbasis pengetahuan yang dirancang untuk menjawab pertanyaan pelanggan, memandu penemuan produk, dan menyesuaikan hasil penelusuran. Solusi inovatif ini menggabungkan kecanggihan AlloyDB untuk penyimpanan data, mesin analisis internal untuk pemahaman kontekstual, Gemini (Model Bahasa Besar) untuk validasi relevansi, dan Agent Builder Google untuk membangun asisten percakapan yang cerdas dengan cepat.

Tantangan: Pelanggan retail modern mengharapkan jawaban instan dan rekomendasi produk yang sesuai dengan preferensi unik mereka. Metode penelusuran tradisional sering kali gagal menyediakan tingkat personalisasi ini.

Solusi: Aplikasi chat berbasis pengetahuan kami mampu mengatasi tantangan ini secara langsung. Solusi ini memanfaatkan basis pengetahuan lengkap yang berasal dari data retail Anda untuk memahami niat pelanggan, merespons secara cerdas, dan memberikan hasil yang sangat relevan.

Yang akan Anda build

Sebagai bagian dari lab ini (Bagian 2), Anda akan:

  1. Membangun agen Vertex AI Agent Builder
  2. Mengintegrasikan alat AlloyDB dengan agen

Persyaratan

  • Browser, seperti Chrome atau Firefox
  • Project Google Cloud dengan penagihan diaktifkan.

2. Arsitektur

Aliran Data: Mari kita lihat lebih dekat bagaimana data bergerak melalui sistem kita:

Proses transfer:

Data retail (inventaris, deskripsi produk, interaksi pelanggan) terus dimuat ke dalam AlloyDB.

Mesin Analisis:

Kami akan menggunakan AlloyDB sebagai mesin analisis untuk melakukan hal berikut:

  1. Ekstraksi Konteks: Mesin menganalisis data yang disimpan dalam AlloyDB untuk memahami hubungan antara produk, kategori, perilaku pelanggan, dll. sebagaimana berlaku.
  2. Pembuatan Embedding: Embeddings (representasi matematika teks) dihasilkan untuk kueri pengguna dan informasi yang disimpan dalam AlloyDB.
  3. Penelusuran Vektor: Mesin melakukan penelusuran kemiripan, membandingkan penyematan kueri dengan penyematan deskripsi produk, ulasan, dan data relevan lainnya. Tabel ini mengidentifikasi 25 "tetangga terdekat" yang paling relevan.

Validasi Gemini:

Potensi respons ini dikirim ke Gemini untuk dinilai. Gemini menentukan apakah konten tersebut benar-benar relevan dan aman untuk dibagikan kepada pengguna.

Pembuatan Respons:

Respons yang divalidasi disusun ke dalam array JSON dan seluruh mesin dikemas ke dalam Cloud Run Function serverless yang dipanggil dari Agent Builder.

Langkah-langkah di atas telah dibahas di bagian 1 lab.

Kita membahas detail teknis dalam membuat mesin analisis berbasis pengetahuan yang mendukung asisten belanja cerdas. Sekarang, mari kita pelajari cara kami memanfaatkan keajaiban Agent Builder untuk mewujudkan mesin ini dalam antarmuka percakapan. Pastikan Anda sudah menyiapkan URL endpoint sebelum memulai bagian 2. Langkah selanjutnya yang akan kita bahas di lab ini:

Interaksi Percakapan:

Agent Builder menyajikan respons kepada pengguna dalam format natural language, yang memfasilitasi dialog dua arah.

3. Sebelum memulai

Membuat project

  1. Di Konsol Google Cloud, di halaman pemilih project, pilih atau buat project Google Cloud.
  2. Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan diaktifkan pada sebuah project .
  3. Anda akan menggunakan Cloud Shell, yakni lingkungan command line yang berjalan di Google Cloud yang telah dilengkapi dengan bq. Klik Activate Cloud Shell di bagian atas Konsol Google Cloud.

Gambar tombol Aktifkan Cloud Shell

  1. Setelah terhubung ke Cloud Shell, Anda harus memastikan bahwa Anda sudah diautentikasi dan project ditetapkan ke project ID Anda menggunakan perintah berikut:
gcloud auth list
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda.
gcloud config list project
  1. Jika project Anda belum ditetapkan, gunakan perintah berikut untuk menetapkannya:
gcloud config set project <YOUR_PROJECT_ID>
  1. Mengaktifkan API yang diperlukan. Alternatif untuk perintah gcloud adalah melalui konsol dengan menelusuri setiap produk atau menggunakan link ini.

Jika ada API yang terlewat, Anda selalu dapat mengaktifkannya selama implementasi.

Baca dokumentasi untuk mempelajari perintah gcloud dan penggunaannya.

Catatan Penting: Selain itu, pastikan Anda telah menyelesaikan BAGIAN 1 dari lab untuk menyelesaikannya.

4. Pembuatan Agen

Memperkenalkan Agent Builder

Agent Builder adalah alat canggih dengan sedikit kode yang mendukung kami untuk membuat agen percakapan dengan cepat dan efisien. API ini menyederhanakan proses desain alur dialog, mengintegrasikan pusat informasi, dan menghubungkan ke API eksternal. Dalam kasus ini, kita akan menggunakan Agent Builder untuk terhubung secara lancar dengan endpoint Cloud Function yang kita bangun di Bagian 1, sehingga asisten belanja dapat mengakses pusat informasi retail dan merespons kueri pelanggan secara cerdas.

Membangun agen

Mari kita mulai membuat agen baru ini untuk menjawab pertanyaan pengguna tentang produk pakaian.

  1. Mulai dengan login ke platform Agent Builder. Jika Anda diminta untuk mengaktifkan API, klik LANJUTKAN DAN AKTIFKAN API.
  2. Klik "BUAT APLIKASI" dan berikan nama deskriptif kepada agen Anda (mis., "Asisten Belanja Retail").
  3. Klik Jenis Aplikasi "Agen".

462bb48664e9a14e.pngS

  1. kami. Beri agen nama deskriptif seperti "Asisten Belanja Retail" dan tetapkan region sebagai us-central1

10eceef44b1600d1.pngS

  1. Masukkan detail untuk agen:
  2. Ubah Nama Agen menjadi "Agen Shopping Retail".
  3. Tambahkan "Sasaran" di bawah:
You are a shopping assistant agent! Your job is to help the customer search for their ideal apparels, allow them to add items to their cart, remove items from their cart, and review items in their cart. Once a user is done searching, open the search results in a user friendly html page.

537a87a842aae897.png

  1. Simpan pada tahap ini dan kosongkan petunjuk untuk saat ini.
  2. Kemudian klik Tools dari menu navigasi dan klik CREATE.

2ffae953bbad38e5.pngS

Masukkan Nama Alat: Alat Shopping Retail

Masukkan Deskripsi Alat:

This tool refers to the dataset in the backend as the context information for product inventory. It takes as input the user's search text summarized by the agent and matches with the most appropriate list of items and returns as an array of items.

Masukkan Skema — OpenAPI dalam format YAML:

Ini adalah bagian tempat kita menggunakan endpoint backend untuk menjalankan agen. Salin spesifikasi OpenAPI di bawah ini dan ganti placeholder URL (dalam tanda kurung siku) dengan endpoint Cloud Function Anda:

openapi: 3.0.0
info:
 title: AlloyDB Product Matcher
 description: A Cloud Function to query AlloyDB for product matches based on user search text.
 version: 1.0.0
servers:
 - url: <<https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/alloy-gem>>
paths:
 /:
   post:
     summary: Find matching products based on search text.
     operationId: apparelSearch
     requestBody:
       description: JSON object containing the search text.
       required: true
       content:
         application/json:
           schema:
             type: object
             properties:
               search:
                 type: string
                 description: The user's search query for product matching.
     responses:
       '200':
         description: Successful response with a JSON array of matching products.
         content:
           application/json:
             schema:
               type: array
               items:
                 type: object
                 properties:
                   id:
                     type: string
                     description: Product ID.
                   category:
                     type: string
                     description: Product category.
                   sub_category:
                     type: string
                     description: Product sub-category.
                   uri:
                     type: string
                     description: Product URI or URL.
                   description:
                     type: string
                     description: Product description.
                   literature:
                     type: object
                     description: JSON object containing match information from the ML model.
                     properties:
                       MATCH:
                         type: string
                         description: Whether the product matches the search query (YES/NO).
                       PERCENTAGE:
                         type: string
                         description: Percentage of match.
                       DIFFERENCE:
                         type: string
                         description: Description of differences between the search and product.
       '500':
         description: Internal server error.

Biarkan konfigurasi lain tetap pada nilai defaultnya, lalu klik "Save".

  1. Kembali ke Agen pada tahap ini karena kita ingin menambahkan "Tool" konfigurasi ke "Petunjuk". Tambahkan di bawah ke placeholder petunjuk (Ingat, indentasi penting dalam menentukan alur):
- Greet the user and answer their question to the best of your knowledge.
- Summarize the user's request and ask them to confirm that you understood correctly.
   - Check if the request has details like gender, color, material, style and other key apparel details already.
   - If not, seek clarifying details.
   - If the search request is very broad, then ask the user to narrow down the request with specific details that you believe could be personal preferences.
   - Once all the necessary details are met, summarize your final understanding of the request with the user.
- Use ${TOOL: Retail Shopping Tool} to help the user with their task.
- If the request has unrelated input text, gracefully convey that you don't have information on that topic.
- Do not give product availability information outside the source that is provided to you in ${TOOL: Retail Shopping Tool}.
- Do not assist with any information unless you are certain that you know the answer and it is grounded in the source of truth.
- Thank the user for their business and say goodbye.

Pastikan alat "Alat Belanja Retail" dipilih di "Available Tools" bagian, lalu simpan kembali agen tersebut.

5. Menguji Agen

Di panel kanan, Anda akan melihat bagian Agen Pratinjau yang memungkinkan Anda menguji agen.

Seperti yang terlihat pada screenshot di bawah, saya telah menyapa sebagai pengguna dan memulai chat dengan permintaan kemeja putih dengan cetakan biru:

63ac3ef6d1f0f614.pngS

Berikut adalah respons JSON:

acf3cb0e2be2ed91.png

Ini adalah hasil JSON mentah dari Cloud Function yang memproses Penelusuran Kemiripan AlloyDB. Selesai. Kita sudah siap dengan agen itu sekarang.

6. Contoh Alur Percakapan

Pada tahap ini, Anda dapat menguji dan mengiterasi alur agen dialog (percakapan):

User: I'm looking for women's boots for winter. 

Agent: (OpenAPI call to Cloud Function that works with AlloyDB Similarity Search) 

Cloud Function: (Processes query, returns JSON array) 

Agent: Based on your preferences, here are some options: [Product 1, Product 2, Product 3]. Would you like to see more details about any of these?

User: No, That is all. Bye!

Agent: Have a good day!

Sedikit Perintah Shot

Sekarang katakanlah Anda ingin melihat hasil dari agen percakapan dalam format grafis tertentu termasuk gambar dan link. Kita akan melakukannya dengan menggunakan contoh percakapan yang juga dikenal sebagai {i>Fw Shot Prompting<i}.

Artinya, kita ingin menambahkan beberapa contoh ke builder agen untuk memiliki format hasil yang konsisten.

Di salah satu screenshot kami sebelumnya di "Test the Agent" kita melihat respons dari agen sebagai "Saya melihat. Anda sedang mencari kemeja putih dengan cetakan biru...". Buka respons tersebut atau buat percakapan percobaan baru dari panel kanan agen:

  1. Ketik di bawah dalam "Masukkan Input Pengguna" :

dc8c010c36400e64.png

Anda akan melihat respons seperti ini:

e31d9f53bf5564c8.png

Anda juga akan melihat Array JSON yang ditampilkan oleh endpoint API.

  1. Sekarang klik Agent Name (seperti yang ditunjukkan pada gambar di bawah yang ditandai dengan tanda centang merah) dari margin bagian pratinjau dan semua tab di bagian pratinjau chat akan ditandai. Sekarang klik "Simpan Contoh" di sudut kanan atas di bagian pratinjau. Hasilnya akan terlihat seperti ini:

1e0a9f6815f63bf9.pngS

  1. Simpan percakapan dengan Nama Tampilan "Respons dengan gambar" atau yang serupa dan klik "Buat".
  2. Sekarang buka tab respons yang ditandai dengan tanda centang hitam pada gambar di atas dan ganti teks "I see. Anda mencari sandal kuning. Apakah itu benar?" dengan yang berikut:
I see you are looking for yellow sandals. Here are a few options for you:
<!DOCTYPE html>
<html>
<body>

<h2>Featured Sandals</h2>

<table style="overflow-x: auto; white-space: nowrap;">
    <tr>
        <td>
            <img src="https://assets.myntassets.com/v1/images/style/properties/d27dbd8e9666b9af2d72fbfde315f76d_images.jpg" alt="Yellow sandals from Estd. 1977" width="300">
        </td>
        <td>
            <img src="https://assets.myntassets.com/v1/images/style/properties/b7a479fe5f56457e930541a789c5df68_images.jpg" alt="Yellow sandals from Gliders" width="300">
        </td>
        <td>
            <img src="https://assets.myntassets.com/v1/images/style/properties/b6c813734b29b89d1055fd000ea50743_images.jpg" alt="Yellow sandals from Rocia" width="300">
        </td>
        <td>
            <img src="https://assets.myntassets.com/v1/images/style/properties/ee0e918c229e76e0e7e61712e9d2ecb3_images.jpg" alt="Yellow flip flops from Numero Uno" width="300">
        </td>
        <td>
            <img src="https://assets.myntassets.com/v1/images/style/properties/5bdd4c9e739205e28ee134ff7849bc60_images.jpg" alt="Yellow flip flops from Numero Uno" width="300">
        </td>
    </tr>
</table>

</body>
</html>
  1. Klik "Simpan" di atas.

Ulangi prosesnya untuk sebanyak mungkin contoh yang Anda inginkan dengan berbagai variasi dan alur percakapan.

Sekarang lanjutkan dan uji dengan input pengguna:

450166a929645353.png

Beberapa jenis respons lainnya:

be8908c99cd33730.png

Selesai. Kami telah berhasil membuat dan menguji Agen Percakapan untuk aplikasi retail kami.

7. Deployment dan Integrasi

Setelah puas dengan agen, Anda dapat dengan mudah men-deploy-nya ke berbagai saluran menggunakan integrasi Agent Builder. Anda dapat menyematkannya di situs, mengintegrasikannya dengan platform pesan populer, atau bahkan membuat aplikasi seluler khusus. Kita juga dapat menggunakan Agent Builder API langsung di aplikasi klien web, yang telah dibahas di blog ini.

8. Pembersihan

Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam posting ini, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka Manage
  2. resources.
  3. Dalam daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  4. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

9. Selamat

Selamat! Dengan mengintegrasikan kecanggihan mesin analisis kami yang dibuat khusus dengan antarmuka intuitif Agent Builder, kami telah menciptakan asisten belanja retail cerdas yang memberikan pengalaman yang dipersonalisasi, menjawab pertanyaan secara akurat, dan pada akhirnya mendorong kepuasan pelanggan serta penjualan. Dengan menggabungkan kemampuan AlloyDB, Vertex AI, dan Vector Search, kami telah melakukan lompatan besar ke depan dalam membuat penelusuran kontekstual dan vektor mudah diakses, efisien, benar-benar berbasis makna, serta agenic.