Cài đặt và thiết lập Hộp công cụ MCP cho cơ sở dữ liệu của các ứng dụng tác nhân và AI tạo sinh trên AlloyDB

1. Tổng quan

MCP Toolbox for Databases là một máy chủ nguồn mở của Google, giúp bạn dễ dàng tạo các công cụ AI tạo sinh để tương tác với cơ sở dữ liệu. Nhờ đó, bạn có thể phát triển các công cụ cho nhà phát triển dễ dàng, nhanh chóng và an toàn hơn bằng cách xử lý các điểm phức tạp như nhóm kết nối, xác thực và nhiều điểm khác. Công cụ này giúp bạn tạo các công cụ AI tạo sinh cho phép các tác nhân truy cập vào dữ liệu trong cơ sở dữ liệu của bạn. Hộp công cụ cung cấp:

Đơn giản hoá quá trình phát triển: Tích hợp các công cụ vào tác nhân của bạn chỉ bằng chưa đến 10 dòng mã, tái sử dụng các công cụ giữa nhiều tác nhân hoặc khung, đồng thời triển khai các phiên bản mới của công cụ dễ dàng hơn.

Hiệu suất tốt hơn: Các phương pháp hay nhất như nhóm kết nối, xác thực và nhiều phương pháp khác.

Tăng cường bảo mật: Xác thực tích hợp để truy cập vào dữ liệu của bạn một cách an toàn hơn.

Khả năng ghi nhận từ đầu đến cuối: Các chỉ số và hoạt động theo dõi có sẵn với sự hỗ trợ tích hợp cho OpenTelemetry.

Toolbox nằm giữa khung điều phối của ứng dụng và cơ sở dữ liệu của bạn, cung cấp một mặt phẳng điều khiển được dùng để sửa đổi, phân phối hoặc gọi các công cụ. Nền tảng này giúp đơn giản hoá việc quản lý các công cụ bằng cách cung cấp cho bạn một vị trí tập trung để lưu trữ và cập nhật các công cụ, cho phép bạn chia sẻ các công cụ giữa các tác nhân và ứng dụng, đồng thời cập nhật các công cụ đó mà không cần thiết phải triển khai lại ứng dụng của mình.

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

Trong phần này của lớp học, bạn sẽ tạo một ứng dụng dùng một công cụ để thực hiện truy vấn cơ sở dữ liệu đơn giản (AlloyDB) có thể được gọi từ tác nhân hoặc ứng dụng AI tạo sinh. Để làm việc này, bạn sẽ

  1. Cài đặt Bộ công cụ MCP cho cơ sở dữ liệu
  2. Thiết lập công cụ (được thiết kế để thực hiện một tác vụ trong AlloyDB) trên máy chủ Hộp công cụ
  3. Triển khai Bộ công cụ MCP dành cho cơ sở dữ liệu trên Cloud Run
  4. Kiểm thử công cụ bằng điểm cuối Cloud Run đã triển khai
  5. Tạo hàm Cloud Run để gọi Hộp công cụ

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 đám mây của Google Cloud đã bật tính năng thanh toán (các bước trong phần tiếp theo).

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

Tạo dự án

  1. Trong Google Cloud Console, trên trang 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 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. 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, hãy kiểm tra xem bạn đã được xác thực hay chưa và dự án có được đặt thành mã dự án chính xác hay không bằng cách sử dụ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 bạn chưa đặt dự án, hãy dùng lệnh sau để đặt:
gcloud config set project <YOUR_PROJECT_ID>
  1. Bật các API bắt buộc bằng cách chạy lần lượt các lệnh sau trong Cloud Shell Terminal:

Ngoài ra, còn có một lệnh duy nhất để chạy các lệnh bên dưới, nhưng nếu là người dùng tài khoản dùng thử, bạn có thể gặp phải vấn đề về hạn mức khi cố gắng bật các lệnh này hàng loạt. Đó là lý do các lệnh được tách riêng, mỗi lệnh trên một dòng.

