Ứ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 để 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. Bộ công cụ Svelte: Một khung ứng dụng web 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. Chức năng đám mây: Một nền tảng không máy chủ để chạy các hàm mà không phải 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 makePalm
  • Một ứng dụng web Svelte dành cho giao diện người dùng để tương tác với Vertex AI API thông qua Cloud Function
  • Dịch vụ Cloud Run để triển khai ứng dụng được tạo bên trên không 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 trê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 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 Google 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 để tương tác với các dịch vụ của Google Cloud. Hãy tham khảo tài liệu để biết các lệnh gcloud và cách sử dụng. Trong Bảng điều khiển Cloud, hãy nhấp vào 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 dự án:

gcloud config set project <YOUR_PROJECT_ID>
  1. Đảm bảo bạn đã bật tất cả API cần thiết bằng cách chạy lệnh sau trên 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 đám mây để 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 ID 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ý tưởng cho các tác vụ có thể được hoàn tất bằng một phản hồi API mà không cần cuộc trò chuyện liên tục. Hãy tạo Hàm đám mây ngay bây giờ.

Tạo một thư mục mới bằng Cloud shell và điều hướng đến thư mục đó. (sử dụng cùng một thiết bị đầu cuối đã mở trong phần trước):

mkdir vertex-ai-functions

cd vertex-ai-functions

Tạo một tệp main.py để viết Hàm đám mây Python và tệp yêu cầu.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 đám mây 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 về văn bản nhập vào. Hàm này lấy giá trị nhập vào làm tham số và trả về một bản tóm tắt ngắn về giá trị nhập đó. 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à độ trôi chảy của văn bản được tạo. Hàm đám mây 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ở tệp này bằng cách mở thẻ Google Cloud Console mới và nhấp vào nút KÍCH HOẠT CLOUD SHELL. Khi thiết bị đầu cuối tải, hãy nhấp nhanh vào nút MỞ CHỈNH SỬA như trong hình dưới đây:

8e501bd2c41d11b8.png.

Khi trình chỉnh sửa mở ra, bạn sẽ thấy được tệp main.py. Thay thế nội dung của tệp bằng mã lấy từ đường liên kết của kho lưu trữ này. Nội dung giải thích cho mã được đưa vào dưới dạng ghi chú trong mã. Tóm lại, mã này đưa ra một cách ngắn gọn để tạo bản tóm tắt ngắn về văn bản nhập bằng Vertex AI.

Tệp required.txt có các phần phụ thuộc của gói: function-framework==3.*: Đảm bảo rằng hàm này sử dụng các tính năng và bản sửa lỗi mới nhất của Khung hàm. 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 đoạn mã này vào tệp yêu cầu:

functions-framework==3.*
google-cloud-aiplatform

Triển khai Cloud Functions

Bây giờ, hãy triển khai nguồn này cho Cloud Functions. Chạy lệnh sau trên đám mây 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 đám mây đỉnh-ai-hàm mà chúng ta vừa tạo với URL công khai của hàm đó sẽ được cung cấp trong trang hàm. Chúng tôi dùng đường liên kết này để kết nối Frontend 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 đối với quyền truy cập chưa được 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. Xây dựng và triển khai giao diện người dùng

Ứng dụng này có giao diện người dùng để tương tác với Vertex AI API của chúng tôi thông qua Google Cloud Functions. Hãy tạo chiến dịch ngay bây giờ.

Kho lưu trữ bản sao 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 của hàm đám mây đã được tạo và lưu trữ ở 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 hàm Cloud của bạn.

2958bb12343368a9.pngS

Triển khai giao diện người dùng trên Cloud Run

Chúng tôi sẽ sử dụng Google Artifact Registry để xây dựng và lưu trữ các Hình ảnh trên Docker. Cloud Run được dùng để triển khai các vùng chứa trong Cấu trúc không máy chủ.

Tạo một Kho lưu trữ sổ đăng ký Artifact 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ữ sổ đăng ký cấu phần phần mềm (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 đẩy docker để đẩy hình ảnh đến một vị trí cụ thể.

docker build . -t ${DOCKER_URL}

Đẩy hình ảnh tới Artifact Registry.

docker push ${DOCKER_URL}

Triển khai vùng chứa Docker cho Cloud Run.

gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}

Thật tuyệt vời!! Vertex tóm tắt hiện đã được thiết lập. URL này sẽ hiển thị trong Cloud Shell, vậy nên 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 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 Google Cloud, hãy chuyển đến trang Quản lý tài nguyên
  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 Xoá
  3. Trong hộp thoại, nhập ID dự án, sau đó nhấp vào 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 chỉ muốn xoá Hàm đám mây hoặc thu hồi quyền truy cập, bạn có thể thực hiện tại đây

7. Xin chúc mừng

Xin chúc mừng! Bạn đã sử dụng thành công một API Vertex AI PaLM2 để thực hiện tóm tắt văn bản theo cách lập trình, xây dựng ứng dụng web Svelte và triển khai trong Cloud Functions. Hãy xem tài liệu về sản phẩm mô hình ngôn ngữ lớn (LLM) trong Vertex AI để tìm hiểu thêm về các mô hình có sẵn.