在 Cloud Run 上使用 PaLM API 聊天应用

1. 简介

此 Codelab 介绍了如何在 Web 应用中构建基于 AI 的聊天应用,并将其作为 Google Cloud 上的 Cloud Run 服务进行部署。借助这款聊天应用,用户可以使用 PaLM for Chat Bison 模型 ( text-chat) 进行查询并获得回复。

构建内容

您将创建

  • Google Cloud 中用于运行应用的环境
  • 应用的 Docker 映像
  • 用于运行应用的 Cloud Run 服务

2. 要求

  • 一个浏览器,例如 ChromeFirefox
  • 启用了结算功能的 Google Cloud 项目

3. 准备工作

  1. Google Cloud 控制台的项目选择器页面上,选择或创建一个 Google Cloud 项目
  2. 确保您的 Google Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能
  3. 按照此处的说明,通过 Google Cloud 控制台激活 Cloud Shell
  4. 如果项目未设置,请使用以下命令进行设置:
gcloud config set project <YOUR_PROJECT_ID>
  1. 在 Cloud Shell 中,设置以下环境变量:
export GCP_PROJECT=<YOUR_PROJECT_ID>
export GCP_REGION=us-central1
  1. 在 Cloud Shell 终端中执行以下命令,启用必要的 Google Cloud API:
gcloud services enable cloudbuild.googleapis.com cloudfunctions.googleapis.com run.googleapis.com logging.googleapis.com storage-component.googleapis.com aiplatform.googleapis.com

4. 设置您的环境

  1. 如需将示例代码复制到您的项目,请在 Cloud Shell 中克隆代码库:
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
  1. 此命令会将代码库内容克隆到 genai-templates-googlecloud 文件夹中。
  2. 在 Cloud Shell 终端执行以下命令,找到我们关注的项目的文件夹:
cd genai-apptemplates-googlecloud/chat-flask-cloudrun
  1. 为 Vertex AI 初始化设置以下环境变量:

GCP_PROJECT:您的 Google Cloud 项目 ID。例如:my_project。

GCP_REGION:要在其中部署 Cloud Functions 函数的区域。例如:us-central1。

export GCP_PROJECT='YOUR_PROJECT'
export GCP_REGION='us-central1'

5. 构建 Docker 映像

如需为应用构建 Docker 映像并将其推送到 Artifact Registry,请执行以下操作:

  1. 为 Artifact Registry 代码库设置环境变量。名称只能包含小写字母、数字和连字符,必须以字母开头并以字母或数字结尾。例如:my-chat-app-repo。
export AR_REPO='my-chat-app-repo'
  1. 为服务名称设置环境变量。例如:chat-flask-app。
export SERVICE_NAME='chat-flask-app'
  1. 以 Docker 格式创建代码库。
gcloud artifacts repositories create "$AR_REPO" --location="$GCP_REGION" --repository-format=Docker
  1. 配置 Docker 身份验证。
gcloud auth configure-docker "$GCP_REGION-docker.pkg.dev"
  1. 构建映像。
gcloud builds submit --tag "$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME"
  1. 如需验证映像是否已推送到 Artifact Registry,请前往 Artifact Registry 页面。在此页面上查找您创建的代码库。

6. 部署应用

  1. 在 Cloud Run 上将应用部署为服务。
gcloud run deploy "$SERVICE_NAME" \ 
--port=8080 \ 
--image="$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME" \ 
--allow-unauthenticated \ 
--region=$GCP_REGION \ 
--platform=managed  \ 
--project=$GCP_PROJECT \ 
--set-env-vars=GCP_PROJECT=$GCP_PROJECT,GCP_REGION=$GCP_REGION

此步骤可能需要几秒钟才能完成。

  1. 要启动聊天应用,请点击服务网址。

56c06b62e0ac95bf.png

聊天应用会在新标签页中打开,如以下屏幕截图所示:

eebde9c35c171563.png

7. 清理

为避免系统因本博文中使用的资源向您的 Google Cloud 账号收取费用,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往管理资源页面。
  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关停以删除项目。
  4. 如果您想保留项目,请跳过上述步骤,前往 Cloud Run 以删除 Cloud Run 服务,然后在服务列表中选中要删除的服务,然后点击“删除”。

8. 恭喜

恭喜!您已成功为 Web 应用构建并部署了基于 AI 的聊天应用,并将其作为 Google Cloud 上的 Cloud Run 服务。您可以使用此聊天应用让用户输入查询,该应用将调用 Vertex AI 聊天模型并提供回复。