gcloud services enable alloydb.googleapis.com
gcloud services enable compute.googleapis.com 
gcloud services enable cloudresourcemanager.googleapis.com 
gcloud services enable servicenetworking.googleapis.com 
gcloud services enable run.googleapis.com 
gcloud services enable cloudbuild.googleapis.com 
gcloud services enable cloudfunctions.googleapis.com 
gcloud services enable aiplatform.googleapis.com

Cách 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 bỏ lỡ 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.

3. Thiết lập cơ sở dữ liệu

Trong phòng thí nghiệm này, chúng ta sẽ sử dụng AlloyDB làm cơ sở dữ liệu để lưu trữ dữ liệu bán lẻ. Nó sử dụng cụm để lưu giữ tất cả các tài nguyên, chẳng hạn như cơ sở dữ liệu và nhật ký. Mỗi cụm có một phiên bản chính cung cấp một điểm truy cập vào dữ liệu. Các bảng sẽ chứa dữ liệu thực tế.

Hãy tạo một cụm, thực thể và bảng AlloyDB nơi tập dữ liệu thương mại điện tử sẽ được tải.

Tạo một cụm và phiên bản

  1. Chuyển đến trang AlloyDB trong Cloud Console.

Một cách dễ dàng để tìm hầu hết các trang trong Cloud Console là tìm kiếm các trang đó bằng thanh tìm kiếm của bảng điều khiển.

  1. Chọn CREATE CLUSTER (Tạo cụm) trên trang đó:

f76ff480c8c889aa.png

  1. Bạn sẽ thấy một màn hình như màn hình bên dưới. Tạo một cụm và thực thể bằng các giá trị sau (Đảm bảo các giá trị khớp nhau trong trường hợp bạn đang sao chép mã xử lý ứng dụng từ kho lưu trữ):
  • mã cụm: "vector-cluster"
  • mật khẩu: "alloydb"
  • Tương thích với PostgreSQL 15
  • Khu vực: "us-central1"
  • Mạng: "default"

538dba58908162fb.png

  1. Khi chọn mạng mặc định, bạn sẽ thấy một màn hình như màn hình bên dưới. Chọn THIẾT LẬP KẾT NỐI.
    7939bbb6802a91bf.png
  2. Tại đây, hãy chọn "Sử dụng dải IP được phân bổ tự động" rồi chọn Tiếp tục. Sau khi xem xét thông tin, hãy chọn TẠO KẾT NỐI. 768ff5210e79676f.png
  3. Sau khi thiết lập mạng, bạn có thể tiếp tục tạo cụm. Nhấp vào CREATE CLUSTER (TẠO CỤM) để hoàn tất việc thiết lập cụm như minh hoạ bên dưới:

e06623e55195e16e.png

Hãy nhớ thay đổi mã nhận dạng phiên bản thành "

vector-instance"

.

Xin lưu ý rằng quá trình tạo Cụm sẽ mất khoảng 10 phút. Sau khi tạo thành công, bạn sẽ thấy một màn hình cho biết thông tin tổng quan về cụm mà bạn vừa tạo.

4. Nhập dữ liệu

Bây giờ, đã đến lúc thêm một bảng có dữ liệu về cửa hàng. Chuyển đến AlloyDB, chọn cụm chính rồi chọn AlloyDB Studio:

847e35f1bf8a8bd8.png

Bạn có thể phải đợi phiên bản của mình hoàn tất quá trình tạo. Sau khi hoàn tất, hãy đăng nhập vào AlloyDB bằng thông tin đăng nhập mà bạn đã tạo trong quá trình tạo cụm. Sử dụng dữ liệu sau để xác thực với PostgreSQL:

  • Tên người dùng : "postgres"
  • Cơ sở dữ liệu : "postgres"
  • Mật khẩu : "alloydb"

Sau khi bạn xác thực thành công vào AlloyDB Studio, bạn có thể nhập các lệnh SQL trong Trình chỉnh sửa. Bạn có thể thêm nhiều cửa sổ Trình chỉnh sửa bằng cách nhấp vào dấu cộng ở bên phải cửa sổ cuối cùng.

91a86d9469d499c4.png

