Tạo Trợ lý mua sắm thông minh bằng AlloyDB và Vertex AI Agent Builder – Phần 2

1. Tổng quan

Trong bối cảnh ngành bán lẻ có nhịp độ cao ngày nay, việc cung cấp dịch vụ khách hàng xuất sắc và tạo điều kiện để mang đến trải nghiệm mua sắm phù hợp là điều vô cùng quan trọng. Chúng tôi sẽ đưa bạn vào một hành trình kỹ thuật thông qua việc tạo ra ứng dụng trò chuyện dựa trên kiến thức được thiết kế để giải đáp thắc mắc của khách hàng, định hướng khám phá sản phẩm và điều chỉnh kết quả tìm kiếm. Giải pháp đổi mới này kết hợp sức mạnh của AlloyDB để lưu trữ dữ liệu, một công cụ phân tích nội bộ để tìm hiểu theo ngữ cảnh, Gemini (Mô hình ngôn ngữ lớn) để xác thực mức độ liên quan và Agent Builder của Google để nhanh chóng khởi động một trợ lý trò chuyện thông minh.

Thách thức: Khách hàng bán lẻ hiện đại mong đợi có câu trả lời tức thì và những đề xuất về sản phẩm phù hợp với lựa chọn ưu tiên của riêng họ. Các phương pháp tìm kiếm truyền thống thường không đủ khả năng cung cấp mức độ cá nhân hóa này.

Giải pháp: Ứng dụng trò chuyện dựa trên kiến thức của chúng tôi giúp giải quyết trực tiếp thách thức này. Chiến dịch này tận dụng cơ sở kiến thức phong phú có được từ dữ liệu về ngành bán lẻ của bạn để hiểu ý định của khách hàng, phản hồi thông minh và mang lại kết quả thực sự phù hợp.

Sản phẩm bạn sẽ tạo ra

Trong phòng thí nghiệm này (Phần 2), bạn sẽ:

  1. Tạo tác nhân cho Vertex AI Agent Builder
  2. Tích hợp công cụ AlloyDB với tác nhân

Yêu cầu

  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox
  • Một dự án trên Google Cloud đã bật tính năng thanh toán.

2. Kiến trúc

Luồng dữ liệu: Hãy xem xét kỹ hơn cách dữ liệu di chuyển qua hệ thống của chúng tôi:

Truyền dẫn:

Dữ liệu bán lẻ (kho hàng, nội dung mô tả sản phẩm, lượt tương tác của khách hàng) được tải liên tục vào AlloyDB.

Công cụ Analytics:

Chúng tôi sẽ sử dụng AlloyDB làm công cụ phân tích để thực hiện những việc dưới đây:

  1. Trích xuất ngữ cảnh: Công cụ này phân tích dữ liệu được lưu trữ trong AlloyDB để hiểu mối quan hệ giữa các sản phẩm, danh mục, hành vi của khách hàng, v.v.
  2. Tạo lượt nhúng: Các lượt nhúng (biểu diễn toán học của văn bản) được tạo cho cả truy vấn của người dùng và thông tin được lưu trữ trong AlloyDB.
  3. Tìm kiếm vectơ: Công cụ thực hiện một lượt tìm kiếm tương tự, so sánh mục nhúng truy vấn với mục nhúng nội dung mô tả, bài đánh giá sản phẩm và các dữ liệu có liên quan khác. Phần này xác định 25 "hàng xóm gần nhất" có liên quan nhất.

Xác thực Gemini:

Những câu trả lời tiềm năng này sẽ được gửi đến Gemini để đánh giá. Gemini sẽ xác định xem những dữ liệu đó có thực sự phù hợp và an toàn để chia sẻ với người dùng hay không.

Tạo phản hồi:

Các phản hồi đã xác thực được cấu trúc thành một mảng JSON và toàn bộ công cụ được đóng gói thành một Hàm Cloud Run không máy chủ được gọi qua Agent Builder.

