1. Giới thiệu
Việc lập trình bằng cảm ứng đã tạo ra một cuộc cách mạng về tốc độ và cách chúng ta phát triển giao diện người dùng, nhưng thường gặp phải trở ngại khi tiếp cận cơ sở dữ liệu. Theo cách truyền thống, nhà phát triển phải chuyển đổi bối cảnh, viết các giản đồ SQL phức tạp, quản lý nhóm kết nối và định cấu hình tiện ích cơ sở dữ liệu theo cách thủ công.
Trong lớp học lập trình này, bạn sẽ trải nghiệm quy trình phát triển cơ sở dữ liệu đàm thoại liền mạch. Bằng cách sử dụng Giao thức bối cảnh mô hình (MCP) và một IDE có tác nhân, bạn sẽ coi trình chỉnh sửa của mình như một Kỹ sư dữ liệu giàu kinh nghiệm – từ một ý tưởng đơn giản đến một ứng dụng cơ sở dữ liệu được kết nối đầy đủ, tối ưu hoá và hỗ trợ AI chỉ trong vài phút mà không cần rời khỏi không gian làm việc.
Sản phẩm bạn sẽ tạo ra
Trong lớp học lập trình này, bạn sẽ xây dựng và triển khai Hướng dẫn ẩm thực bằng AI – một ứng dụng Next.js hiện đại được hỗ trợ bởi AlloyDB. Ứng dụng này sẽ hỗ trợ:
- Nhập danh mục linh hoạt: Tự động nhập và cấu trúc dữ liệu nhà hàng từ tệp CSV thô.
- Tìm kiếm dựa trên từ khoá: Truy vấn cơ sở dữ liệu một cách linh động bằng tính năng tìm kiếm toàn bộ văn bản.
- Tìm kiếm theo ngữ nghĩa dựa trên AI: Tìm nhà hàng bằng cách mô tả "bầu không khí" (ví dụ: "nơi ấm cúng để hẹn hò" hoặc "đồ ăn nhanh vào đêm muộn") bằng cách sử dụng các thành phần nhúng của Nền tảng tác nhân.