Bạn có thể nhập các lệnh cho AlloyDB trong cửa sổ trình chỉnh sửa, sử dụng các lựa chọn Chạy, Định dạng và Xoá khi cần.

Bật tiện ích

Để tạo ứng dụng này, chúng ta sẽ sử dụng các tiện ích pgvectorgoogle_ml_integration. Tiện ích pgvector cho phép bạn lưu trữ và tìm kiếm các vectơ nhúng. 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 bằng SQL. Bật các tiện ích này bằng cách chạy các DDL sau:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
CREATE EXTENSION IF NOT EXISTS vector;

Nếu bạn muốn kiểm tra các tiện ích đã được bật trên cơ sở dữ liệu, hãy chạy lệnh SQL sau:

select extname, extversion from pg_extension;

Tạo bảng

Tạo bảng bằng câu lệnh DDL bên dưới:

CREATE TABLE toys ( id VARCHAR(25), name VARCHAR(25), description VARCHAR(20000), quantity INT, price FLOAT, image_url VARCHAR(200), text_embeddings vector(768)) ;

Khi thực thi thành công lệnh trên, bạn sẽ có thể xem bảng trong cơ sở dữ liệu.

Nhập dữ liệu

Trong phòng thí nghiệm này, chúng ta có dữ liệu kiểm thử gồm khoảng 72 bản ghi trong tệp SQL này. Nó chứa các trường id, name, description, quantity, price, image_url. Các trường khác sẽ được điền vào sau trong phòng thí nghiệm.

Sao chép các dòng/câu lệnh chèn từ đó, sau đó dán các dòng đó vào một thẻ trình chỉnh sửa trống rồi chọn CHẠY.

Để xem nội dung của bảng, hãy mở rộng phần Trình khám phá cho đến khi bạn thấy bảng có tên là quần áo. Chọn biểu tượng ba dấu chấm dọc (⋮) để xem lựa chọn Truy vấn bảng. Câu lệnh SELECT sẽ mở ra trong một thẻ Trình chỉnh sửa mới.

cfaa52b717f9aaed.png

Cấp quyền

Chạy câu lệnh bên dưới để cấp quyền thực thi cho hàm embedding đối với người dùng postgres:

GRANT EXECUTE ON FUNCTION embedding TO postgres;

Cấp vai trò Người dùng Vertex AI cho tài khoản dịch vụ AlloyDB

Chuyển đến cửa sổ dòng lệnh Cloud Shell và đưa ra lệnh sau:

PROJECT_ID=$(gcloud config get-value project)

gcloud projects add-iam-policy-binding $PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")@gcp-sa-alloydb.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"

5. Tạo các vectơ nhúng cho bối cảnh

Máy tính xử lý các con số dễ dàng hơn nhiều so với xử lý văn bản. Một hệ thống nhúng sẽ chuyển đổi văn bản thành một chuỗi các số thực dấu phẩy động, được gọi là các vectơ nhúng. Các vectơ này sẽ biểu thị văn bản, bất kể văn bản được diễn đạt như thế nào, sử dụng ngôn ngữ gì, v.v.

Ví dụ: một địa điểm bên bờ biển có thể được gọi là "bên bờ biển", "bên bờ biển", "đi bộ từ phòng của bạn đến đại dương", "sur la mer", "на берегу океана", v.v. Tất cả những cụm từ này đều có vẻ khác nhau, nhưng ý nghĩa ngữ nghĩa của chúng (hoặc theo thuật ngữ học máy, các embeddings của chúng) phải rất gần nhau.

Giờ đây, khi dữ liệu và bối cảnh đã sẵn sàng, chúng ta sẽ chạy SQL để thêm các mục nhúng của nội dung mô tả sản phẩm vào bảng trong trường embedding. Bạn có thể sử dụng nhiều mô hình nhúng. Chúng tôi đang sử dụng text-embedding-005 từ Vertex AI. Hãy nhớ sử dụng cùng một mô hình nhúng trong suốt dự án!

Lưu ý: Nếu đang sử dụng một Dự án cũ trên Google Cloud, bạn có thể cần tiếp tục sử dụng các phiên bản cũ hơn của mô hình nhúng văn bản, chẳng hạn như textembedding-gecko.