Các bước trên đã được đề cập trong phần 1 của phòng thí nghiệm.

Chúng ta đã thảo luận về các chi tiết kỹ thuật của việc tạo ra một công cụ phân tích dựa trên kiến thức nhằm hỗ trợ cho trợ lý mua sắm thông minh của chúng tôi. Bây giờ, hãy khám phá cách chúng tôi tận dụng sự kỳ diệu của Agent Builder để triển khai công cụ này trong giao diện trò chuyện. Đảm bảo bạn chuẩn bị sẵn URL điểm cuối trước khi bắt đầu phần 2. Bước tiếp theo dưới đây là nội dung chúng ta sẽ đề cập trong phòng thí nghiệm này:

Tương tác trò chuyện:

Agent Builder cung cấp câu trả lời cho người dùng bằng định dạng ngôn ngữ tự nhiên, hỗ trợ quá trình trò chuyện qua lại.

3. Trước khi bắt đầu

Tạo một dự án

  1. Trong Google Cloud Console, trên trang bộ chọn dự án, hãy chọn hoặc tạo một dự án trên Google Cloud.
  2. Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án trên Google Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trên một dự án hay không .
  3. Bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trong Google Cloud được tải trước bằng bq. Nhấp vào Kích hoạt Cloud Shell ở đầu bảng điều khiển Google Cloud.

Hình ảnh nút Kích hoạt Cloud Shell

  1. Sau khi kết nối với Cloud Shell, bạn cần kiểm tra để chắc chắn rằng mình đã được xác thực và dự án được đặt thành mã dự án bằng lệnh sau đây:
gcloud auth list
  1. Chạy lệnh sau trong Cloud Shell để xác nhận rằng lệnh gcloud biết về dự án của bạn.
gcloud config list project
  1. Nếu dự án của bạn chưa được thiết lập, hãy sử dụng lệnh sau để thiết lập dự án:
gcloud config set project <YOUR_PROJECT_ID>
  1. Bật các API bắt buộc. Lựa chọn thay thế cho lệnh gcloud là thông qua bảng điều khiển bằng cách tìm kiếm từng sản phẩm hoặc sử dụng đường liên kết này.

Nếu thiếu API, bạn luôn có thể bật API đó trong quá trình triển khai.

Hãy tham khảo tài liệu để biết các lệnh gcloud và cách sử dụng.

Lưu ý quan trọng: Ngoài ra, hãy đảm bảo bạn đã hoàn thành PHẦN 1 của phòng thí nghiệm để hoàn thành bài tập này.

4. Tạo nhân viên hỗ trợ

Giới thiệu về Agent Builder

Agent Builder là một công cụ mạnh mẽ và ít tốn mã, cho phép chúng tôi tạo các nhân viên hỗ trợ trò chuyện một cách nhanh chóng và hiệu quả. Nền tảng này đơn giản hoá quy trình thiết kế luồng hộp thoại, tích hợp cơ sở kiến thức và kết nối với các API bên ngoài. Trong trường hợp này, chúng ta sẽ sử dụng Agent Builder để kết nối liền mạch với điểm cuối Chức năng đám mây mà chúng ta đã xây dựng trong Phần 1. Nhờ đó, trợ lý mua sắm có thể tiếp cận kho kiến thức về bán lẻ và phản hồi thắc mắc của khách hàng một cách thông minh.

Xây dựng nhân viên hỗ trợ

Hãy bắt đầu tạo nhân viên hỗ trợ mới này để trả lời các câu hỏi của người dùng về sản phẩm may mặc.

  1. Bắt đầu bằng cách đăng nhập vào nền tảng Agent Builder. Nếu thấy lời nhắc kích hoạt API, hãy tiếp tục rồi nhấp vào TIẾP TỤC VÀ KÍCH HOẠT API.
  2. Nhấp vào "TẠO ỨNG DỤNG" và đặt tên mô tả cho nhân viên hỗ trợ (ví dụ: "Trợ lý Mua sắm bán lẻ").
  3. Nhấp vào Loại ứng dụng "Nhân viên hỗ trợ".