Kiến thức bạn sẽ học được
- Cung cấp một phiên bản Google Cloud AlloyDB có cấu hình IP công khai và mạng VPC.
- Kết nối Antigravity IDE trực tiếp với AlloyDB bằng Bộ công cụ Giao thức ngữ cảnh mô hình (MCP).
- Kết nối giao diện người dùng Next.js với cơ sở dữ liệu trực tiếp bằng cách sử dụng các biến môi trường và kết nối SSL an toàn.
- Bật tính năng tích hợp Nền tảng tác nhân trong cơ sở dữ liệu để tạo các truy vấn nhúng vectơ bằng text-embedding-004.
- Thực hiện tìm kiếm tương tự theo vectơ bằng toán tử khoảng cách cosine (<=>).
- Tối ưu hoá hiệu suất cơ sở dữ liệu cho quy mô sản xuất bằng cách sử dụng tính năng lập chỉ mục HNSW và Phân vùng bảng – đóng vai trò là DBA ảo.
Bạn cần có
Để hoàn tất lớp học lập trình này, bạn cần:
- Antigravity Desktop IDE được cài đặt trên máy của bạn.
- Một dự án trên Google Cloud đã bật tính năng thanh toán.
- Google Cloud CLI (gcloud) và Git đã được cài đặt và xác thực trên máy cục bộ của bạn.
- Trình duyệt web (nên dùng Chrome).
Lớp học lập trình này dành cho nhà phát triển ở mọi cấp độ, kể cả người mới bắt đầu.
2. Trước khi bắt đầu
Phần này hướng dẫn bạn thực hiện quy trình thiết lập ban đầu bắt buộc trong Dự án Google Cloud trước khi bạn có thể bắt đầu xây dựng Hướng dẫn ẩm thực Berlin bằng AI.
Tạo một dự án
- 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.
- Đả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ó được bật trên một dự án hay không .
Cài đặt điều kiện tiên quyết cục bộ
Đảm bảo bạn đã cài đặt các công cụ sau trên máy cục bộ:
- Antigravity IDE: Cài đặt Antigravity Desktop IDE
- Google Cloud SDK: Tải và cài đặt Google Cloud CLI.
- Git: Tải xuống và cài đặt Git.
Xác thực và thiết lập dự án
Bạn sẽ thực thi tất cả các hướng dẫn trên dòng lệnh ngay trong IDE.
- Mở Antigravity IDE trên máy cục bộ
- Mở cửa sổ dòng lệnh của Antigravity rồi sao chép kho lưu trữ dự án:
git clone https://github.com/mtoscano84/vibe-coding-postgres-mcp.git
- Mở thư mục dự án:
- Chuyển đến File > Open Folder (Mở thư mục) hoặc Open... (Mở...).
- Di chuyển đến và chọn thư mục vibe-coding-postgres-mcp vừa được sao chép.
- Sau khi thư mục dự án mở ra, hãy khởi chạy một thiết bị đầu cuối tích hợp mới trong Antigravity. Đặt biến môi trường PROJECT_ID và định cấu hình gcloud CLI để sử dụng biến này (thay thế [YOUR_PROJECT_ID] bằng mã dự án thực tế của bạn trên GCP):
export PROJECT_ID=[YOUR_PROJECT_ID]
gcloud config set project $PROJECT_ID
- Đăng nhập vào Google Cloud CLI:
gcloud auth login
- Xác minh tài khoản đang hoạt động:
gcloud auth list
Bật các API bắt buộc
Chạy lệnh sau trong thiết bị đầu cuối Antigravity để bật các dịch vụ cần thiết của Google Cloud:
gcloud services enable alloydb.googleapis.com \
compute.googleapis.com \
servicenetworking.googleapis.com \
aiplatform.googleapis.com \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com
3. Tạo phiên bản AlloyDB
Trong phần này, bạn sẽ chạy một tập lệnh tự động trong thiết bị đầu cuối Antigravity để cung cấp cụm và phiên bản AlloyDB trong Google Cloud
Trong thiết bị đầu cuối tích hợp Antigravity đang hoạt động (đã nằm trong thư mục dự án vibe-coding-postgres-mcp), hãy chạy tập lệnh cấp phát AlloyDB:
source database/deploy_alloydb.sh --region us-central1 --public-ip
Lưu ý: Quy trình cấp phép mất khoảng 10 đến 15 phút
Tập lệnh cung cấp sẽ:
- Tạo một mạng VPC có tên là default (nếu mạng này chưa có trong dự án của bạn).
- Thiết lập quyền truy cập vào dịch vụ riêng tư cho AlloyDB.
- Triển khai một cụm AlloyDB và một phiên bản chính có cả IP riêng tư và IP công khai được bật.
- Cấp các quyền cần thiết của Nền tảng tác nhân cho tác nhân dịch vụ AlloyDB.
Nội dung xuất sẽ tương tự như:
----------------------------------------
Deployment Process Completed
Cluster: alloydb-aip-01 (STANDARD)
Instance: alloydb-aip-01-pr
Region: us-central1
Private IP: XX.XX.XX.XX
Public IP: XX.XX.XX.XX
Initial Password: XXXXXXXXXX (if new cluster)
----------------------------------------
Vui lòng sao chép và lưu những thông tin sau:
- IP riêng tư của AlloyDB: Được ứng dụng Cloud Run dùng để kết nối một cách an toàn trong VPC.
- IP công khai của AlloyDB: Được IDE Antigravity cục bộ của bạn dùng để kết nối trực tiếp.
- Mật khẩu cơ sở dữ liệu: Mật khẩu được tạo tự động cho người dùng postgres.
4. Triển khai Giao diện người dùng
Trong phần này, bạn sẽ triển khai giao diện người dùng Next.js cơ sở (Trạng thái 0) lên Google Cloud Run bằng thiết bị đầu cuối tích hợp Antigravity. Phiên bản ban đầu này sử dụng dữ liệu mô phỏng và chưa kết nối với cơ sở dữ liệu.
Trước tiên, hãy chạy trực tiếp các lệnh sau trong thiết bị đầu cuối Antigravity để cấp các vai trò IAM cần thiết cho tài khoản dịch vụ mặc định của Compute Engine:
PROJECT_NUMBER=$(gcloud projects describe $(gcloud config get-value project) --format="value(projectNumber)")
# Grant Storage Object Viewer (to read source code)
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/storage.objectViewer"
# Grant Log Writer (to write build logs)
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/logging.logWriter"
# Grant Artifact Registry Writer (to push container images)
gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
--member="serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com" \
--role="roles/artifactregistry.writer"
Từ thư mục gốc vibe-coding-postgres-mcp trong thiết bị đầu cuối Antigravity, hãy chạy lệnh sau để biên dịch và triển khai ứng dụng Next.js vào mạng VPC:
gcloud run deploy berlin-gastronomy-guide \
--source frontend/ \
--network=default \
--subnet=default \
--allow-unauthenticated \
--region=us-central1
Sau khi quá trình triển khai hoàn tất, URL dịch vụ sẽ được in.
Building using Dockerfile and deploying container to Cloud Run service [berlin-gastronomy-guide] in project [vibe-coding-postgres-mcp] region [us-central1]
Building and deploying...
Validating configuration...done
Uploading sources...done
Building Container... Logs are available at [ https://console.cloud.google.com/cloud-build/builds;region=us-central1/46a6e834-d5e9-4dfd-885e-d39e2790f72d?project=734791203988 ]....done
Setting IAM Policy...done
Creating Revision...done
Routing traffic...done
Done.
Service [berlin-gastronomy-guide] revision [berlin-gastronomy-guide-00002-n6k] has been deployed and is serving 100 percent of traffic.
Service URL: https://berlin-gastronomy-guide-[YOUR_PROJECT_NUMBER].us-central1.run.app
Sao chép URL rồi mở trong trình duyệt.
Xác minh rằng bạn thấy trang web Berlin AI Gastronomy Guide (Hướng dẫn ẩm thực Berlin bằng AI) hiển thị các thẻ nhà hàng mô phỏng.

5. Kết nối Antigravity với Google Cloud
Để cho phép tác nhân AI trong IDE (Antigravity) chạy cục bộ tương tác với cơ sở dữ liệu, chúng ta sẽ sử dụng Máy chủ MCP AlloyDB chính thức của Google Cloud.
Vì chúng ta đã bật IP công khai trên thực thể AlloyDB trong quá trình cung cấp, nên IDE cục bộ của bạn có thể kết nối trực tiếp với thực thể đó qua Internet. Kết nối được bảo mật bằng SSL và xác thực mật khẩu, đồng thời máy chủ MCP sử dụng thông tin đăng nhập Google Cloud cục bộ của bạn để uỷ quyền kết nối.
Định cấu hình máy chủ MCP trong Antigravity
- Trong Antigravity IDE, hãy nhấp vào trình đơn ba dấu chấm (...) ở góc trên cùng bên phải của cửa sổ trò chuyện.
- Chọn MCP Servers (Máy chủ MCP), rồi nhấp vào Managed MCP Servers (Máy chủ MCP được quản lý) (hoặc View raw config (Xem cấu hình thô)/Edit Configuration File (Chỉnh sửa tệp cấu hình)).
- Thêm khối JSON sau vào bên trong đối tượng mcpServers. Hãy nhớ thay thế [YOUR_PROJECT_ID] và [YOUR_ALLOYDB_PASSWORD] bằng mã dự án thực tế của bạn và mật khẩu cơ sở dữ liệu mà bạn đã lưu từ bước cấp phép AlloyDB:
"alloydb-postgres": {
"command": "npx",
"args": [
"-y",
"@toolbox-sdk/server@latest",
"--prebuilt",
"alloydb-postgres",
"--stdio"
],
"env": {
"ALLOYDB_POSTGRES_PROJECT": "[YOUR_PROJECT_ID]",
"ALLOYDB_POSTGRES_REGION": "us-central1",
"ALLOYDB_POSTGRES_CLUSTER": "alloydb-aip-01",
"ALLOYDB_POSTGRES_INSTANCE": "alloydb-aip-01-pr",
"ALLOYDB_POSTGRES_DATABASE": "postgres",
"ALLOYDB_POSTGRES_USER": "postgres",
"ALLOYDB_POSTGRES_PASSWORD": "[YOUR_ALLOYDB_PASSWORD]"
}
}
- Lưu tệp cấu hình
- IDE sẽ tự động khởi động máy chủ MCP. Bạn sẽ thấy một dấu chấm màu xanh lục bên cạnh alloydb-postgres trong bảng điều khiển MCP, cho biết rằng bạn đã kết nối thành công.
6. Lập trình theo cảm hứng: Nhập dữ liệu vào cơ sở dữ liệu
Giờ đây, khi Antigravity IDE đã kết nối với phiên bản AlloyDB thông qua máy chủ MCP, bạn có thể bắt đầu trải nghiệm lập trình theo cảm hứng.
Trong bước này, bạn sẽ hướng dẫn tác nhân AI đọc một tệp CSV cục bộ chứa danh mục ẩm thực của Berlin và tải tệp đó vào cơ sở dữ liệu AlloyDB.
The Task
Bạn sẽ sử dụng tính năng Trò chuyện với nhân viên hỗ trợ trong Antigravity. Tác nhân sẽ tự động đọc tệp, phân tích các kiểu dữ liệu, kết nối với cơ sở dữ liệu của bạn, tạo bảng và chèn các bản ghi.
Trong Antigravity, hãy mở bảng điều khiển Agent Chat (thường ở bên phải trình chỉnh sửa).
Sau đó, sao chép và dán câu lệnh sau vào cuộc trò chuyện rồi nhấn phím Enter:
Read the headers of database/seed_data_berlin.csv to determine column data types and create the restaurants table using the MCP tool execute_sql. Then, read the CSV rows locally and insert all 100 records into remote AlloyDB using a single batched multi-row INSERT INTO ... VALUES (...), (...), ...; statement via execute_sql. Do not print the CSV contents, row payloads, or SQL statements to the chat transcript.
Xác minh
Nhân viên hỗ trợ sẽ:
- Đọc tiêu đề tệp CSV và một số hàng mẫu để xác định giản đồ phù hợp.
- Gọi công cụ MCP của AlloyDB để tạo bảng nhà hàng.
- Chèn hàng loạt 100 bản ghi nhà hàng từ tệp CSV vào cơ sở dữ liệu.
7. Lập trình theo cảm hứng: Kết nối giao diện người dùng với cơ sở dữ liệu
Trong phần này, bạn sẽ kết nối giao diện người dùng Next.js với cơ sở dữ liệu AlloyDB đang hoạt động. Bạn sẽ hướng dẫn tác nhân thay thế dữ liệu mô phỏng bằng một truy vấn cơ sở dữ liệu trực tiếp và triển khai tính năng tìm kiếm bằng từ khoá.
The Task
Bạn sẽ nhắc tác nhân viết mã kết nối và cập nhật trang chủ. Vì chúng tôi đã cam kết quy tắc SSL của cơ sở dữ liệu trong .agents/AGENTS.md, nên tác nhân sẽ tự động định cấu hình nhóm kết nối để sử dụng SSL cho các kết nối đám mây mà bạn không cần chỉ định trong câu lệnh!
Trong cuộc trò chuyện với Antigravity Agent, hãy sao chép và dán câu lệnh sau rồi nhấn Enter (thay thế [YOUR_PASSWORD] bằng mật khẩu thực tế của cơ sở dữ liệu):
Connect our Next.js frontend to the restaurants table in the database using the pg library. Use a connection pool configured with environment variables: DB_HOST, DB_USER (postgres), DB_PASS (password is '
[YOUR_PASSWORD]
'), and DB_NAME (postgres). Replace the mock data in page.tsx with a live query, and implement keyword search on the name, category, and description. When testing or verifying queries, always use LIMIT 3 and suppress quiet npm/build logs.
Quan sát tác nhân khi tác nhân thực hiện tác vụ:
- Lệnh này sẽ cài đặt gói pg và các loại TypeScript của gói đó (@types/pg).
- Thao tác này sẽ tạo một tệp kết nối cơ sở dữ liệu (hoặc một Thao tác trên máy chủ Next.js) và định cấu hình nhóm kết nối.
- Công cụ này sẽ đọc các quy tắc AGENTS.md và tự động thêm cấu hình SSL cho các máy chủ không phải cục bộ.
- Thao tác này sẽ viết lại page.tsx để truy vấn cơ sở dữ liệu và lọc kết quả dựa trên cụm từ tìm kiếm.
Xác minh
Để kiểm thử các thay đổi, bạn phải triển khai lại giao diện người dùng cho Cloud Run. Vì chúng ta đang sử dụng quy trình "Chỉ trên đám mây", nên đây là cách mã mới được chuyển đi.
Mở thiết bị đầu cuối tích hợp trong Antigravity (đảm bảo bạn đang ở thư mục gốc).
Chạy lệnh triển khai, truyền IP riêng tư và Mật khẩu AlloyDB làm biến môi trường (thay thế các phần giữ chỗ bằng giá trị thực tế của bạn):
gcloud run deploy berlin-gastronomy-guide \
--source frontend/ \
--network=default \
--subnet=default \
--set-env-vars="DB_HOST=[YOUR_ALLOYDB_PRIVATE_IP],DB_USER=postgres,DB_PASS=[YOUR_PASSWORD],DB_NAME=postgres" \
--allow-unauthenticated \
--region=us-central1
Sau khi quá trình triển khai hoàn tất, hãy mở URL dịch vụ trong trình duyệt.
Thử tìm "Burgermeister" hoặc "Kebab". Bạn sẽ thấy các nhà hàng thực tế được tải từ cơ sở dữ liệu!
Lưu ý rằng các thẻ nhà hàng hiện hiển thị hình ảnh GCS thực tế (vì các bản ghi trong cơ sở dữ liệu chứa các URL GCS công khai mà chúng ta đã tải lên trước đó!).
8. Lập trình theo cảm hứng: Bật tính năng Tìm kiếm ngữ nghĩa
Trong phần này, bạn sẽ nâng cấp ứng dụng để hỗ trợ tính năng Tìm kiếm vectơ ngữ nghĩa dựa trên AI. Thay vì chỉ khớp chính xác từ khoá, người dùng sẽ có thể tìm kiếm bằng cách mô tả "bầu không khí" hoặc trải nghiệm mà họ đang tìm kiếm (ví dụ: "địa điểm ăn tối lãng mạn" hoặc "ăn nhanh sau khi đi câu lạc bộ").
The Task
Bạn sẽ hướng dẫn tác nhân bật tính năng tìm kiếm ngữ nghĩa trên bảng nhà hàng. Tác nhân này sẽ tận dụng kỹ năng tuỳ chỉnh add-vector-search-alloydb trong kho lưu trữ để tự động xử lý các tiện ích cơ sở dữ liệu, việc đăng ký mô hình Nền tảng tác nhân, việc tạo dữ liệu nhúng và việc cập nhật truy vấn.
Trong cuộc trò chuyện với Antigravity Agent, hãy sao chép và dán câu lệnh sau rồi nhấn phím Enter:
Upgrade our database to support Semantic Vector Search on the restaurants table based on the description column. Then, update our frontend search query to use vector similarity search. Execute embedding generation quietly without printing embedding vectors or SQL progress logs to chat.
Quan sát tác nhân khi tác nhân thực hiện tác vụ:
- Thao tác này sẽ kết nối với AlloyDB và bật các tiện ích vectơ (pgvector) và google_ml_integration.
- Thao tác này sẽ đăng ký mô hình nhúng Nền tảng tác nhân (text-embedding-004) trong cơ sở dữ liệu.
- Thao tác này sẽ thêm một cột nhúng mới vào bảng nhà hàng.
- Thao tác này sẽ chạy một truy vấn trong cơ sở dữ liệu để tạo các vectơ nhúng cho tất cả 100 nội dung mô tả nhà hàng.
- Thao tác này sẽ cập nhật mã giao diện người dùng để tạo một mục nhúng cho cụm từ tìm kiếm của người dùng và thực hiện tìm kiếm mức độ tương đồng của vectơ bằng cách sử dụng toán tử khoảng cách cosine (<=>).
Xác minh
Triển khai lại mã đã cập nhật lên Cloud Run.
Trong thiết bị đầu cuối tích hợp Antigravity, hãy chạy lệnh triển khai (thay thế phần giữ chỗ bằng giá trị thực của bạn):
gcloud run deploy berlin-gastronomy-guide \
--source frontend/ \
--network=default \
--subnet=default \
--set-env-vars="DB_HOST=[YOUR_ALLOYDB_PRIVATE_IP],DB_USER=postgres,DB_PASS=[YOUR_PASSWORD],DB_NAME=postgres" \
--allow-unauthenticated \
--region=us-central1
Sau khi quá trình triển khai hoàn tất, hãy mở URL dịch vụ trong trình duyệt.
Kiểm thử tính năng tìm kiếm ngữ nghĩa bằng cách nhập nội dung mô tả bằng ngôn ngữ tự nhiên, chẳng hạn như:
- "a romantic dinner spot"
- "quick bite after clubbing"
Bạn sẽ nhận thấy rằng kết quả trả về là những nhà hàng có liên quan cao (như Cafe Clärchens hoặc Burgermeister) ngay cả khi tên hoặc phần mô tả của những nhà hàng này không có chính xác các từ "lãng mạn" hoặc "đi chơi đêm"!
9. Lập trình theo cảm hứng: Tối ưu hoá cơ sở dữ liệu
Khi ứng dụng của bạn phát triển, cơ sở dữ liệu phải được tối ưu hoá để xử lý một lượng lớn dữ liệu (hơn 100.000 hàng) và lưu lượng tìm kiếm đồng thời cao. Trong bước cuối cùng này, bạn sẽ coi tác nhân của mình là một Quản trị viên cơ sở dữ liệu ảo (DBA) để phân tích và tối ưu hoá giản đồ cơ sở dữ liệu.
The Task
Bạn sẽ yêu cầu tác nhân đóng vai trò là Kiến trúc sư cơ sở dữ liệu chính, phân tích giản đồ hiện tại và đề xuất các điểm tối ưu hoá. Sau khi bạn xem xét và phê duyệt các đề xuất, tác nhân sẽ sử dụng kỹ năng tuỳ chỉnh optimize-database-alloydb để tự động áp dụng các đề xuất đó.
Act as my Principal Database Architect! Our semantic search is feeling great, but let's level up our backend to effortlessly scale to 100K+ rows and handle high concurrent traffic. Inspect our restaurants schema quietly, and work your magic by immediately applying your top 2 production optimizations—an HNSW vector index and list partitioning by neighborhood—right now in this turn. No need to wait for approval! Keep the SQL logs clean and hit me with a crisp 3-bullet summary of how we just supercharged our database.
Xác minh
Tác nhân sẽ tự động phân tích giản đồ cơ sở dữ liệu của bạn và áp dụng 2 quy trình tối ưu hoá quan trọng cho hoạt động sản xuất:
- Chỉ mục HNSW (Hierarchical Navigable Small World): Tăng tốc độ tìm kiếm mức độ tương đồng của vectơ theo thứ tự độ lớn mà không cần quét toàn bộ bảng.
- Phân vùng danh sách khai báo: Phân vùng bảng nhà hàng theo khu vực lân cận để mở rộng quy mô và duy trì hiệu quả.
Phần này sẽ kết thúc bằng cách cung cấp cho bạn bản tóm tắt ngắn gọn gồm 3 gạch đầu dòng giải thích các lợi ích về cấu trúc của những bản nâng cấp sản xuất này!
10. Thử thách: Thêm bài đánh giá và điểm xếp hạng
Giờ là lúc bạn thử thách kỹ năng Lập trình rung của mình! Trong thử thách này, bạn sẽ mở rộng Hướng dẫn ẩm thực Berlin để hỗ trợ bài đánh giá của khách hàng và điểm xếp hạng theo sao.
The Task
Thay vì làm theo câu lệnh sao chép và dán, hãy viết câu lệnh của riêng bạn trong Antigravity Agent Chat để triển khai các tính năng sau:
- Giản đồ cơ sở dữ liệu: Tạo một bảng
reviewsmới được liên kết với bảngrestaurants. Nó sẽ lưu trữ điểm xếp hạng (số nguyên từ 1 đến 5) và một bình luận ngắn dạng văn bản. - Tạo dữ liệu: Tạo 3 đến 4 bài đánh giá chân thực của khách hàng cho mỗi nhà hàng trong số 100 nhà hàng trong cơ sở dữ liệu.
- Tích hợp giao diện người dùng: Cập nhật giao diện người dùng Next.js để tính toán và hiển thị điểm xếp hạng trung bình (ví dụ:
⭐⭐⭐⭐☆) trên mỗi thẻ nhà hàng. - Lọc: Thêm một bộ lọc thả xuống ở đầu trang để lọc nhà hàng theo điểm xếp hạng (ví dụ: "Hiện tất cả", "4 sao trở lên", "3 sao trở lên").
Xác minh
Sau khi tác nhân hoàn tất nhiệm vụ, hãy triển khai lại ứng dụng của bạn vào Cloud Run (thay thế phần giữ chỗ bằng các giá trị thực tế):
gcloud run deploy berlin-gastronomy-guide \
--source frontend/ \
--network=default \
--subnet=default \
--set-env-vars="DB_HOST=[YOUR_ALLOYDB_PRIVATE_IP],DB_USER=postgres,DB_PASS=[YOUR_PASSWORD],DB_NAME=postgres" \
--allow-unauthenticated \
--region=us-central1
Sau khi quá trình triển khai hoàn tất, hãy làm mới trình duyệt và xác minh rằng bạn đã xếp hạng sao trên thẻ
.
11. Kết quả
Sau khi hoàn tất các bước, bạn đã xây dựng và tối ưu hoá thành công một ứng dụng AI thế hệ tiếp theo dựa trên cơ sở dữ liệu bằng cách sử dụng Vibe Coding. Phần này làm nổi bật các chức năng kiến trúc cốt lõi mà bạn đã triển khai:
Tích hợp cơ sở dữ liệu dựa trên trợ lý AI (Giao thức bối cảnh mô hình)
Theo cách truyền thống, việc viết mã cơ sở dữ liệu là một quy trình thủ công chuyển đổi bối cảnh giữa IDE, tài liệu và ứng dụng cơ sở dữ liệu.
Trong phòng thí nghiệm này, bạn đã sử dụng Bộ công cụ Giao thức ngữ cảnh mô hình (MCP) để thu hẹp khoảng cách này. Bằng cách cung cấp tính năng kiểm tra giản đồ cơ sở dữ liệu và thực thi SQL dưới dạng các công cụ trực tiếp cho tác nhân AI, tác nhân này có thể:
- Kiểm tra dữ liệu CSV thô và thiết kế giản đồ cơ sở dữ liệu.
- Tạo và thực thi DDL để tạo bảng.
- Kết nối nhóm kết nối trong ứng dụng Next.js.
Điều này cho thấy cách MCP mang đến trải nghiệm phát triển cơ sở dữ liệu mang tính trò chuyện và tốc độ cao, đồng thời giúp nhà phát triển có toàn quyền kiểm soát trong IDE.
AI trong cơ sở dữ liệu (Nền tảng tác nhân và Tìm kiếm ngữ nghĩa)
Ứng dụng của bạn tận dụng khả năng tích hợp gốc của AlloyDB với Nền tảng tác nhân của Google Cloud để tạo các mục nhúng vectơ ngay trong cơ sở dữ liệu bằng SQL:
- Tạo bản nhúng trực tuyến: Thay vì kéo dữ liệu ra một dịch vụ Python bên ngoài, AlloyDB gọi mô hình text-embedding-004 trong cơ sở dữ liệu thông qua các hàm SQL.
- Tìm kiếm vectơ ngữ nghĩa: Bằng cách sử dụng tiện ích pgvector và toán tử khoảng cách cosine (<=>), tác nhân có thể so khớp "cảm xúc" bằng ngôn ngữ tự nhiên của người dùng (ví dụ: "bữa tối lãng mạn") với biểu diễn vectơ gần nhất trong danh mục nhà hàng, trả về kết quả phù hợp về mặt ngữ nghĩa trong vài mili giây.
Tối ưu hoá cơ sở dữ liệu cấp sản xuất (HNSW và phân vùng)
Để đảm bảo ứng dụng có thể mở rộng đến hơn 100.000 hàng và xử lý lưu lượng truy cập cao, bạn đã đóng vai trò là DBA ảo để áp dụng 2 phương pháp tối ưu hoá cơ sở dữ liệu nâng cao:
- Chỉ mục HNSW (Hierarchical Navigable Small World): Bạn đã tạo một chỉ mục HNSW trên cột vectơ. Không giống như chỉ mục phẳng, HNSW tạo một biểu đồ nhiều lớp cho phép tìm kiếm hàng xóm gần nhất (ANN) gần đúng cực nhanh với khả năng thu hồi cao.
- Phân vùng bảng khai báo: Bạn đã phân vùng bảng nhà hàng theo khu vực lân cận. Điều này đảm bảo rằng các truy vấn nhắm đến một khu vực cụ thể chỉ quét phân vùng có liên quan thay vì toàn bộ bảng, giúp giảm đáng kể hoạt động I/O trên đĩa và độ trễ truy vấn.
Là nhà phát triển ứng dụng, chúng ta thường tránh các cấu hình cơ sở dữ liệu phức tạp, toán học vectơ và chiến lược lập chỉ mục sâu vì chúng đòi hỏi chuyên môn DBA chuyên biệt. Bằng cách tận dụng tính năng Lập trình theo cảm hứng với một IDE có tính năng tác nhân, chúng tôi sẽ thu hẹp khoảng cách này. Giờ đây, chúng tôi có thể tự tin thiết kế, xây dựng và tối ưu hoá các ứng dụng cơ sở dữ liệu cấp sản xuất bằng ngôn ngữ tự nhiên, giúp đẩy nhanh đáng kể chu kỳ phát triển và cho phép chúng tôi tập trung vào điều quan trọng nhất: xây dựng trải nghiệm tuyệt vời cho người dùng.
12. 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 dùng trong bài tập thực hành này, hãy làm theo các bước sau:
- Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Quản lý tài nguyên.
- Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá, rồi nhấp vào Xoá.
- Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào Tắt để xoá dự án.
13. Xin chúc mừng
Bạn đã tạo và triển khai thành công một ứng dụng dựa trên dữ liệu và có hỗ trợ AI bằng Vibe Coding!
Trong lớp học này, bạn sẽ:
- Đã cung cấp một cơ sở dữ liệu AlloyDB có cả quyền truy cập bằng IP riêng tư và công khai.
- Kết nối IDE Antigravity trực tiếp với cơ sở dữ liệu bằng Bộ công cụ Giao thức ngữ cảnh mô hình (MCP).
- Sử dụng ngôn ngữ tự nhiên để nhập danh mục CSV, kết nối giao diện người dùng Next.js với cơ sở dữ liệu và triển khai giao diện đó lên Cloud Run.
- Đã bật tính năng tích hợp Nền tảng tác nhân trong cơ sở dữ liệu để tạo các giá trị nhúng vectơ và thực hiện tìm kiếm ngữ nghĩa.
- Đóng vai trò là một DBA ảo để tối ưu hoá cơ sở dữ liệu của bạn cho quy mô sản xuất bằng cách sử dụng tính năng lập chỉ mục HNSW và Phân vùng bảng.
Tất cả những việc này đều được thực hiện thông qua cuộc trò chuyện tự nhiên với tác nhân AI của bạn, mà không cần viết một dòng SQL thủ công nào hoặc mở các ứng dụng cơ sở dữ liệu bên ngoài!
Để biết thêm thông tin, hãy tham khảo tài liệu về sản phẩm: