Ứng dụng Tóm tắt văn bản kết hợp với Vertex AI và Bộ công cụ Svelte

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 tóm tắt văn bản bằng Mô hình ngôn ngữ lớn Vertex AI cho API tạo văn bản ( text-bison) trong khung Svelte Kit. Danh sách các dịch vụ và bộ phần mềm cơ sở được sử dụng là:

  1. Svelte Kit: Một khung ứng dụng web được xây dựng dựa trên Svelte.
  2. 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.
  3. 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ủ.
  4. 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 API Palm
  • 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 Cloud Function
  • 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

  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox
  • Một dự án Google Cloud đã bật tính năng thanh toán

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

  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 Google Cloud
  2. Đả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 bật trên 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 để tương tác với các dịch vụ của Google Cloud. Tham khảo tài liệu về 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:

51622c00acec2fa.png

Nếu dự án của bạn chưa được thiết lập, hãy sử dụng lệnh sau để thiết lập:

gcloud config set project <YOUR_PROJECT_ID>
  1. Đảm bảo rằng tất cả các API cần thiết đều được bậ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
  1. Tạo các biến môi trường cho REGION và PROJECT_ID bằng cách chạy lệnh sau từ 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 Mã nhận dạng email Tài khoản Google 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 các tác 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 Function cho hàm này ngay bây giờ.

Tạo một thư mục mới bằng Cloud Shell và chuyển đến thư mục đó. (sử dụng cùng một dòng lệnh đã mở trong phần trước):

mkdir vertex-ai-functions

cd vertex-ai-functions

Tạo tệp main.py để viết Hàm Cloud 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 Cloud HTTP đơ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 gọn về nội dung đầu vào dạng văn bản. Hàm này lấy nội dung đầu vào dạng văn bản làm tham số và trả về bản tóm tắt ngắn gọn về nội dung đầ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. Hàm Cloud HTTP 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ở công cụ này bằng cách mở một thẻ bảng điều khiển Cloud mới và nhấp vào nút ACTIVATE CLOUD SHELL (KÍCH HOẠT CLOUD SHELL). Khi dòng lệnh tải, hãy nhanh chóng nhấp vào nút OPEN EDITOR (MỞ TRÌNH CHỈNH SỬA) như minh hoạ trong hình bên dưới:

8e501bd2c41d11b8.png

Sau khi mở trình chỉnh sửa, bạn sẽ thấy tệp main.py. Thay thế nội dung của tệp bằng mã từ đường liên kết kho lưu trữ này link. Nội dung giải thích cho mã được đưa vào dưới dạng nhận xét về mã. Tóm lại, mã này cung cấp một cách ngắn gọn để tạo bản tóm tắt ngắn gọn về 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 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 phải 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 lên Cloud Functions. Chạy lệnh sau từ 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:

43a6b247098a9edb.png

Thao tác này sẽ liệt kê Hàm Cloud 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 URL 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 sử 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 ứng dụng này 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 và 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 trong Dockerfile. URL này là URL Cloud Function được tạo và lưu trữ trong phần trước.

Mở Cloud Editor và chỉnh sửa nội dung của tệp Dockerfile. Thay thế biến PUBLIC_FUNCTION_URL bằng URL Cloud Function của bạn.

2958bb12343368a9.png

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 Cloud Shell Terminal:

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 lên 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}

Tuyệt vời! Vertex Summarizer đã hoạt động. URL sẽ xuất hiện trong Cloud Shell, vì vậy, hãy Khám phá và Tận hưởng Vertex AI🤖.

cd94442961bb5308.gif

6. 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 bảng điều khiển Cloud, hãy chuyển đến trang Manage resources
  2. Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá, rồi nhấp vào Delete (Xoá)
  3. Trong hộp thoại, hãy nhập mã dự án, rồi nhấp vào Shut down (Tắt) để xoá dự án
  4. 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
  5. Nếu bạn 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 Vertex AI LLM để tìm hiểu thêm về các mô hình hiện có.