1. 簡介
在本程式碼研究室中,我列出了建構網頁應用程式的步驟,應用程式可在 Svelte Kit 架構中,使用 Vertex AI 大型語言模型 ( text-bison) API 執行文字摘要。以下列出使用的服務和技術堆疊:
- Svelte Kit:以 Svelte 為基礎的網頁應用程式架構。
- Vertex AI PaLM 2 API:一種大型語言模型 (LLM) API,提供 Google AI 的 PaLM 2 模型。
- Cloud Functions:不必管理伺服器的無伺服器平台即可執行函式。
- Cloud Run:用於執行容器化應用程式的無伺服器平台。
建構項目
您會自行建立
- Python Cloud 函式用於 makePalm API 叫用
- 這個 Svelte 網頁應用程式可讓使用者介面,透過 Cloud 函式與 Vertex AI API 互動
- Cloud Run 服務,用於部署在無伺服器環境下建立的應用程式
2. 需求條件
3. 事前準備
- 前往 Google Cloud 控制台的專案選取器頁面,選取或建立 Google Cloud 專案
- 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用帳單功能
- 您將使用 Cloud Shell,這是在 Google Cloud 執行的指令列環境,以便與 Google Cloud 服務互動。如要查看 gcloud 指令和使用方式,請參閱說明文件。在 Cloud 控制台中,按一下右上角的「啟用 Cloud Shell」:
如果尚未設定專案,請使用下列指令進行設定:
gcloud config set project <YOUR_PROJECT_ID>
- 請在 Cloud Shell 終端機執行下列指令,確保已啟用所有必要的 API:
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- 在 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」按鈕。在終端機載入後,快速按一下「開啟編輯器」按鈕,如下圖所示:
編輯器開啟後,您應該會看到 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 主控台:
這會列出我們剛建立的 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 函式網址。
將前端部署至 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🤖?。
6. 清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本文中所用資源的費用,請按照下列步驟操作:
7. 恭喜
恭喜!您已成功使用 Vertex AI PaLM2 API,透過程式輔助方式執行文字摘要、建構 Svelte 網頁應用程式並部署至 Cloud Functions。如要進一步瞭解可用的模型,請參閱 Vertex AI LLM 產品說明文件。