1. 簡介
在本程式碼研究室中,您可以找到執行摘要內容的步驟,這些內容已上傳至 Google Cloud Storage,並使用 Vertex AI Large Language Model for text generation ( text-bison) 做為 Python 中的雲端函式。使用的服務清單如下:
- Vertex AI PaLM API:大型語言模型 (LLM) API,可存取 Google AI 的 PaLM Text Bison 模型。
- Cloud Functions:無伺服器平台,可執行函式,不必管理伺服器。
- Cloud Storage:用於儲存非結構化資料的代管服務。
- Cloud Logging:全代管服務,可讓您儲存、搜尋、分析、監控記錄資料,並接收相關快訊。
建構項目
您將建立以 Python Cloud 函式部署的應用程式,以便使用 Palm API 摘要文字。
2. 需求條件
3. 事前準備
- 在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。
- 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用計費功能。
- 確認已啟用所有必要的 API (Cloud Storage API、Vertex AI API、Cloud Function API 和 Cloud Logging)
- 您將使用 Cloud Shell,這是在 Google Cloud 中執行的指令列環境。如要瞭解 gcloud 指令和用法,請參閱說明文件。
- 在 Cloud 控制台中,按一下右上角的「啟用 Cloud Shell」:
如果未設定專案,請使用下列指令進行設定:
gcloud config set project <YOUR_PROJECT_ID>
- 請透過 Cloud Shell 終端機執行下列指令,確認已啟用所有必要的 API:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
- 在 Cloud Shell 終端機中執行下列指令,建立 REGION 和 PROJECT_ID 的環境變數:
export PROJECT_ID=<your project id>
export REGION=us-central1
4. 用於叫用 Vertex AI API 的 Cloud 函式
我們將建立 Python Cloud Function,並在該函式中叫用 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 API 非常適合用於可透過單一 API 回應完成的工作,不需要持續對話。我們現在就來建立 Cloud 函式。
在 Cloud Shell 中執行下列指令,複製存放區並前往專案 (使用先前開啟的終端機):
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction
我們在這裡要處理的資料夾是:summarization-gcs-cloudfunction。
在終端機中開啟 Cloud Shell 編輯器,檢查從 GitHub 複製到 Cloud Shell 機器的專案資料夾內容。
這個資料夾包含 2 個檔案:
- main.py Python 檔案會定義簡單的 HTTP Cloud 函式,該函式會使用 Vertex AI 文字生成模型,針對文字輸入內容產生簡短摘要。這個函式會將文字輸入內容做為參數,並傳回輸入內容的簡短摘要。這個函式會使用各種參數來控制產生程序,例如產生文字的創意、多樣性和流暢度。HTTP Cloud 函式會接受要求物件,並將模型摘要做為回應傳回。
- requirements.txt 檔案包含套件依附元件:
- functions-framework==3.:確保函式使用 Functions Framework 的最新功能和錯誤修正項目。
- google-cloud-aiplatform:必須使用 Vertex AI 文字生成模型。
- google-cloud-storage:如要在 Google Cloud Storage 中建立儲存值區,就必須使用這個權限。
- google-cloud-logging:產生記錄檔時必須使用。
5. 部署函式
- 建立兩個 Cloud Storage 值區:
- 第一個值區:系統會使用 $BUCKET_NAME 值區上傳要匯出摘要的檔案。建立用於儲存值區名稱的環境變數,如下所示:
export BUCKET_NAME='Your Bucket Name'
- 第二個值區:$BUCKET_NAME-summaries 值區會用來儲存摘要檔案。
- 我們將使用 gsutil 指令建立值區:
- gsutil 是一種 Python 應用程式,可讓您透過指令列存取 Cloud Storage,您可以使用 gsutil 執行多種值區和物件管理工作。
- mb 代表「Make Bucket」
gsutil mb -l $REGION gs://"$BUCKET_NAME"
gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
- 此時,我們可以部署函式了。不過,請先確認 Cloud Storage 值區的服務帳戶具有 Pub/Sub 發布者角色。
- 前往 Google Cloud Storage,然後在左側窗格中按一下「設定」。
- 複製設定中的「服務帳戶」並記下。
- 在 Google Cloud 控制台導覽選單中開啟「IAM 與管理」(IAM & Admin)。
- 在「權限」分頁中,按一下「授予存取權」,然後在「新增主體」部分輸入您記下的服務帳戶 ID,並選取「角色」為「Pub/Sub 發布者」,然後按一下「儲存」。
- 將這個來源部署至 Cloud Functions。在 Cloud Shell 終端機中執行下列指令:
- 確認您位於這個專案中的 summarization-gcs-cloudfunction 資料夾中。
- 執行下列指令:
gcloud functions deploy summarizeArticles \
--gen2 \
--runtime=python311 \
--source=. \
--region=$REGION \
--project=$PROJECT_ID \
--entry-point=summarize_gcs_object \
--trigger-bucket=$BUCKET_NAME \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION \
--max-instances=1 \
--quiet
- 前往 Google Cloud 控制台中的「Cloud Functions」:
這會列出我們剛剛建立的 vertex-ai-function Cloud 函式,以及該函式的公開網址。我們會使用這個函式建立 GCS 觸發條件。
6. 叫用函式
當檔案上傳至 $BUCKET_NAME 值區時,GCS 觸發條件會叫用函式。$BUCKET_NAME"-summaries
值區包含同名的摘要檔案。
開始之前,請先將 summarization-gcs-cloudfunction 資料夾中的範例 story.md 檔案儲存到本機電腦。
- 前往 Google Cloud 控制台中的 Cloud Storage。
- 從值區清單中開啟
$BUCKET_NAME
值區。 - 按一下「上傳檔案」,然後選取 story.md 檔案。
系統會觸發 summarizeArticles
函式,並開始摘要檔案內容。
- 在左側導覽窗格中,按一下「分類」。
- 開啟
$BUCKET_NAME"-summaries
值區。
story.md 檔案包含檔案內容摘要。
7. 清理
如要避免系統向您的 Google Cloud 帳戶收取這篇文章所用資源的費用,請按照下列步驟操作:
8. 恭喜
恭喜!您已成功使用 Vertex AI 文字產生大型語言模型,透過程式輔助方式對資料執行文字摘要作業。請參閱 Vertex AI 大型語言模型產品說明文件,進一步瞭解可用的模型。