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 bán lẻ phát triển nhanh chóng ngày nay, việc cung cấp dịch vụ khách hàng vượt trội đồng thời mang đến trải nghiệm mua sắm được cá nhân hoá là điều tối quan trọng. Chúng tôi sẽ đưa bạn vào một hành trình kỹ thuật để tạo ứng dụng trò chuyện dựa trên kiến thức, được thiết kế để trả lời câu hỏi của khách hàng, hướng dẫn khám phá sản phẩm và điều chỉnh kết quả tìm kiếm. Giải pháp cải tiến 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ộ để hiểu ngữ cảnh, Gemini (Mô hình ngôn ngữ lớn) để xác thực mức độ phù hợp và Trình tạo tác nhân 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âu trả lời tức thì và đề xuất sản phẩm phù hợp với các lựa chọn ưu tiên riêng của họ. Các phương thức tìm kiếm truyền thống thường không đáp ứng được mức độ cá nhân hoá 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ải quyết trực tiếp thách thức này. Ứng dụng này khai thác một cơ sở kiến thức phong phú được lấy từ dữ liệu bán lẻ của bạn để hiểu ý định của khách hàng, phản hồi một cách thông minh và cung cấp kết quả siêu 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 một tác nhân Builder Vertex AI
  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:

Tiếp nhận:

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

Công cụ phân tích:

Chúng tôi sẽ sử dụng AlloyDB làm công cụ phân tích để thực hiện các thao tác sau:

  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 danh mục sản phẩm, hành vi của khách hàng, v.v. (nếu có).
  2. Tạo dữ liệu nhúng: Dữ liệu 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ụ này thực hiện tìm kiếm mức độ tương đồng, so sánh dữ liệu nhúng truy vấn với dữ liệu nhúng của nội dung mô tả sản phẩm, bài đánh giá và các dữ liệu có liên quan khác. Thao tác này xác định 25 "hàng xóm gần nhất" phù hợp nhất.

Xác thực Gemini:

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

Tạo câu trả lời:

Các câu trả lờ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 có máy chủ được gọi từ Trình tạo tác nhân.

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

Chúng tôi đã thảo luận về các chi tiết kỹ thuật của việc tạo một công cụ phân tích dựa trên kiến thức, hỗ trợ trợ lý mua sắm thông minh của chúng tôi. Giờ đây, hãy khám phá cách chúng tôi tận dụng sức mạnh kỳ diệu của Trình tạo tác nhân để đưa công cụ này vào hoạt động trong một giao diện đàm thoại. Hãy đả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 là nội dung chúng tôi đề cập trong phòng thí nghiệm này:

Tương tác đàm thoại:

Trình tạo tác nhân trình bày các câu trả lời cho người dùng ở định dạng ngôn ngữ tự nhiên, tạo điều kiện cho cuộc đối thoại qua lại.

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

Tạo 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 bạn đã bật tính năng thanh toán cho dự án trên Cloud. Tìm hiểu cách kiểm tra xem tính năng thanh toán đã được bật cho một dự án hay chưa .
  3. Bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trong Google Cloud và được tải sẵn bq. Nhấp vào Kích hoạt Cloud Shell ở đầu bảng điều khiển 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 hãy kiểm tra để đảm bảo rằng bạn đã được xác thực và dự án được đặt thành mã dự án của bạn bằng lệnh sau:
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 đặt, hãy sử dụng lệnh sau để đặt dự án:
gcloud config set project <YOUR_PROJECT_ID>
  1. Bật các API bắt buộc. Bạn có thể thay thế lệnh gcloud 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 thông qua bảng điều khiển.

Nếu bỏ lỡ bất kỳ API nào, bạn luôn có thể bật API đó trong quá trình triển khai.

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

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 tất phần này.

4. Tạo tác nhân

Giới thiệu về Trình tạo tác nhân

Trình tạo tác nhân là một công cụ mạnh mẽ, ít phải lập trình, giúp chúng tôi tạo tác nhân đàm thoại một cách nhanh chóng và hiệu quả. Công cụ này giúp đơ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 của chúng tôi, chúng tôi sẽ sử dụng Trình tạo tác nhân để kết nối liền mạch với điểm cuối Hàm Cloud mà chúng tôi đã tạo trong Phần 1, cho phép trợ lý mua sắm truy cập vào cơ sở kiến thức bán lẻ của chúng tôi và phản hồi các truy vấn của khách hàng một cách thông minh.

Tạo tác nhân

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

  1. Bắt đầu bằng cách đăng nhập vào nền tảng Trình tạo tác nhân. Nếu hệ thống nhắc bạn kích hoạt API, hãy 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 tác nhân của bạn (ví dụ: "Trợ lý mua sắm bán lẻ").
  3. Nhấp vào Loại ứng dụng "Tác nhân".

462bb48664e9a14e.png

  1. . Đặt tên mô tả cho tác nhân của bạn, chẳng hạn như "Trợ lý mua sắm bán lẻ" và đặt khu vực là us-central1

