1. Giới thiệu
Trong lớp học lập trình này, tôi đã liệt kê các bước để tạo một ứng dụng web cho phép bạn thực hiện tính năng tóm tắt văn bản bằng cách sử dụng Vertex AI mô hình ngôn ngữ lớn để tạo văn bản ( text-bison) API trong một khung Svelte Kit. Danh sách các dịch vụ và bộ phần mềm cơ sở được sử dụng là:
- Svelte Kit: Một khung ứng dụng web dựa trên Svelte.
- Vertex AI PaLM 2 API: Một API mô hình ngôn ngữ lớn (LLM) cung cấp quyền truy cập vào mô hình PaLM 2 của AI của Google.
- Cloud Functions: Một nền tảng không máy chủ để chạy các hàm mà không cần quản lý máy chủ.
- Cloud Run: Một nền tảng không máy chủ để chạy các ứng dụng trong vùng chứa.
Sản phẩm bạn sẽ tạo ra
Bạn sẽ tạo
- Hàm Cloud Python được dùng để thực hiện lệnh gọi Palm API
- Một ứng dụng web Svelte cho giao diện người dùng để tương tác với Vertex AI API thông qua Hàm Cloud
- Một dịch vụ Cloud Run để triển khai ứng dụng được tạo ở trên mà không cần máy chủ
2. Yêu cầu
3. Trước khi bắt đầu
- 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
- Bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trong Google Cloud để tương tác với các dịch vụ của Google Cloud. Tham khảo tài liệu để biết các lệnh và cách sử dụng gcloud. Trong Cloud Console, hãy nhấp vào Activate Cloud Shell (Kích hoạt Cloud Shell) ở góc trên cùng bên phải:
Nếu bạn chưa đặt dự án, hãy dùng lệnh sau để đặt dự án:
gcloud config set project <YOUR_PROJECT_ID>
- Đảm bảo bạn đã bật tất cả các API cần thiết bằng cách chạy lệnh sau từ Cloud Shell Terminal:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- Tạo biến môi trường cho REGION và PROJECT_ID bằng cách chạy lệnh sau trong Cloud Shell Terminal:
export PROJECT_ID=<your project id>
export REGION=asia-south1
4. Hàm Cloud để gọi Vertex AI API
Chúng ta sẽ tạo một Hàm Cloud Python và gọi Vertex AI API trong hàm này.
Tạo tài khoản dịch vụ mới
Tạo một tài khoản dịch vụ mới bằng cách thực thi lệnh sau trong Cloud Shell Terminal.
gcloud iam service-accounts create vertex-service-acc
Để cấp quyền truy cập vào dự án và tài nguyên của bạn, hãy cấp một vai trò cho tài khoản dịch vụ.
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com" --role=roles/ml.developer
Để cấp cho Tài khoản Google của bạn một vai trò cho phép bạn sử dụng các vai trò của tài khoản dịch vụ và đính kèm tài khoản dịch vụ vào các tài nguyên khác. Thay thế USER_EMAIL bằng địa chỉ email của Tài khoản Google Account của bạn.
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Tạo hàm Python
PaLM 2 cho văn bản là lựa chọn lý tưởng cho những nhiệm vụ có thể hoàn thành bằng một phản hồi API mà không cần trò chuyện liên tục. Hãy tạo Cloud Functions cho việc này ngay bây giờ.
Tạo một thư mục mới bằng Cloud Shell rồi chuyển đến thư mục đó. (sử dụng cùng một cửa sổ dòng lệnh đã mở trong phần trước):
mkdir vertex-ai-functions
cd vertex-ai-functions
Tạo tệp main.py để ghi Cloud Functions bằng Python và tệp requirements.txt để lưu trữ các phần phụ thuộc.
touch main.py requirements.txt
Tệp Python này xác định một hàm HTTP Cloud Functions đơn giản sử dụng Mô hình tạo văn bản Vertex AI để tạo bản tóm tắt ngắn cho nội dung văn bản đầu vào. Hàm này lấy dữ liệu đầu vào là văn bản làm tham số và trả về bản tóm tắt ngắn gọn về dữ liệu đầu vào đó. Hàm này sử dụng nhiều tham số để kiểm soát quá trình tạo, chẳng hạn như tính sáng tạo, tính đa dạng và tính trôi chảy của văn bản được tạo. HTTP Cloud Function chấp nhận một đối tượng yêu cầu và trả về bản tóm tắt của mô hình dưới dạng phản hồi.
Mở Google Cloud Editor. Bạn có thể mở trình chỉnh sửa này bằng cách mở một thẻ Google Cloud Console mới rồi nhấp vào nút KÍCH HOẠT CLOUD SHELL. Khi thiết bị đầu cuối tải, hãy nhanh chóng nhấp vào nút MỞ TRÌNH CHỈNH SỬA như trong hình bên dưới:

Sau khi trình chỉnh sửa mở, bạn sẽ thấy tệp main.py. Thay thế nội dung của tệp bằng mã trong kho lưu trữ này link. Phần giải thích cho mã được đưa vào dưới dạng ghi chú mã. Tóm lại, đoạn mã này cung cấp một cách ngắn gọn để tạo bản tóm tắt ngắn cho nội dung đầu vào dạng văn bản bằng Vertex AI.
Tệp requirements.txt có các phần phụ thuộc của gói: functions-framework==3.*: Đảm bảo rằng hàm sử dụng các tính năng mới nhất và bản sửa lỗi của Functions Framework. google-cloud-aiplatform: Bắt buộc để sử dụng Mô hình tạo văn bản Vertex AI.
Thêm nội dung này vào tệp requirements.txt:
functions-framework==3.*
google-cloud-aiplatform
Triển khai lên Cloud Functions
Bây giờ, hãy triển khai nguồn này cho Cloud Functions. Chạy lệnh sau đây qua Cloud Shell Terminal:
gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30
Sử dụng thanh tìm kiếm và chuyển đến bảng điều khiển Cloud Functions:

Thao tác này sẽ liệt kê Cloud Function vertex-ai-function mà chúng ta vừa tạo. URL công khai của hàm này sẽ được cung cấp trong trang hàm. Chúng ta sẽ dùng thông tin này để kết nối Giao diện người dùng và Vertex AI API. Lưu trữ URL này. Bạn cũng có thể phải cho phép dịch vụ Cloud Run cơ bản truy cập mà không cần xác thực. Bạn nên dùng dịch vụ đã xác thực vì mục đích bảo mật.
5. Tạo và triển khai giao diện người dùng
Ứng dụng này đi kèm với một giao diện người dùng để tương tác với Vertex AI API thông qua Google Cloud Functions. Hãy tạo ngay bây giờ.
Sao chép kho lưu trữ và thiết lập Dockerfile
Chuyển đến thư mục gốc rồi sao chép kho lưu trữ git.
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
Để chạy ứng dụng này, bạn cần thêm biến môi trường PUBLIC_FUNCTION_URL vào Dockerfile. URL này là URL của Cloud Functions được tạo và lưu trữ trong phần trước.
Mở Cloud Editor rồi chỉnh sửa nội dung của tệp Dockerfile. Thay thế biến PUBLIC_FUNCTION_URL bằng URL Cloud Functions của bạn.

Triển khai giao diện người dùng lên Cloud Run
Chúng ta sẽ sử dụng Google Artifact Registry để tạo và lưu trữ Hình ảnh Docker. Cloud Run được dùng để triển khai các vùng chứa trong Kiến trúc không máy chủ.
Tạo một kho lưu trữ Artifact Registry bằng cách chạy lệnh bên dưới trong Cửa sổ dòng lệnh Cloud Shell:
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
Tạo một biến môi trường cho URL kho lưu trữ Artifact Registry.
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
Tạo vùng chứa Docker và gắn thẻ vùng chứa đó bằng vị trí Kho lưu trữ Artifact Registry. Việc gắn thẻ hình ảnh Docker bằng tên kho lưu trữ sẽ định cấu hình lệnh docker push để đẩy hình ảnh đến một vị trí cụ thể.
docker build . -t ${DOCKER_URL}
Đẩy hình ảnh vào Artifact Registry.
docker push ${DOCKER_URL}
Triển khai vùng chứa Docker lên Cloud Run.
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
Yaay!! Vertex Summarizer đã hoạt động. URL này sẽ xuất hiện trong Cloud Shell, vì vậy hãy khám phá và tận hưởng Vertex AI🤖.

6. Dọn dẹp
Để tránh bị tính phí vào tài khoản Google Cloud của bạn cho các tài nguyên được dùng trong bài đăng 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 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
- Nếu bạn muốn giữ lại dự án và chỉ xoá dịch vụ Cloud Run, hãy làm theo bước tại đây
- Nếu chỉ muốn xoá Cloud Function hoặc thu hồi quyền truy cập, bạn có thể thực hiện việc này tại đây
7. Xin chúc mừng
Xin chúc mừng! Bạn đã sử dụng thành công Vertex AI PaLM2 API để thực hiện tóm tắt văn bản theo phương thức lập trình, tạo một ứng dụng web Svelte và triển khai trong Cloud Functions. Hãy xem tài liệu về sản phẩm LLM của Vertex AI để tìm hiểu thêm về các mô hình hiện có.