Quay lại thẻ AlloyDB Studio rồi nhập DML sau:

UPDATE toys set text_embeddings = embedding( 'text-embedding-005', description);

Hãy xem lại bảng toys để xem một số thành phần được nhúng. Hãy nhớ chạy lại câu lệnh SELECT để xem các thay đổi.

SELECT id, name, description, price, quantity, image_url, text_embeddings FROM toys;

Thao tác này sẽ trả về vectơ nhúng (có dạng như một mảng số thực) cho nội dung mô tả đồ chơi như minh hoạ bên dưới:

7d32f7cd7204e1f3.png

Lưu ý: Các Dự án mới được tạo trên Google Cloud trong gói miễn phí có thể gặp phải vấn đề về hạn mức đối với số lượng yêu cầu nhúng được phép mỗi giây đối với các mô hình Nhúng. Bạn nên sử dụng một truy vấn bộ lọc cho mã nhận dạng, sau đó chọn có chọn lọc 1 đến 5 bản ghi, v.v. trong khi tạo vectơ nhúng.

6. Thực hiện tìm kiếm vectơ

Giờ đây, khi bảng, dữ liệu và các thành phần nhúng đều đã sẵn sàng, hãy thực hiện tìm kiếm vectơ theo thời gian thực cho văn bản tìm kiếm của người dùng.

Giả sử người dùng hỏi:

"I want a white plush teddy bear toy with a floral pattern."

Bạn có thể tìm thấy các kết quả trùng khớp cho trường hợp này bằng cách chạy truy vấn bên dưới:

select * from toys
ORDER BY text_embeddings <=> CAST(embedding('text-embedding-005', 'I want a white plush teddy bear toy with a floral pattern') as vector(768))
LIMIT 5;

Hãy xem xét cụm từ tìm kiếm này một cách chi tiết:

Trong truy vấn này,

  1. Văn bản tìm kiếm của người dùng là: "I want a white plush teddy bear toy with a floral pattern."
  2. Chúng ta sẽ chuyển đổi nó thành các mục nhúng trong phương thức embedding() bằng mô hình: text-embedding-005. Bước này có vẻ quen thuộc sau bước cuối cùng, trong đó chúng ta đã áp dụng hàm nhúng cho tất cả các mục trong bảng.
  3. "<=>" biểu thị việc sử dụng phương thức khoảng cách COSINE SIMILARITY. Bạn có thể tìm thấy tất cả các chỉ số về mức độ tương đồng có trong tài liệu của pgvector.
  4. Chúng tôi đang chuyển đổi kết quả của phương thức nhúng thành loại vectơ để tương thích với các vectơ được lưu trữ trong cơ sở dữ liệu.
  5. LIMIT 5 cho biết rằng chúng ta muốn trích xuất 5 hàng xóm gần nhất cho văn bản tìm kiếm.

Kết quả sẽ có dạng như sau:

fa7f0fc3a4c68804.png

Như bạn có thể thấy trong kết quả, các kết quả khớp khá gần với văn bản tìm kiếm. Hãy thử thay đổi văn bản để xem kết quả thay đổi như thế nào.

7. Chuẩn bị AlloyDB cho hoạt động tương tác với hộp công cụ

Để chuẩn bị thiết lập Toolbox, hãy bật chế độ kết nối IP công khai trong phiên bản AlloyDB để công cụ mới có thể truy cập vào cơ sở dữ liệu.

  1. Chuyển đến phiên bản AlloyDB của bạn, nhấp vào CHỈNH SỬA và chuyển đến trang Chỉnh sửa phiên bản chính.
  2. Chuyển đến phần Kết nối IP công khai, đánh dấu vào hộp Bật IP công khai rồi nhập địa chỉ IP của máy Cloud Shell.
  3. Để lấy IP của máy Cloud Shell, hãy chuyển đến Cloud Shell Terminal rồi nhập ifconfig. Từ kết quả, hãy xác định địa chỉ inet eth0 và thay thế 2 chữ số cuối bằng 0.0 với kích thước mặt nạ là "/16". Ví dụ: "XX.XX.0.0/16" trong đó XX là các số.
  4. Dán IP này vào hộp văn bản "Mạng" của Mạng bên ngoài được uỷ quyền trên trang chỉnh sửa phiên bản.

5f6e60e8dec2cea1.png

  1. Nhấp vào CẬP NHẬT THỰC THỂ sau khi hoàn tất.

Quá trình này sẽ mất vài phút để hoàn tất.

8. Cài đặt Bộ công cụ MCP cho cơ sở dữ liệu

  1. Bạn có thể tạo một thư mục dự án để lưu trữ thông tin chi tiết về công cụ. Trong trường hợp này, vì chúng ta đang xử lý dữ liệu của cửa hàng đồ chơi, nên hãy tạo một thư mục có tên là "toystore" rồi chuyển đến thư mục đó. Chuyển đến Cloud Shell Terminal (Thiết bị đầu cuối Cloud Shell) và đảm bảo dự án của bạn được chọn và xuất hiện trong lời nhắc của thiết bị đầu cuối. Chạy lệnh bên dưới từ Cloud Shell Terminal:
mkdir toystore

cd toystore
  1. Chạy lệnh bên dưới để tải xuống và cài đặt hộp công cụ trong thư mục mới:
# see releases page for other versions
export VERSION=0.1.0
curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox
chmod +x toolbox
  1. Chuyển sang Cloud Shell Editor. Mở rộng thư mục "toystore" mới tạo rồi tạo một tệp mới có tên là tools.yaml. Sao chép nội dung bên dưới. Thay YOUR_PROJECT_ID và kiểm tra xem tất cả thông tin kết nối khác có chính xác hay không.
sources:
    alloydb-toys:
        kind: "alloydb-postgres"
        project: "YOUR_PROJECT_ID"
        region: "us-central1"
        cluster: "vector-cluster"
        instance: "vector-instance"
        database: "postgres"
        user: "postgres"
        password: "alloydb"

tools:
  get-toy-price:
    kind: postgres-sql
    source: alloydb-toys
    description: Get the price of a toy based on a description.
    parameters:
      - name: description
        type: string
        description: A description of the toy to search for.
    statement: |
      SELECT price FROM toys
      ORDER BY text_embeddings <=> CAST(embedding('text-embedding-005', $1) AS vector(768))
      LIMIT 1;

Trong công cụ này, chúng ta chỉ tìm kết quả phù hợp nhất với văn bản tìm kiếm của người dùng (nội dung mô tả đồ chơi tuỳ chỉnh) và trả về giá của kết quả đó. Bạn cũng có thể sửa đổi để tìm giá trung bình của 5 món đồ chơi phù hợp nhất:

select avg(price) from ( SELECT price FROM toys ORDER BY text_embeddings <=> CAST(embedding(‘text-embedding-005', $1) AS vector(768)) LIMIT 5 ) as price;

Bạn đã hoàn tất việc xác định công cụ!

Để biết thêm thông tin chi tiết về cách định cấu hình tools.yaml, hãy tham khảo tài liệu này.

  1. Chuyển sang Cloud Shell Terminal rồi nhập lệnh sau để khởi động máy chủ hộp công cụ bằng cấu hình công cụ của bạn:
./toolbox --tools_file "tools.yaml"
  1. Giờ đây, nếu mở máy chủ ở chế độ xem trước trên web trên đám mây, bạn sẽ thấy máy chủ Toolbox đang chạy với công cụ mới có tên là get-toy-price.

9. Triển khai Cloud Run của Bộ công cụ MCP cho cơ sở dữ liệu

Hãy triển khai ứng dụng này lên Cloud Run để bạn có thể sử dụng công cụ này trong thực tế.

  1. Làm theo từng hướng dẫn trong trang này cho đến khi bạn thấy lệnh gcloud run deploy toolbox ở điểm thứ 3 trong phần "Triển khai cho Cloud Run". Bạn cần chọn phương án đầu tiên chứ không phải phương án thứ hai (dành cho trường hợp bạn đang sử dụng phương thức mạng VPC).
  2. Sau khi triển khai thành công, bạn sẽ nhận được một điểm cuối được triển khai Cloud Run của máy chủ Toolbox. Kiểm thử bằng lệnh CURL.

Lưu ý:

Hãy làm theo hướng dẫn trên trang một cách cẩn thận và đừng bỏ lỡ.

Bạn đã sẵn sàng sử dụng công cụ mới triển khai trong ứng dụng dựa trên tác nhân của mình!!!

10. Kết nối ứng dụng của bạn với Hộp công cụ MCP cho cơ sở dữ liệu

Trong phần này, chúng ta sẽ tạo một ứng dụng nhỏ để kiểm thử công cụ của bạn nhằm tương tác với các nhu cầu của ứng dụng và truy xuất phản hồi.

  1. Chuyển đến Google Colab rồi mở một sổ tay mới.
  2. Chạy lệnh sau trong sổ tay
!pip install toolbox-core
from toolbox_core import ToolboxClient

# Replace with your Toolbox service's URL
toolbox = ToolboxClient("https://toolbox-*****-uc.a.run.app")

# This tool can be passed to your application!
tool = toolbox.load_tool("get-toy-price")

# If there are multiple tools 
# These tools can be passed to your application!
# tools = await client.load_toolset("<<toolset_name>>")

# Invoke the tool with a search text to pass as the parameter
 result = tool.invoke({"description": "white plush toy"})

# Print result
print(result)
  1. Bạn sẽ thấy kết quả như sau:

5074f209a86c4f15.png

Đây là công cụ được gọi một cách rõ ràng trong một ứng dụng Python sử dụng bộ công cụ toolbox-langchain.

  1. Nếu muốn sử dụng công cụ này và liên kết công cụ đó với một tác nhân trong ứng dụng tích hợp LangGraph, bạn có thể dễ dàng thực hiện việc đó bằng bộ công cụ langgraph.
  2. Hãy tham khảo đoạn mã cho việc này.

11. Đưa lên đám mây!!!

Hãy gói đoạn mã Python này trong một Cloud Run Functions để biến nó thành không máy chủ!

  1. Sao chép nguồn từ thư mục kho lưu trữ mã để chuyển nguồn này sang Cloud Functions.
  2. Chuyển đến bảng điều khiển Cloud Run Functions rồi nhấp vào TẠO HÀM.
  3. Giữ nguyên trạng thái chưa xác thực cho ứng dụng minh hoạ và chọn thời gian chạy Python 3.11 ở trang tiếp theo.
  4. Sao chép các tệp main.pyrequirements.txt từ kho lưu trữ nguồn được chia sẻ ở bước 1 rồi dán vào các tệp tương ứng.
  5. Thay thế URL máy chủ trong main.py bằng URL máy chủ của bạn.
  6. Triển khai hàm và bạn sẽ có một điểm cuối REST để công cụ dự đoán giá có thể truy cập trong ứng dụng web cửa hàng đồ chơi.
  7. Điểm cuối của bạn sẽ có dạng như sau:

https://us-central1-*****.cloudfunctions.net/toolbox-toys

  1. Bạn có thể kiểm thử trực tiếp trên bảng điều khiển Cloud Functions bằng cách chuyển đến thẻ TESTING (KIỂM THỬ) rồi nhập nội dung sau làm dữ liệu đầu vào của yêu cầu:

{

           "search": "White plush toy"

}

  1. Nhấp vào TEST THE FUNCTION (KIỂM THỬ HÀM) hoặc chạy trong Cloud Shell Terminal (Thiết bị đầu cuối Cloud Shell) tuỳ theo lựa chọn của bạn. Bạn sẽ thấy kết quả ở bên phải trong phần "Đầu ra":

d7ba57cf5e5ca553.png

12. Xin chúc mừng

Xin chúc mừng! Bạn đã tạo thành công một công cụ mạnh mẽ và thực sự theo mô-đun, có thể tương tác trên nhiều cơ sở dữ liệu, nền tảng và khung điều phối AI tạo sinh để giúp tạo ứng dụng theo hướng tác nhân.