1. Giới thiệu
Trong ngành bán lẻ hiện đại, dữ liệu của bạn là một hệ sinh thái đa dạng và rộng lớn. Bạn có dữ liệu giao dịch vững chắc (giá cả và hàng lưu kho), danh mục đa hình "lộn xộn" (thông số kỹ thuật điện tử so với kích thước trang phục) và nhật ký hành vi có dung lượng hàng petabyte. Việc gộp tất cả vào một ứng dụng duy nhất không chỉ tạo ra nợ kỹ thuật mà còn làm hỏng trải nghiệm người dùng.
Trong lớp học lập trình này, bạn sẽ xây dựng một hệ thống đa ngôn ngữ mạnh mẽ, kết hợp hài hoà:
- AlloyDB: Nền tảng giao dịch của bạn để đảm bảo tính nhất quán tốc độ cao và nhúng hình ảnh.
- MongoDB Atlas trên Google Cloud: Lớp danh mục linh hoạt, không phụ thuộc vào giản đồ.
- Cloud Storage: Bộ não phân tích giúp dự báo xu hướng theo thời gian thực.
- BigQuery: Kho dữ liệu kỹ thuật số có độ phân giải cao.
"Bí quyết" là gì? Bạn sẽ sử dụng Bộ công cụ MCP cho cơ sở dữ liệu để điều phối và hợp nhất các nguồn dữ liệu chạy trên Cloud Run một cách thông minh dưới dạng cầu nối ngữ nghĩa, sau đó triển khai một ứng dụng trò chuyện nhiều tác nhân bằng Bộ công cụ phát triển tác nhân (ADK). Bạn không chỉ xây dựng một thanh tìm kiếm mà còn xây dựng một bộ não bán lẻ thông minh, hiểu được bối cảnh, tôn trọng các quy tắc ràng buộc và thu hẹp khoảng cách giữa dữ liệu thô và ý định của con người.
Câu hỏi khó của người dùng
Các tác nhân thương mại điện tử tiêu chuẩn không thể suy luận đa chiều (kết hợp các quy tắc ràng buộc phủ định, độ tương đồng về hình ảnh và thông tin về hàng tồn kho theo thời gian thực). Ví dụ: Tôi thường muốn nói chuyện với một trang web bán lẻ như sau:
"Chào bạn, tôi đang lên kế hoạch cho một chuyến đi chụp ảnh ở độ cao lớn. Cho tôi xem một số ba lô chống chịu thời tiết có kiểu dáng tương tự như "AeroGlow Pro" nhưng không có thành phần da. Ngoài ra, hãy cho tôi biết liệu họ có thực sự còn hàng hay không và liệu các nhiếp ảnh gia khác có phàn nàn về độ bền của dây đeo trong bài đánh giá hay không."
Lý do truy vấn này là "Kẻ huỷ diệt tác nhân":
- Sự tương đồng về hình ảnh (AlloyDB + Vector Search): "Tương tự về kiểu dáng với AeroGlow Pro" yêu cầu so sánh việc nhúng hình ảnh.
- Ràng buộc phủ định (MongoDB): "Không có da" yêu cầu lọc thông qua các thuộc tính lồng nhau, linh hoạt thường không có trong giản đồ SQL tiêu chuẩn.
- Kho hàng theo thời gian thực (AlloyDB): Trạng thái "Thực sự còn hàng" yêu cầu kiểm tra giao dịch trực tiếp (không phải chỉ mục của Tìm kiếm cũ).
- Tổng hợp ngữ nghĩa (BigQuery + Đa tác nhân): Để phân tích các bài đánh giá về "độ bền của dây đeo", tác nhân cần tóm tắt ngay ý kiến phản hồi không có cấu trúc từ BigQuery.
Hầu hết các bot bán lẻ sẽ chỉ thấy "Ba lô" và "Da" rồi hiển thị 10 chiếc ba lô da. Chúng tôi đang làm gì để ngăn chặn điều đó?
Vì chúng tôi không chỉ so khớp từ khoá. Chúng tôi đang sử dụng MCP Toolbox để cho phép các tác nhân "suy luận" trên tất cả các nguồn này, đồng thời là dữ liệu giao dịch thực tế trong AlloyDB và các thuộc tính linh hoạt trong MongoDB. Hãy cùng xây dựng!
Bạn sẽ thực hiện
- Cung cấp một cụm AlloyDB cho dữ liệu sản phẩm cốt lõi
- Định cấu hình MongoDB Atlas trên Google Cloud để lưu trữ chi tiết sản phẩm bán cấu trúc
- Tạo một bộ chứa Cloud Storage để phân phát hình ảnh sản phẩm
- Triển khai Bộ công cụ MCP cho cơ sở dữ liệu lên Cloud Run để truy cập dữ liệu đồng nhất
- Chạy quy trình ETL để đẩy dữ liệu vào BigQuery để phân tích
- Trò chuyện với tác nhân AI bằng ngôn ngữ tự nhiên.

