採用 Vertex AI 和 Svelte Kit 的文字 Summarizer 應用程式

1. 簡介

在本程式碼研究室中,我列出了建構網頁應用程式的步驟,應用程式可在 Svelte Kit 架構中,使用 Vertex AI 大型語言模型 ( text-bison) API 執行文字摘要。以下列出使用的服務和技術堆疊:

  1. Svelte Kit:以 Svelte 為基礎的網頁應用程式架構。
  2. Vertex AI PaLM 2 API:一種大型語言模型 (LLM) API,提供 Google AI 的 PaLM 2 模型。
  3. Cloud Functions:不必管理伺服器的無伺服器平台即可執行函式。
  4. Cloud Run:用於執行容器化應用程式的無伺服器平台。

建構項目

您會自行建立

  • Python Cloud 函式用於 makePalm API 叫用
  • 這個 Svelte 網頁應用程式可讓使用者介面,透過 Cloud 函式與 Vertex AI API 互動
  • Cloud Run 服務,用於部署在無伺服器環境下建立的應用程式

2. 需求條件

  • 瀏覽器,例如 ChromeFirefox
  • 已啟用計費功能的 Google Cloud 專案

3. 事前準備

  1. 前往 Google Cloud 控制台的專案選取器頁面,選取或建立 Google Cloud 專案
  2. 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用帳單功能
  3. 您將使用 Cloud Shell,這是在 Google Cloud 執行的指令列環境,以便與 Google Cloud 服務互動。如要查看 gcloud 指令和使用方式,請參閱說明文件。在 Cloud 控制台中,按一下右上角的「啟用 Cloud Shell」:

51622c00acec2fa.png

如果尚未設定專案,請使用下列指令進行設定:

gcloud config set project <YOUR_PROJECT_ID>
  1. 請在 Cloud Shell 終端機執行下列指令,確保已啟用所有必要的 API:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
  1. 在 Cloud Shell 終端機執行下列指令,為「REGION」和「PROJECT_ID」建立環境變數:
export PROJECT_ID=<your project id>

export REGION=asia-south1

4. 叫用 Vertex AI API 的 Cloud 函式

我們會建立 Python Cloud 函式,並在這個函式中叫用 Vertex AI API。

建立新的服務帳戶

在 Cloud Shell 終端機中執行下列指令,建立新的服務帳戶。

gcloud iam service-accounts create vertex-service-acc

如要提供專案和資源的存取權,請為服務帳戶授予角色。

gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com" --role=roles/ml.developer

如要將角色授予 Google 帳戶,讓帳戶可以使用服務帳戶的角色,並將服務帳戶附加至其他資源。將 USER_EMAIL 替換為您的 Google 帳戶電子郵件 ID。

gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

建立 Python 函式

文字專用的 PaLM 2 適用於可透過單一 API 回應完成的工作,無需連續交談。現在就來建立 Cloud 函式。

使用 Cloud Shell 建立新目錄,然後前往該目錄。(使用上一節開啟的同一個終端機):

mkdir vertex-ai-functions

cd vertex-ai-functions

建立 main.py 檔案來編寫 Python Cloud 函式和 requirements.txt 檔案,以便儲存依附元件。

touch main.py requirements.txt

這個 Python 檔案定義了一個簡單的 HTTP Cloud 函式,運用 Vertex AI 文字產生模型來產生文字輸入內容的簡短摘要。這個函式會將文字輸入做為參數,並傳回輸入內容的簡短摘要。這個函式會使用各種參數來控制產生過程,例如產生文字的創造力、多樣性和流暢度。HTTP Cloud 函式接受要求物件,並傳回模型的摘要做為回應。

開啟 Google Cloud 編輯器。如要開啟這項工具,請開啟新的 Google Cloud 控制台分頁,然後按一下「啟用 Cloud Shell」按鈕。在終端機載入後,快速按一下「開啟編輯器」按鈕,如下圖所示:

8e501bd2c41d11b8.png

編輯器開啟後,您應該會看到 main.py 檔案。將其內容換成這個存放區連結中的程式碼。程式碼的說明會以程式碼註解的形式提供。總結來說,這個程式碼可讓您以簡潔的方式,使用 Vertex AI 產生文字輸入內容的簡短摘要。

requirements.txt 檔案具有套件依附元件:function-framework==3.*:確保函式使用 Functions Framework 的最新功能和錯誤修正。google-cloud-aiplatform:如要使用 Vertex AI 文字生成模型,必須授予這項權限。

請將此加入 requirements.txt 檔案:

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

部署至 Cloud Functions

現在,請將這個來源部署至 Cloud Functions。在 Cloud Shell 終端機中執行下列指令:

gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30

使用搜尋列,然後前往 Cloud Functions 主控台:

43a6b247098a9edb.png

這會列出我們剛建立的 Vertex AI 函式 Cloud 函式,其公開網址會在函式頁面中提供。藉此連結 Frontend 與 Vertex AI API。請儲存這個網址。您可能也必須允許基礎 Cloud Run 服務在未經驗證的情況下存取。基於安全考量,建議您使用已驗證服務。

5. 建構及部署前端

這個應用程式提供前端介面,可透過 Google Cloud Functions 與 Vertex AI API 互動。開始建立吧。

複製存放區和設定 Dockerfile

前往根目錄,複製 Git 存放區。

cd ~/

git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git

cd  vertex-summarizer-svelte

如要執行這個應用程式,您必須在 Dockerfile 中新增 PUBLIC_FUNCTION_URL 環境變數。這是在上一節建立及儲存的 Cloud 函式網址。

開啟 Cloud 編輯器並編輯 Dockerfile 檔案的內容。將 PUBLIC_FUNCTION_URL 變數替換成您的 Cloud 函式網址。

2958bb12343368a9.png

將前端部署至 Cloud Run

我們會使用 Google Artifact Registry 建構及儲存 Docker 映像檔。Cloud Run 用於在無伺服器架構中部署容器。

在 Cloud Shell 終端機中執行下列指令,建立 Artifact Registry 存放區:

gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}

建立 Artifact Registry 存放區網址的環境變數。

export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image

建構 Docker 容器,並加上 Artifact Registry 存放區位置加上標記。使用存放區名稱標記 Docker 映像檔,可設定 dockerPush 指令將映像檔推送至特定位置,

docker build . -t ${DOCKER_URL}

將映像檔推送至 Artifact Registry。

docker push ${DOCKER_URL}

將 Docker 容器部署至 Cloud Run。

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

哇!Vertex Summarizer 已啟動並開始運作。這個網址會顯示在 Cloud Shell 中,因此使用者可以盡情探索及體驗 Vertex AI🤖?。

cd94442961bb5308.gif

6. 清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取本文中所用資源的費用,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台中的「管理資源」頁面。
  2. 在專案清單中,選取要刪除的專案,然後按一下 [刪除]
  3. 在對話方塊中輸入專案 ID,然後按一下「關閉」以刪除專案
  4. 如要保留專案,只要刪除 Cloud Run 服務,請按照這裡的步驟操作
  5. 如果只是要刪除 Cloud 函式或撤銷存取權,請按這裡

7. 恭喜

恭喜!您已成功使用 Vertex AI PaLM2 API,透過程式輔助方式執行文字摘要、建構 Svelte 網頁應用程式並部署至 Cloud Functions。如要進一步瞭解可用的模型,請參閱 Vertex AI LLM 產品說明文件