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 kekuatan 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 tidak dapat memberikan personalisasi tingkat ini.

Solusi: Aplikasi chat berbasis pengetahuan kami 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. Hal ini mengidentifikasi 25 "tetangga terdekat" yang paling relevan.

Validasi Gemini:

Potensi respons ini dikirim ke Gemini untuk dinilai. Gemini menentukan apakah informasi 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 Fungsi Cloud Run serverless yang dipanggil dari Builder Agen.

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

Kami telah membahas detail teknis pembuatan mesin analisis berbasis pengetahuan yang mendukung asisten belanja pintar kami. Sekarang, mari kita pelajari cara memanfaatkan keajaiban Agent Builder untuk menghidupkan mesin ini dalam antarmuka percakapan. Pastikan Anda sudah menyiapkan URL endpoint sebelum memulai bagian 2. Langkah berikutnya adalah hal yang akan kita bahas dalam lab ini:

Interaksi Percakapan:

Pembuat Agen menampilkan respons kepada pengguna dalam format bahasa alami, 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 telah diaktifkan pada suatu project.
  3. Anda akan menggunakan Cloud Shell, 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 akan memeriksa 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 lab untuk menyelesaikan ini.

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 dengan endpoint Cloud Function yang kita buat di Bagian 1 dengan lancar, sehingga asisten belanja dapat mengakses basis pengetahuan retail dan merespons kueri pelanggan secara cerdas.

Mem-build 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 beri nama deskriptif untuk agen Anda (misalnya, "Asisten Belanja Retail").
  3. Klik Jenis Aplikasi "Agen".

462bb48664e9a14e.png

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

10eceef44b1600d1.png

  1. Masukkan detail untuk agen:
  2. Ubah Nama Agen menjadi "Retail Shopping Agent".
  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 Alat dari menu navigasi, lalu klik BUAT.

2ffae953bbad38e5.png

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:

Di sinilah kita menggunakan endpoint backend untuk mendukung 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 lainnya tetap pada nilai defaultnya, lalu klik "Simpan".

  1. Kembali ke Agen pada tahap ini karena kita ingin menambahkan konfigurasi "Alat" ke "Petunjuk" agen. Tambahkan kode di bawah ke placeholder petunjuk (Ingat, indent 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 "Retail Shopping Tool" dipilih di bagian "Available Tools", lalu simpan lagi agen.

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.png

Ini 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 melakukan iterasi 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 menggunakan contoh percakapan yang juga dikenal sebagai Perintah Few Shot.

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

Di salah satu screenshot sebelumnya di bagian "Menguji Agen", kita melihat respons dari agen sebagai "Saya mengerti. Anda mencari kemeja putih dengan gambar 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 "Save Example" di pojok kanan atas di bagian pratinjau. Hasilnya akan terlihat seperti ini:

1e0a9f6815f63bf9.png

  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 "Saya mengerti. 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 merasa puas dengan agen, Anda dapat dengan mudah men-deploynya ke berbagai saluran menggunakan integrasi Builder Agen. Anda dapat menyematkannya di situs, mengintegrasikannya dengan platform pesan populer, atau bahkan membuat aplikasi seluler khusus. Kami 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 postingan 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 dalam membuat penelusuran kontekstual dan vektor menjadi mudah diakses, efisien, benar-benar berbasis makna, dan bersifat agen.