arrow_back

在 Cloud Run 上部署已集成 Gemini Pro 的 Streamlit 应用

登录 加入
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

在 Cloud Run 上部署已集成 Gemini Pro 的 Streamlit 应用

实验 1 小时 universal_currency_alt 5 个积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

GSP1229

Google Cloud 自定进度实验

概览

Gemini 是 Google DeepMind 开发的一系列生成式 AI 模型,专为多模态应用场景而设计。通过 Gemini API,您可以使用 Gemini Pro Vision 和 Gemini Pro 模型。在本实验中,您将了解如何将 Vertex AI Gemini API 与应用集成,以及如何在 Google Cloud Run 上构建和部署所开发的示例应用。

Vertex AI Gemini API

Vertex AI Gemini API 提供了与多种 Gemini 模型交互的统一界面。Gemini API 目前支持以下两种模型:

  1. Gemini Pro 模型 (gemini-pro):旨在处理自然语言任务、多轮文本和代码聊天以及代码生成。
  2. Gemini Pro Vision 模型 (gemini-pro-vision):为多模态提示提供支持。您可以在提示请求中包含文本、图片和视频,并获取文本或代码回答。

您可通过以下方式与 Gemini API 进行交互:

  • 使用 Vertex AI Studio 进行快速测试以及生成命令
  • 使用 cURL 命令
  • 使用 Vertex AI SDK

本实验重点介绍如何将 Gemini Pro 模型与 Streamlit 应用集成,以及如何将该应用部署到 Google Cloud Run 上。

如需了解详情,请参阅 Vertex AI 上的生成式 AI 文档。

目标

在本实验中,您将学习如何完成以下操作:

  • 将 Vertex AI Gemini API 与应用集成
  • 在 Google Cloud Run 上构建和部署所开发的示例应用
  • 使用 Streamlit 框架构建 Cloud Run 应用

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。我们会为您提供新的临时凭据,让您可以在实验规定的时间内用来登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:如果您已有自己的个人 Google Cloud 账号或项目,请不要在此实验中使用,以避免您的账号产生额外的费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧是实验详细信息面板,其中包含以下各项:

    • 打开 Google Cloud 控制台按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示登录页面。

    提示:请将这些标签页安排在不同的窗口中,并将它们并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在实验详细信息面板中找到用户名

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在实验详细信息面板中找到密码

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本次实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于该账号为临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需查看列有 Google Cloud 产品和服务的菜单,请点击左上角的导航菜单导航菜单图标

任务 1. 在本地运行应用

在本部分中,您将在本地使用 Cloud Shell 运行 Streamlit 应用。

克隆代码库

  1. 点击 Cloud 控制台右上角的 Cloud Shell 图标,打开一个新的 Cloud Shell 终端。

  2. 运行下面的命令,先克隆代码库,然后前往 Cloud Shell 中的 gemini-streamlit-cloudrun 目录。

git clone https://github.com/GoogleCloudPlatform/generative-ai.git cd generative-ai/gemini/sample-apps/gemini-streamlit-cloudrun

若要运行 Streamlit 应用,您需要执行一些额外的步骤。

运行应用

  1. 设置 Python 虚拟环境并安装依赖项:
python3 -m venv gemini-streamlit source gemini-streamlit/bin/activate pip install -r requirements.txt
  1. 您的应用需要访问两个环境变量:
  • GCP_PROJECT:这是 Google Cloud 项目 ID。
  • GCP_REGION:这是您部署 Cloud Run 应用的区域,例如 us-central1

这些变量是必需的,因为 Vertex AI 初始化需要用到 Google Cloud 项目 ID 和区域信息。app.py 函数对应的具体代码行如下所示:vertexai.init(project=PROJECT_ID, location=LOCATION)

在 Cloud Shell 中,执行以下命令:

GCP_PROJECT='{{{ project_0.project_id | Project ID}}}' GCP_REGION='{{{ project_0.default_region | Region }}}'
  1. 若要在本地运行应用,请执行以下命令。
streamlit run app.py \ --browser.serverAddress=localhost \ --server.enableCORS=false \ --server.enableXsrfProtection=false \ --server.port 8080

输出:

正在收集使用情况统计信息。若要停用此功能,请将 browser.gatherUsageStats 设置为“false”。 现在,您可以在浏览器中查看自己的 Streamlit 应用。 网址:http://localhost:8080
  1. 该应用即会启动,并向您提供一个用于访问该应用的网址。点击该链接即可在浏览器中查看此应用,或者您也可以使用 Cloud Shell 的网页预览功能启动预览页面。

  2. 调整故事生成参数,然后点击 Generate my story(生成我的故事)。

  3. 回到 Cloud Shell,授权应用访问 Gemini API。为应用提供授权后,您就可以返回应用查看收到的响应。

注意:应用将提示 Vertex AI Gemini API 并显示响应。为了使其正常运作,在选择 Generate my story(生成我的故事)后,您需要返回 Cloud Shell,授权应用访问 Gemini API。

Streamlit 应用页面

  1. 测试完应用后,您可以在 Cloud Shell 中输入 Ctrl + C 来停止应用运行。

任务 2. 构建应用并将其部署到 Cloud Run

在本部分中,您将在 Cloud Run 中部署 Streamlit 应用。

现在,您需要为应用构建 Docker 映像,并将其推送到 Artifact Registry。为此,您需要设置一个指向 Artifact Registry 名称的环境变量。以下命令将会为您创建此 Artifact Registry 代码库。

  1. 在 Cloud Shell 中,执行以下命令:
AR_REPO='gemini-repo' SERVICE_NAME='gemini-streamlit-app' gcloud artifacts repositories create "$AR_REPO" --location="$GCP_REGION" --repository-format=Docker gcloud builds submit --tag "$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME"

输出:

DONE -------------------------------------------------------------------------------- ID CREATE_TIME DURATION SOURCE IMAGES STATUS a601ffd1-c282-43d2-942c-53cc13f43bf2 2023-12-18T11:37:30+00:00 2M29S gs://qwiklabs-gcp-00-eb090e9513e8_cloudbuild/source/1702899440.87287-549e1a0cc5644b3c9535ff57f4a63d02.tgz us-central1-docker.pkg.dev/qwiklabs-gcp-00-eb090e9513e8/gemini-repo/gemini-streamlit-app (+1 more) SUCCESS
  1. 最后一步是使用我们在上一步中构建并推送到 Artifact Registry 的映像,在 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

成功部署后,您将获得一个用于访问 Cloud Run 服务的网址。您可以在浏览器中访问该网址,查看刚刚部署的 Cloud Run 应用。

输出:

⠼ Deploying new service... Done. ✓ Deploying new service... Done. Done. Service [gemini-streamlit-app] revision [gemini-streamlit-app-00001-srg] has been deployed and is serving 100 percent of traffic. Service URL: https://gemini-streamlit-app-hc2gb6hsia-uc.a.run.app

选择您想要检查的功能,应用将提示 Vertex AI Gemini API 并显示响应。

Vertex Gemini

点击检查我的进度以验证是否完成了以下目标:构建应用并将其部署到 Cloud Run

恭喜!

恭喜!在本实验中,您学习了如何将 Vertex AI Gemini API 与应用集成,以及如何在 Google Cloud Run 上构建和部署所开发的示例应用。

后续步骤/了解详情

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2024 年 3 月 7 日

上次测试实验的时间:2024 年 3 月 7 日

版权所有 2024 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您