10eceef44b1600d1.png

  1. Nhập thông tin chi tiết cho tác nhân:
  2. Thay đổi Tên tác nhân thành "Tác nhân 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.png

  1. Lưu tại thời điểm này và để trống hướng dẫn.
  2. Sau đó, 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ả 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ử 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 (được đặt trong dấu ngoặc nhọn) bằng điểm cuối Hàm Cloud:

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.

Để các cấu hình khác ở giá trị mặc định rồi nhấp vào "Lưu".

  1. Quay lại Tác nhân tại thời điểm này vì chúng ta muốn thêm cấu hình "Công cụ" vào "Hướng dẫn" của tác nhân. Thêm nội dung bên dưới vào phần giữ chỗ hướng dẫn (Hãy nhớ rằng các thụt lề rất quan trọng trong việc xác định luồng):
- 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 bạn đã chọn công cụ "Công cụ mua sắm bán lẻ" trong phần "Công cụ có sẵn" rồi lưu lại tác nhân.

5. Kiểm thử tác nhân

Trên ngăn bên phải, bạn sẽ thấy phần Xem trước tác nhân cho phép bạn kiểm thử tác nhân.

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

63ac3ef6d1f0f614.png

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

acf3cb0e2be2ed91.png

Đây là kết quả JSON thô từ Hàm Cloud xử lý Tìm kiếm mức độ tương đồng AlloyDB. Vậy là xong! Chúng ta đã thiết lập xong tác nhân.

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

Tại thời điểm này, bạn có thể kiểm thử và lặp lại luồng của tác nhân 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!

Câu lệnh dựa trên một vài ví dụ

Giả sử bạn muốn xem kết quả trong tác nhân đàm thoại ở 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 đó bằng các ví dụ về cuộc trò chuyện, còn được gọi là Đặt câu lệnh dựa trên một vài ví dụ.

Điều này có nghĩa là chúng ta muố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.

Trong một trong các ảnh chụp màn hình trước đó trong phần "Kiểm thử tác nhân", chúng ta thấy phản hồi từ tác nhân là "Tôi hiểu. Bạn đang tìm áo sơ mi trắng có hoạ tiết màu xanh dương...". Chuyển đến phản hồi đó hoặc tạo một cuộc trò chuyện kiểm thử mới từ ngăn bên phải của tác nhân:

  1. Nhập nội dung bên dưới vào phần "Nhập dữ liệu đầu vào của người dùng":

dc8c010c36400e64.png

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

e31d9f53bf5564c8.png

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

  1. Bây giờ, hãy nhấp vào Tên tác nhân (như trong hình ảnh bên dưới được đánh dấu bằng dấu kiểm màu đỏ) từ lề của phần xem trước và tất cả các thẻ của bạn trên phần xem trước cuộc trò chuyện sẽ được đánh dấu. Bây giờ, hãy nhấp vào "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 tên 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 ảnh ở trên và thay thế văn bản "Tôi hiểu. Bạn đang tìm dép màu vàng. Có đúng không?" bằng nội dung 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 quy trình cho nhiều ví dụ tuỳ ý với các biến thể và luồng khác nhau của cuộc trò chuyện.

Bây giờ, hãy kiểm thử bằng hoạt động đầu vào của người dùng:

450166a929645353.png

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

be8908c99cd33730.png

Vậy là xong. Chúng ta đã tạo và kiểm thử thành công một Tác nhân đàm thoại cho ứng dụng bán lẻ.

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

Sau khi hài lòng với tác nhân, bạn có thể dễ dàng triển khai tác nhân đó đến nhiều kênh bằng tính năng tích hợp của Trình tạo tác nhân. Bạn có thể nhúng tác nhân đó 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í tạo một ứng dụng di động riêng. Bạn cũng có thể sử dụng trực tiếp Agent Builder API trong các ứng dụng máy khách web của mình, như chúng tôi đã đề cập 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 Google Cloud Console, hãy chuyển đến trang Quản lý
  2. 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 Xoá.
  4. Trong hộp thoại, hãy nhập mã dự án, sau đó nhấp vào Tắt để xoá dự án.

9. Xin chúc mừng

Xin chúc mừng! Bằng cách tích hợp sức mạnh của công cụ phân tích do chúng tôi xây dựng tuỳ chỉnh với giao diện trực quan của Trình tạo tác nhân, 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 được cá nhân hoá, trả lời câu hỏi một cách chính xác và cuối cùng là thúc đẩy sự hài lòng của khách hàng và doanh số bán hàng. Bằng cách kết hợp các tính năng của AlloyDB, Vertex AIVector Search, chúng tôi đã có một bước tiến lớn trong việc giúp tìm kiếm theo ngữ cảnh và tìm kiếm vectơ trở nên dễ tiếp cận, hiệu quả, thực sự hướng đến ý nghĩa và có tính tác nhân!