Điều kiện tiên quyết
- Một trình duyệt web, chẳng hạn như Chrome
- Một dự án trên Google Cloud đã bật tính năng thanh toán
- Một tài khoản MongoDB Atlas miễn phí trên Google Cloud
2. Trước khi bắt đầu
Tạo một dự án trên Google Cloud
- 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 đám mây của Google Cloud.
- Đảm bảo rằng bạn đã bật tính năng thanh toán cho dự án trên đám mây của bạn. Tìm hiểu cách kiểm tra xem tính năng thanh toán có được bật trong dự án hay không.
Bắt đầu Cloud Shell
Cloud Shell là một môi trường dòng lệnh chạy trong Google Cloud, được tải sẵn các công cụ cần thiết.
- Nhấp vào Kích hoạt Cloud Shell ở đầu Google Cloud Console.
- Sau khi kết nối với Cloud Shell, hãy xác minh thông tin xác thực của bạn:
gcloud auth list - Xác nhận rằng dự án của bạn đã được định cấu hình:
gcloud config get project - Nếu dự án của bạn không được đặt như mong đợi, hãy đặt dự án đó:
export PROJECT_ID=<YOUR_PROJECT_ID> gcloud config set project $PROJECT_ID
Đặt biến
Trong Cloud Shell, hãy đặt biến môi trường cho mã dự án và số dự án:
export PROJECT_ID=$(gcloud config get-value project)
export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
Bật các API bắt buộc
Chạy lệnh này để bật tất cả các API bắt buộc:
gcloud services enable \
alloydb.googleapis.com \
bigquery.googleapis.com \
storage.googleapis.com \
run.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
iam.googleapis.com \
secretmanager.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
aiplatform.googleapis.com
3. Thiết lập Cloud Storage
Cloud Storage đóng vai trò là một kho lưu trữ khổng lồ cho các tài sản truyền thông không có cấu trúc, chẳng hạn như hình ảnh sản phẩm.
- Trong Google Cloud Console, hãy chuyển đến Cloud Storage rồi nhấp vào Create bucket (Tạo bộ chứa).
- Đặt tên riêng biệt cho bộ chứa của bạn trên toàn cầu, ví dụ:
.-ecommerce-images - Nhấp vào Tạo.
- Để cho phép ứng dụng minh hoạ truy cập vào hình ảnh mà không cần xác thực, hãy bỏ đánh dấu lựa chọn Thực thi biện pháp ngăn chặn quyền truy cập công khai trên bộ chứa này, rồi nhấp vào Xác nhận.
- Chuyển đến thẻ Quyền.
- Trong phần Quyền, hãy nhấp vào Cấp quyền truy cập.
- Trong phần New principals (Bên giao đại lý mới), hãy nhập
allUsers. - Trong phần Chọn vai trò, hãy chọn Cloud Storage > Storage Object Viewer (Trình xem đối tượng lưu trữ).
- Nhấp vào Save (Lưu), rồi nhấp vào Allow Public Access (Cho phép truy cập công khai) để xác nhận rằng bạn đang đặt tài nguyên ở chế độ công khai.
- Trong Cloud Shell, hãy lưu tên bộ chứa vào một biến:
Thay thếexport BUCKET=<your-bucket-name>bằng tên của bộ chứa bạn đã tạo.
Tải hình ảnh giữ chỗ lên
Dự án này sử dụng hình ảnh giữ chỗ để mang lại trải nghiệm hình ảnh tốt nhất.
- Trong Cloud Shell, hãy sao chép kho lưu trữ:
git clone https://github.com/AbiramiSukumaran/polyglot-persist-ecommerce.git - Chuyển đến thư mục
UploadImages:cd polyglot-persist-ecommerce/UploadImages - Tải hình ảnh mẫu lên bộ chứa:
gcloud storage cp *.jpg gs://$BUCKET/
4. Thiết lập AlloyDB
AlloyDB đóng vai trò là nguồn đáng tin cậy duy nhất cho dữ liệu có cấu trúc, dữ liệu giao dịch và dữ liệu quan trọng như mã sản phẩm, tên, SKU, giá và hàng tồn kho. AlloyDB cũng hỗ trợ tác nhân AI bằng các tính năng tìm kiếm tương đồng để đưa ra đề xuất và truy vấn bằng ngôn ngữ tự nhiên.
Cung cấp một cụm AlloyDB
- Trong Google Cloud Console, hãy chuyển đến AlloyDB cho PostgreSQL.
- Nhấp vào Create Cluster (Tạo cụm).
- Đối với Cluster ID (Mã nhận dạng cụm), hãy nhập
ecommerce-cluster. - Đặt mật khẩu mạnh cho người dùng
postgres. Để học tập, bạn có thể sử dụngalloydb. - Đối với Database Version (Phiên bản cơ sở dữ liệu), hãy giữ nguyên giá trị mặc định.
- Đối với Khu vực, hãy chọn
us-central1(hoặc khu vực bạn muốn).
Định cấu hình thực thể chính
- Đối với Mã phiên bản, hãy nhập
ecommerce-cluster-primary. - Trong phần Phạm vi cung cấp theo vùng, hãy chọn Một vùng.
- Đối với Dòng máy, hãy chọn
N2và đối với Loại máy, hãy chọn4 vCPU, 32 GB. - Trong phần Kết nối IP riêng tư, hãy chọn Quyền truy cập dịch vụ riêng tư (PSA), rồi chọn mạng
default.Nếu mạng mặc định chưa được thiết lập, hãy nhấp vào Xác nhận thiết lập mạng để tạo một mạng. - Trong phần Public IP Connectivity (Kết nối IP công khai), hãy chọn hộp đánh dấu Enable Public IP (Bật IP công khai) để hộp công cụ MCP kết nối đúng cách trong lớp học lập trình này. Bảng điều khiển tự động bật cờ
password.enforce_complexitymà AlloyDB yêu cầu cho IP công khai. - Trong phần Authorized external networks (Mạng bên ngoài được uỷ quyền), hãy nhập
0.0.0.0/0. Chọn hộp đánh dấu Tôi xác nhận rủi ro rồi nhấp vào Lưu. - Nhấp vào Create Cluster (Tạo cụm).
Khởi chạy cơ sở dữ liệu
- Nhấp vào AlloyDB Studio trong trình đơn điều hướng bên trái.
- Trong trình đơn thả xuống Database (Cơ sở dữ liệu), hãy chọn
postgres. - Chọn Built-in authentication (Xác thực tích hợp) để đăng nhập vào cơ sở dữ liệu.
- Đối với Tên người dùng, hãy sử dụng người dùng
postgres. - Trong phần Password (Mật khẩu), hãy nhập mật khẩu bạn đã đặt trước đó.
- Nhấp vào Xác thực.
- Trong chế độ sửa, hãy mở một thẻ truy vấn mới không có tiêu đề.
- Sao chép DDL sau và nhấp vào Run (Chạy):
CREATE TABLE products_core_table ( product_id UUID PRIMARY KEY, name VARCHAR(255) NOT NULL, sku VARCHAR(50) UNIQUE NOT NULL, price NUMERIC(10, 2) NOT NULL, stock INT NOT NULL ); - Trong Cloud Shell, hãy chuyển đến thư mục gốc của dự án:
cd ~/polyglot-persist-ecommerce - Mở tệp
alloydb_insert_queries.sqltrong Cloud Shell rồi sao chép các truy vấn chèn.cat alloydb_insert_queries.sql - Trong thẻ truy vấn mới không có tiêu đề, chỉ dán các câu lệnh
INSERTrồi nhấp vào Run (Chạy). - Trong một thẻ truy vấn mới không có tiêu đề, hãy sao chép DDL sau đây rồi nhấp vào Run (Chạy) để tạo chỉ mục trên bảng
products_core_table:CREATE INDEX idx_products_core_sku ON products_core_table(sku);
Tạo các mục nhúng hình ảnh để tác nhân AI tìm nạp các sản phẩm tương tự
Tính năng tích hợp tác nhân AI sử dụng các mục nhúng hình ảnh để tìm nạp các sản phẩm tương tự. Các bản nhúng được tạo bằng mô hình multimodalembedding@001 và được lưu trữ trong cơ sở dữ liệu AlloyDB. Các mục nhúng là vectơ 1408 chiều và được lưu trữ trong cột img_embeddings.
Trước khi có thể tạo các mục nhúng, chúng ta phải cấp các vai trò cần thiết cho tài khoản dịch vụ AlloyDB để truy cập vào Cloud Storage.
Cấp vai trò cho tài khoản dịch vụ AlloyDB để truy cập vào Cloud Storage
Cấp cho tài khoản dịch vụ AlloyDB các vai trò cần thiết để đọc hình ảnh từ Cloud Storage và tạo các mục nhúng Vertex AI:
for role in roles/storage.objectUser roles/storage.objectViewer roles/aiplatform.user; do
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role=$role --condition=None
done
Bật tiện ích
Để xây dựng ứng dụng này, chúng ta sẽ sử dụng các tiện ích pgvector và google_ml_integration. Tiện ích pgvector cho phép bạn lưu trữ và tìm kiếm các mục nhúng vectơ. Tiện ích google_ml_integration cung cấp các hàm mà bạn dùng để truy cập vào các điểm cuối dự đoán của Vertex AI nhằm nhận thông tin dự đoán trong SQL. Bật các tiện ích này bằng cách chạy các DDL sau:
- Trong Google Cloud Console, hãy chuyển đến AlloyDB cho PostgreSQL.
- Nhấp vào AlloyDB Studio trong trình đơn điều hướng bên trái.
- Trong chế độ sửa, hãy mở một thẻ truy vấn mới không có tiêu đề.
- Sao chép DDL sau và nhấp vào Run (Chạy):
CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS google_ml_integration;
Khởi động cơ sở dữ liệu bằng các mục nhúng
- Thêm cột img_embeddings vào
products_core_table.ALTER TABLE products_core_table ADD COLUMN img_embeddings vector(1408); - In truy vấn nhúng với tên bộ chứa của bạn được điền sẵn:
cd ~/polyglot-persist-ecommerce sed "s/<STORAGE_BUCKET_NAME>/$BUCKET/g" alloydb_generate_embeddings.sql - Sao chép kết quả, dán vào một thẻ truy vấn mới trong AlloyDB Studio rồi nhấp vào Run (Chạy). Quá trình này mất khoảng một phút. Nếu hết thời gian chờ, hãy chạy lại; các sản phẩm đã có mục nhúng sẽ bị bỏ qua.
5. Thiết lập MongoDB Atlas trên Google Cloud
MongoDB lưu trữ thông tin chi tiết về sản phẩm phong phú, bán cấu trúc và dữ liệu hành vi linh hoạt của người dùng (như lượt nhấp và lượt xem).
Tạo cụm MongoDB
- Đăng nhập vào MongoDB Atlas (tạo tài khoản miễn phí nếu cần).
- Trên trang Deploy your cluster (Triển khai cụm), hãy chọn Free (Miễn phí). (Atlas chọn trước một cấp có tính phí; hãy nhớ chọn cấp Miễn phí.)
- Đối với Nhà cung cấp, hãy chọn Google Cloud và đối với Khu vực, hãy chọn Iowa (us-central1).
- Đối với Name (Tên), hãy nhập
ecommerce-clustervà bỏ đánh dấu Preload sample dataset (Tải trước tập dữ liệu mẫu). - Nhấp vào Create Deployment (Tạo bản triển khai).
Cho phép truy cập và tạo người dùng cơ sở dữ liệu
Atlas sẽ mở hộp thoại Connect to ecommerce-cluster (Kết nối với cụm thương mại điện tử).
- Nhấp vào Thêm địa chỉ IP khác, nhập
0.0.0.0/0rồi thêm địa chỉ đó. - Nhập
store-usercho Tên người dùng vàstoreusercho Mật khẩu, sau đó nhấp vào Tạo người dùng cơ sở dữ liệu. - Nhấp vào Chọn phương thức kết nối, rồi nhấp vào Trình điều khiển và thư viện ứng dụng.
- Trong phần Use this connection string in your application (Sử dụng chuỗi kết nối này trong ứng dụng của bạn), hãy sao chép chuỗi kết nối. Có vẻ như
mongodb+srv://store-user:. Thay thế@ecommerce-cluster.xxxxx.mongodb.net/ bằngstoreuservà lưu chuỗi; bạn sẽ sử dụng chuỗi này trongtools.yaml.
Tạo cơ sở dữ liệu và tập hợp
- Trong bảng điều hướng bên trái, hãy nhấp vào Data Explorer (Trình khám phá dữ liệu), sau đó nhấp vào Create database (Tạo cơ sở dữ liệu) rồi nhập thông tin chi tiết:
- Tên cơ sở dữ liệu:
ecommerce_db - Tên bộ sưu tập:
product_details_collection
- Tên cơ sở dữ liệu:
- Nhấp vào Create Database (Tạo cơ sở dữ liệu).
- Trong Trình khám phá dữ liệu, hãy chọn Tên tập hợp.
- Nhấp vào biểu tượng Thêm dữ liệu (+), rồi nhấp vào Chèn tài liệu.
- Sao chép nội dung JSON từ product_details_export.json rồi dán vào hộp thoại trình chỉnh sửa Insert Document (Chèn tài liệu).
- Atlas hiện một biểu ngữ đề xuất chuyển đổi văn bản sang cú pháp shell. Nhấp vào CHUYỂN ĐỔI, rồi nhấp vào Chèn. Xác minh rằng 192 tài liệu đã được thêm.
- Trong Trình khám phá dữ liệu, hãy nhấp vào Tạo tập hợp (+) bên cạnh cơ sở dữ liệu
ecommerce_db. - Nhập
user_interactions_collectioncho tên bộ sưu tập, rồi nhấp vào Create Collection (Tạo bộ sưu tập). - Trong Trình khám phá dữ liệu, hãy chọn tập hợp
user_interactions_collection. - Nhấp vào biểu tượng Thêm dữ liệu (+), rồi nhấp vào Chèn tài liệu.
- Sao chép nội dung JSON từ user_interactions_export.json rồi dán vào hộp thoại trình chỉnh sửa Insert Document (Chèn tài liệu).
- Atlas hiện một biểu ngữ đề xuất chuyển đổi văn bản sang cú pháp shell. Nhấp vào CHUYỂN ĐỔI, rồi nhấp vào Chèn. Xác minh rằng 211 tài liệu đã được thêm.
6. Thiết lập BigQuery
BigQuery tổng hợp và phân tích hành vi trước đây của người dùng để tạo báo cáo và đề xuất thông minh.
Tạo tập dữ liệu
- Trong Google Cloud Console, hãy chuyển đến BigQuery.
- Bên cạnh mã dự án trong ngăn Explorer, hãy nhấp vào trình đơn có biểu tượng ba dấu chấm rồi chọn Create dataset (Tạo tập dữ liệu).
- Nhập
ecommerce_analyticscho Mã tập dữ liệu. - Đối với Vị trí dữ liệu, hãy chọn
US (multiple regions)(cấu hìnhtools.yamlyêu cầu vị tríUS). - Nhấp vào Tạo tập dữ liệu.
Tạo bảng Analytics
- Mở một truy vấn mới trong không gian làm việc của BigQuery.
- Chạy câu lệnh SQL sau để tạo bảng tóm tắt liên kết người dùng với các hoạt động tương tác với sản phẩm:
CREATE TABLE ecommerce_analytics.user_product_interactions (
user_id STRING DEFAULT 'any user',
product_id STRING,
interaction_score INT
);
Cấp vai trò cho tài khoản dịch vụ Compute Engine
Cấp cho tài khoản dịch vụ Compute mặc định các vai trò mà MCP Toolbox và ứng dụng cần:
for role in \
roles/bigquery.dataEditor \
roles/bigquery.jobUser \
roles/secretmanager.secretAccessor \
roles/alloydb.client \
roles/serviceusage.serviceUsageConsumer \
roles/storage.objectViewer \
roles/aiplatform.user \
roles/artifactregistry.writer; do
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="$role" \
--condition=None
done
Ngoài ra, trong bảng điều khiển, hãy chuyển đến phần IAM & Admin > IAM (IAM và quản trị > IAM), nhấp vào Grant access (Cấp quyền truy cập), nhập tài khoản dịch vụ và thêm các vai trò tương tự.
7. Tìm hiểu toàn bộ ứng dụng
Để tìm hiểu cách hoạt động của từng thành phần với nhau, chúng ta sẽ tạo một ứng dụng thương mại điện tử sử dụng nhiều cơ sở dữ liệu và dịch vụ. Ứng dụng này được xây dựng bằng phần phụ trợ Python (Flask) và tích hợp nhiều dịch vụ cũng như cơ sở dữ liệu của Google Cloud.
Tìm hiểu cấu trúc thư mục
Trong phần tiếp theo, bạn sẽ sao chép kho lưu trữ polyglot-persist-ecommerce và dùng kho lưu trữ đó để chạy ứng dụng trên máy. Sau khi kiểm thử ứng dụng trên máy, chúng ta sẽ triển khai cả MCP Toolbox và ứng dụng lên Cloud Run.
Khám phá các tệp đã tải xuống trong thư mục này. Có các thư mục cấp cao sau:
UploadImages: lưu trữ các thành phần hình ảnh, chủ yếu dùng cho tài liệu hoặc nội dung hình ảnh cho danh mục sản phẩm thương mại điện tử.static: lưu trữ các thành phần web tĩnh của ứng dụng, chẳng hạn như tệp CSS và JavaScript, dùng để tạo kiểu và thêm tính tương tác vào giao diện người dùng ( nguồn).templates: lưu trữ các mẫu HTML (có thể là Jinja2 cho Flask) mà ứng dụng Python dùng để hiển thị linh động các trang web cho danh mục thương mại điện tử ( nguồn).
Các tệp trong kho lưu trữ này hoạt động cùng nhau để xây dựng, định cấu hình và triển khai một ứng dụng thương mại điện tử đa cơ sở dữ liệu. Các tệp trung tâm như app.py điều phối phần phụ trợ bằng cách tích hợp nhiều nguồn dữ liệu được xác định trong tệp SQL và JSON, còn tệp cấu hình đảm bảo triển khai liền mạch cho môi trường đám mây:
app.py: điều phối phần phụ trợ Flask và tích hợp nhiều cơ sở dữ liệu.agentengine.py: Logic cốt lõi để khởi chạy và định cấu hình tác nhân AI của Vertex AI..env: lưu trữ thông tin bí mật cho các kết nối cơ sở dữ liệu và bộ nhớ.tools.yaml: định cấu hình Bộ công cụ MCP cho các thao tác trên cơ sở dữ liệu multidb.Dockerfile: xác định hình ảnh vùng chứa và cách thiết lập môi trường.requirements.txt: liệt kê các thư viện Python cần thiết cho thời gian chạy của ứng dụng.tools.yaml: cấu hình cho Hộp công cụ MCP.Procfile: chỉ định các lệnh thực thi chính thức để triển khai.alloydb_insert_queries.sql: chứa các truy vấn SQL cho dữ liệu quan hệ.product_details_export.jsonvàuser_interactions_export.json: cung cấp dữ liệu JSON mẫu cho cơ sở dữ liệu NoSQL.README.md: hướng dẫn thiết lập, triển khai và tìm hiểu về dự án.
Quy trình toàn diện của ứng dụng
- Thiết lập AlloyDB: Cung cấp một cụm hiệu suất cao và sử dụng các tập lệnh SQL được cung cấp để tạo products_core_table có các cột vectơ cho các mục nhúng hình ảnh.
- Thiết lập MongoDB Atlas: Triển khai một cụm trên Google Cloud để lưu trữ các thuộc tính sản phẩm linh hoạt trong product_details và ghi lại luồng nhấp chuột theo thời gian thực trong user_interactions.
- BigQuery Analytics: Tạo một tập dữ liệu để tổng hợp nhật ký tương tác, cho phép các truy vấn phân tích phức tạp xác định "5 mục thịnh hành nhất" trong số hàng triệu sự kiện.
- Kho lưu trữ Cloud Storage: Tạo một bộ chứa công khai để lưu trữ hình ảnh sản phẩm có độ phân giải cao, đảm bảo mỗi thành phần đều có thể truy cập được bằng URL đã ký hoặc URL công khai cho giao diện người dùng.
- Triển khai Bộ công cụ MCP: Triển khai Bộ công cụ cho Cloud Run, thiết lập Bộ công cụ này làm cầu nối RESTful trung tâm để dịch ý định bằng ngôn ngữ tự nhiên thành các truy vấn nhiều cơ sở dữ liệu.
- Cấu hình Tools.yaml: Xác định "Công cụ" của bạn (chẳng hạn như get_product_core_data hoặc get_top_5_views) liên kết các thao tác SQL và NoSQL cụ thể với tên đơn giản, dễ đọc cho tác nhân.
- Logic phụ trợ Flask: Triển khai các tuyến app.py giao tiếp với Bộ công cụ MCP, xử lý việc điều phối truy xuất dữ liệu và đóng vai trò là API cho giao diện người dùng.
- Điều phối nhiều tác nhân: Định cấu hình các tác nhân ADK trong mã để suy luận thông qua ý định của người dùng, chọn đúng "Công cụ" để giải quyết các truy vấn bán lẻ phức tạp, đa nguồn.
- Tích hợp giao diện người dùng: Xây dựng giao diện index.html có danh mục sản phẩm với tính năng ghi lại hoạt động tương tác, thẻ Analytics để tìm hiểu số liệu phân tích về hiệu suất sản phẩm và một "Thẻ tác nhân" chuyên dụng sử dụng tính năng trò chuyện nhiều tác nhân của ADK để mang lại trải nghiệm mua sắm trò chuyện liền mạch.
Bây giờ, hãy triển khai quy trình điều phối và triển khai.
8. Thiết lập MCP Toolbox và triển khai lên Cloud Run
Hộp công cụ MCP tóm tắt nhiều nguồn dữ liệu của chúng tôi, cho phép ứng dụng tìm nạp và ghi dữ liệu một cách đồng nhất.
Cài đặt Hộp công cụ MCP trên máy cục bộ
Tải tệp nhị phân MCP Toolbox xuống thư mục gốc và đặt tệp đó ở chế độ có thể thực thi:
export VERSION=1.15.0
curl -L -o ~/toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x ~/toolbox
Định cấu hình tools.yaml
Bạn cần xác định các lớp trừu tượng cho AlloyDB, MongoDB và BigQuery. Tệp tools.yaml cho hộp công cụ MCP biết cách tương tác với nhau.
- Kho lưu trữ đã có
tools.yaml. Mở:cd ~/polyglot-persist-ecommerce cloudshell edit tools.yaml - Thay thế phần giữ chỗ
*****bằng các giá trị của bạn:Cơ sở dữ liệu
Trường
Giá trị mẫu
AlloyDB/BigQuery
projectYOUR_PROJECT_IDAlloyDB
regionus-central1AlloyDB
clusterecommerce-clusterAlloyDB
instanceecommerce-cluster-primaryAlloyDB
databasepostgresAlloyDB
passwordalloydbAlloyDB
ipTypepublic(thêm dòng này vào dướialloydb-sourcenếu chưa có)MongoDB
urichuỗi kết nối mà bạn đã lưu trước đó
- Trỏ bản xem trước hình ảnh vào bộ chứa của bạn:
sed -i "s/ecommerce-app-images/$BUCKET/g" tools.yaml
Kiểm thử giao diện người dùng của công cụ
- Trong thiết bị đầu cuối Cloud Shell, hãy chạy hộp công cụ trên máy để phân phát giao diện người dùng:
~/toolbox --config tools.yaml --ui --enable-api - Trong Cloud Shell, hãy nhấp vào Web Preview (Xem trước trên web) > Change port (Thay đổi cổng), nhập
5000rồi thêm/uivào cuối URL mở ra.
Bạn sẽ thấy giao diện người dùng sau đây của bộ công cụ MCP:

Khi bạn hoàn tất, hãy nhấn Ctrl+C để dừng hộp công cụ cục bộ.
Triển khai lên Cloud Run
Triển khai Bộ công cụ MCP cho Cloud Run để cung cấp bộ công cụ này dưới dạng một dịch vụ được quản lý và bảo mật mà ứng dụng của chúng ta có thể dùng để truy vấn cơ sở dữ liệu. Chúng tôi sẽ lưu trữ cấu hình trong Secret Manager để bảo vệ thông tin kết nối nhạy cảm.
- Tải cấu hình
tools.yamllên Google Secret Manager: Nếu sau này bạn thay đổigcloud secrets create tools --data-file=tools.yamltools.yaml, hãy tải một phiên bản mới lên bằng:gcloud secrets versions add tools --data-file=tools.yaml - Triển khai bằng hình ảnh vùng chứa Bộ công cụ MCP công khai:
gcloud run deploy toolbox \ --image us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION \ --region us-central1 \ --service-account ${PROJECT_NUMBER}-compute@developer.gserviceaccount.com \ --set-secrets "/app/tools.yaml=tools:latest" \ --args="--config=/app/tools.yaml","--address=0.0.0.0","--port=8080","--ui","--enable-api" \ --allow-unauthenticated--enable-apibật API REST mà ứng dụng web sử dụng. - Lưu URL của hộp công cụ:
Bạn có thể mởexport TOOLBOX_URL=$(gcloud run services describe toolbox --region us-central1 --format='value(status.url)') echo $TOOLBOX_URL$TOOLBOX_URL/uitrong trình duyệt để xem các công cụ.
9. Thiết lập ứng dụng thương mại điện tử và triển khai lên Cloud Run
Khi cơ sở dữ liệu đang chạy và lớp trừu tượng của Bộ công cụ MCP đã được triển khai, chúng ta có thể chạy ứng dụng web Flask!
Để phân phát danh mục sản phẩm, ứng dụng Flask xử lý dữ liệu bằng cách thực hiện các bước sau:
- Tìm nạp dữ liệu cốt lõi: Truy xuất danh sách đầy đủ các sản phẩm từ AlloyDB (
list_products_core). - Tìm nạp thông tin chi tiết mở rộng: Truy xuất tất cả thông tin chi tiết về sản phẩm từ MongoDB (
list_all_product_details). - Kết hợp danh sách: Nối hai danh sách.
- Làm phong phú bằng nội dung nghe nhìn: Thêm URL hình ảnh trên Cloud Storage vào mọi mặt hàng.
Tạo Công cụ tác nhân
- Cài đặt các phần phụ thuộc:
Lưu ý: Bước này có thể mất vài phút để phân giải và cài đặt các gói.cd ~/polyglot-persist-ecommerce pip install -r requirements.txt - Khởi chạy và đăng ký tác nhân AI bằng Vertex AI Reasoning Engine:
Kết quả sẽ tương tự như sau:export REASONING_ENGINE_LOCATION=us-central1 export APP_NAME=$(python agentengine.py) echo $APP_NAMEprojects/991742412753/locations/us-central1/reasoningEngines/4933254136889081856
Ứng dụng đọc các chế độ cài đặt từ các biến môi trường mà bạn truyền vào lệnh triển khai bên dưới, vì vậy, bạn không cần chỉnh sửa .env.
Triển khai giao diện người dùng lên Cloud Run
- Triển khai ứng dụng web lên Cloud Run để hoàn tất cấu trúc:
gcloud run deploy polyglot --source . \ --region us-central1 \ --allow-unauthenticated \ --set-env-vars="MCP_TOOLBOX_SERVER_URL=$TOOLBOX_URL,GCS_PRODUCT_BUCKET=$BUCKET,FALLBACK_IMAGE_URL=https://storage.googleapis.com/$BUCKET/fallback.jpg,GOOGLE_GENAI_USE_VERTEXAI=TRUE,PROJECT_ID=$PROJECT_ID,GOOGLE_CLOUD_LOCATION=global,REASONING_ENGINE_LOCATION=$REASONING_ENGINE_LOCATION,APP_NAME=$APP_NAME,MODEL=gemini-3.5-flash"
Ứng dụng của bạn hiện đã hoạt động! Mở URL dịch vụ do Cloud Run cung cấp để xem danh mục Multidb Ecommerce. URL sẽ tương tự như https://polyglot-*********-uc.a.run.app/.
10. Khám phá ứng dụng
- Nhấp vào Danh mục sản phẩm để xem tất cả sản phẩm.