462bb48664e9a14e.pngS

  1. của Google. Đặt một tên mô tả cho nhân viên hỗ trợ, chẳng hạn như "Trợ lý Mua sắm bán lẻ" và thiết lập khu vực này là us-central1

10eceef44b1600d1.png.

  1. Nhập thông tin chi tiết cho nhân viên hỗ trợ:
  2. Thay đổi tên nhân viên hỗ trợ thành "Đại lý mua sắm bán lẻ".
  3. Thêm "Mục tiêu" bên dưới:
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.pngS

  1. Hãy lưu bản hướng dẫn tại thời điểm này và để trống phần hướng dẫn.
  2. Sau đó, hãy nhấp vào Công cụ trong trình đơn điều hướng rồi nhấp vào TẠO.

2ffae953bbad38e5.png.

Nhập tên công cụ: Công cụ mua sắm bán lẻ

Nhập nội dung mô tả về công cụ:

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.

Nhập giản đồ — OpenAPI ở định dạng YAML:

Đây là phần chúng ta sẽ sử dụng điểm cuối phụ trợ để hỗ trợ tác nhân. Sao chép thông số kỹ thuật OpenAPI bên dưới và thay thế phần giữ chỗ URL (trong dấu ngoặc góc) bằng điểm cuối của Hàm đám mây:

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.

Giữ nguyên các cấu hình khác về giá trị mặc định và nhấp vào "Lưu".

  1. Tại thời điểm này, hãy quay lại Nhân viên hỗ trợ vì chúng ta muốn thêm "Công cụ" cấu hình cho "Hướng dẫn" của nhân viên hỗ trợ. Thêm phần dưới đây vào phần giữ chỗ hướng dẫn (Hãy nhớ rằng phần thụt lề rất quan trọng khi xác định flow):
- 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.

Đảm bảo rằng công cụ "Công cụ mua sắm bán lẻ" được chọn trong "Công cụ có sẵn" rồi lưu lại nhân viên hỗ trợ.

5. Kiểm tra nhân viên hỗ trợ

Trong ngăn bên phải, bạn sẽ thấy mục Preview Agent (Nhân viên hỗ trợ bản xem trước). Mục này cho phép bạn kiểm thử nhân viên hỗ trợ.

Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, tôi đã chào đón một người dùng và bắt đầu cuộc trò chuyện bằng cách yêu cầu áo sơ mi trắng có in màu xanh dương:

63ac3ef6d1f0f614.pngS

Đây là phản hồi JSON:

acf3cb0e2be2ed91.png

Đây là kết quả JSON thô từ Hàm đám mây xử lý Tìm kiếm tương tự AlloyDB. Vậy là xong! Bây giờ, chúng ta đã hoàn tất với nhân viên hỗ trợ.

6. Luồng trò chuyện mẫu

Tại thời điểm này, bạn có thể kiểm tra và lặp lại quy trình của nhân viên hỗ trợ hộp thoại (cuộc trò chuyện):

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!

Một vài lời nhắc bắn

Bây giờ, giả sử bạn muốn xem kết quả thông qua nhân viên hỗ trợ trò chuyện ở một định dạng đồ hoạ nhất định, bao gồm cả hình ảnh và đường liên kết. Chúng ta sẽ thực hiện việc này thông qua các ví dụ về cuộc trò chuyện (còn gọi là vài lời nhắc bắn súng).

Điều này có nghĩa là chúng ta nên thêm một vài ví dụ vào trình tạo tác nhân để có định dạng kết quả nhất quán.

Ở một trong các ảnh chụp màn hình trước đó của chúng tôi trong phần "Test the Agent" (Kiểm thử với nhân viên hỗ trợ) , chúng ta sẽ thấy phản hồi từ nhân viên hỗ trợ là "Tôi hiểu rồi. Bạn đang tìm một chiếc áo sơ mi màu trắng có in màu xanh dương...". Chuyển đến phản hồi đó hoặc tạo một cuộc trò chuyện thử nghiệm mới từ ngăn bên phải của nhân viên hỗ trợ:

  1. Nhập nội dung bên dưới trong phần "Nhập thông tin đầu vào của người dùng" mục:

dc8c010c36400e64.png

Bạn sẽ thấy phản hồi như sau:

e31d9f53bf5564c8.png

Ngoài ra, bạn cũng sẽ thấy Mảng JSON do điểm cuối API trả về.

  1. Giờ hãy nhấp vào Tên nhân viên hỗ trợ (như trong hình được đánh dấu bằng dấu kiểm màu đỏ ở bên dưới) ở lề của phần xem trước và tất cả các thẻ của bạn trong phần xem trước cuộc trò chuyện sẽ được đánh dấu. Giờ hãy nhấp vào nút "Lưu ví dụ" ở góc trên cùng bên phải trong phần xem trước. Giao diện đó sẽ giống như sau:

1e0a9f6815f63bf9.png.

  1. Lưu cuộc trò chuyện bằng Tên hiển thị "Phản hồi có hình ảnh" hoặc nội dung tương tự rồi nhấp vào "Tạo".
  2. Bây giờ, hãy chuyển đến thẻ phản hồi được đánh dấu bằng dấu kiểm màu đen trong hình trên rồi thay thế văn bản "Tôi thấy. Bạn đang tìm dép màu vàng. Có đúng vậy không?" bằng các tính năng sau:
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. Nhấp vào "Lưu" ở trên cùng.

Lặp lại quá trình này cho bao nhiêu ví dụ tùy thích với các biến thể và luồng thảo luận khác nhau.

Bây giờ, hãy tiếp tục và thử nghiệm với hoạt động đầu vào của người dùng:

450166a929645353.pngS

Một số loại phản hồi khác:

be8908c99cd33730.png

Vậy là xong. Chúng tôi đã tạo và thử nghiệm thành công tính năng Hỗ trợ trò chuyện cho ứng dụng bán lẻ của mình.

7. Triển khai và tích hợp

Khi đã hài lòng với nhân viên hỗ trợ của mình, bạn có thể dễ dàng triển khai nhân viên hỗ trợ đó cho nhiều kênh bằng cách sử dụng các công cụ tích hợp của Agent Builder. Bạn có thể nhúng đường liên kết của trang web vào trang web, tích hợp với các nền tảng nhắn tin phổ biến hoặc thậm chí là tạo một ứng dụng di động chuyên dụng. Chúng ta cũng có thể trực tiếp sử dụng Agent Builder API trong các ứng dụng web. Chúng ta đã đề cập đến vấn đề này trong blog này.

8. Dọn dẹp

Để tránh bị tính phí vào tài khoản Google Cloud cho các tài nguyên được sử dụng trong bài đăng này, hãy làm theo các bước sau:

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến phần Quản lý
  2. resources (tài nguyên).
  3. Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá, sau đó nhấp vào Delete (Xoá).
  4. Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào Tắt để xoá dự án.

9. Xin chúc mừng

Xin chúc mừng! Bằng cách kết hợp sức mạnh của công cụ phân tích tuỳ chỉnh với giao diện trực quan của Agent Builder, chúng tôi đã tạo ra một trợ lý mua sắm bán lẻ thông minh mang đến trải nghiệm phù hợp với từng cá nhân, trả lời chính xác các câu hỏi, từ đó nâng cao doanh số và sự hài lòng của khách hàng. Bằng cách kết hợp khả năng của AlloyDB, Vertex AIVector Search, chúng tôi đã có một bước tiến vượt bậc trong việc hỗ trợ khả năng tiếp cận các hoạt động tìm kiếm theo ngữ cảnh và vectơ, hiệu quả, thực sự theo ý nghĩa và mang tính đại diện!