- Nhấp vào biểu tượng sản phẩm để xem chi tiết sản phẩm. Bạn sẽ thấy hình ảnh được lấy từ Cloud Storage, chi tiết sản phẩm được lấy từ MongoDB và kho hàng sản phẩm được lấy từ AlloyDB.

- Tương tác với danh mục sản phẩm để tạo các lượt xem và lượt ghi mô phỏng được gửi đến MongoDB.
- Nhấp vào ETL và Analytics để xem số liệu phân tích về sản phẩm. Bạn sẽ thấy số liệu phân tích về sản phẩm được tìm nạp từ BigQuery.

- Nhấp vào thẻ Tác nhân AI để tương tác với tác nhân AI. Đặt câu hỏi bằng ngôn ngữ tự nhiên, chẳng hạn như:
I'm planning a high-altitude photography trip. Show me some weather-resistant backpacks similar in style to aero glow pro but without any leather components. Also, let me know if they are actually in stock and if other photographers have complained about the strap durability in the reviews.
Bạn có thể thấy kết quả tìm kiếm trả về chính xác những gì chúng ta yêu cầu: một chiếc ba lô không có thành phần da, còn hàng và không có lời phàn nàn nào về độ bền của dây đeo trong các bài đánh giá.

11. Dọn dẹp
Để tránh bị tính phí liên tục vào tài khoản Google Cloud, hãy xoá các tài nguyên được tạo trong lớp học lập trình này.
Chạy các lệnh Cloud Shell sau:
gcloud run services delete toolbox --region us-central1 --quiet
gcloud run services delete polyglot --region us-central1 --quiet
gcloud secrets delete tools --quiet
bq rm -r -f -d $PROJECT_ID:ecommerce_analytics
gcloud storage rm --recursive gs://$BUCKET
gcloud alloydb clusters delete ecommerce-cluster --region us-central1 --force --quiet
Xoá phiên bản Agent Engine (không bắt buộc):
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1/$APP_NAME?force=true"
Ngoài ra, trong Google Cloud Console, hãy chuyển đến Vertex AI > Agent Engine rồi xoá thực thể.
Nếu muốn xoá toàn bộ dự án trên đám mây của Google Cloud và tất cả tài nguyên của dự án, hãy chạy lệnh sau:
gcloud projects delete $PROJECT_ID
12. Xin chúc mừng
Xin chúc mừng! Bạn đã xây dựng thành công một kiến trúc Multidb đa đám mây.
Bạn đã minh hoạ cách MCP Toolbox đóng vai trò là cầu nối kiến trúc cho một ứng dụng hiện đại, chuyên biệt. Bằng cách kết hợp đúng cơ sở dữ liệu với đúng công việc, bạn đã đạt được:
- Ghi dữ liệu linh hoạt: MongoDB cho nhật ký sự kiện.
- Tính nhất quán của giao dịch: AlloyDB đảm bảo tính toàn vẹn cốt lõi.
- Phân tích hiệu suất cao: BigQuery cho hoạt động kinh doanh thông minh.
- Phát triển hợp nhất: Một phần phụ trợ Python duy nhất tóm tắt tất cả sự phức tạp bằng cách sử dụng Bộ công cụ MCP.
Tài liệu tham khảo
Tìm hiểu thêm về các sản phẩm có liên quan của Google Cloud và khám phá các lớp học lập trình sau:
- AlloyDB AI: Bắt đầu sử dụng các giá trị Nhúng vectơ bằng AlloyDB AI
- AlloyDB AI: Nhúng đa phương thức trong AlloyDB
- Hộp công cụ MCP: Cài đặt và thiết lập Hộp công cụ MCP cho cơ sở dữ liệu trên AlloyDB
Để biết thêm thông tin về các sản phẩm được sử dụng trong lớp học lập trình này, hãy xem: