arrow_back

使用 Gemini 和 Streamlit 开发生成式 AI 应用:实验室挑战赛

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

使用 Gemini 和 Streamlit 开发生成式 AI 应用:实验室挑战赛

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

GSP517

Google Cloud 自定进度实验

概览

在实验室挑战赛中,我们会为您提供一个场景和一系列任务。您将使用从课程的各个实验中学到的技能自行确定如何完成这些任务,而不是按照分步说明进行操作。自动评分系统(显示在本页面中)会提供有关您是否已正确完成任务的反馈。

在您参加实验室挑战赛期间,我们不会再教授新的 Google Cloud 概念知识。您需要拓展所学的技能,例如通过更改默认值和查看并研究错误消息来更正您自己所犯的错误。

要想获得满分,您必须在该时间段内成功完成所有任务!

我们建议已报名参加使用 Gemini 和 Streamlit 开发生成式 AI 应用课程的学员参加此实验室挑战赛。准备好接受挑战了吗?

设置和要求

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

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

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

为完成此实验,您需要:

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

挑战场景

您在几个月前刚刚入职 Cymbal Health。Cymbal Health 是美国明尼苏达州中东部地区的一家成熟的医疗网络公司,致力于重新构想和改变医疗服务的提供方式。Cymbal Health 将医疗服务和保险整合到一个健康方案中,让患者能够以实惠的价格更轻松地获得高质量的医疗服务。

作为增值服务,Cymbal Health 希望通过应用中的提示和建议来改善客户的健康生活和身体状况。他们希望重点关注的一个领域是改善客户营养。

Cymbal Labs 徽标

利用 Gemini Pro(一种用于生成文本、音频、图片和视频的多模态模型)的强大功能,Cymbal Health 可以构建应用来为客户生成膳食建议。

例如,您的团队一直在努力打造一款基于 AI 技术的 Chef 应用,该应用会根据客户的菜系偏好、饮食禁忌、食物过敏情况以及他们家中通常储备或能在杂货店买到的食材生成食谱。您的任务是对这款基于 Gemini Pro 模型、Streamlit 框架和 Cloud Run 构建的 Chef 应用构建、测试和部署概念验证 (POC)。在此 POC 过程中,他们会列出一系列要求您在沙盒环境中于分配的时间内完成的任务。

您的挑战

您的任务包括:

  • 使用 cURL 测试 API 提示。
  • 编写 Streamlit 框架和提示 Python 代码以完成 chef.py
  • 测试该应用。
  • 修改 Dockerfile 并将相应的 Docker 映像推送到 Artifact Registry。
  • 将应用部署到 Cloud Run 并进行测试。

任务 1. 使用 cURL 测试 API 提示

在 Vertex AI 中开始创建 Chef 应用之前,您应该先测试与 Gemini API 的连接。

  1. 在实验室环境的 Cloud 控制台中,访问为您提供的 Vertex AI Workbench 用户管理的笔记本。

  2. 打开一个终端,然后使用以下命令从 Cloud Storage 下载 prompt.ipynb 文件:

    gsutil cp gs://spls/gsp517/prompt.ipynb .
  3. 修改 prompt.ipynb,以在单元格 3 中添加您的 project_ID 和区域。您可以在实验说明的左侧面板中找到这些信息。

  4. 修改 prompt.ipynb,将单元格 5 中的现有提示替换为以下提示,与 cURL 搭配使用。

    I am a Chef. I need to create Japanese recipes for customers who want low sodium meals. However, I do not want to include recipes that use ingredients associated with a peanuts food allergy. I have ahi tuna, fresh ginger, and edamame in my kitchen and other ingredients. The customer wine preference is red. Please provide some for meal recommendations. For each recommendation include preparation instructions, time to prepare and the recipe title at the begining of the response. Then include the wine paring for each recommendation. At the end of the recommendation provide the calories associated with the meal and the nutritional facts.
  5. 运行所有单元格并观察结果。

  6. 保存 prompt.ipynb

对结果满意后,验证目标。

如需验证是否已完成以下目标,请点击检查我的进度 使用 cURL 测试 API 提示。

任务 2. 编写 Streamlit 框架和提示 Python 代码以完成 chef.py。

在此任务中,您将克隆一个 GitHub 代码库并下载 chef.py 文件。然后,您将在 chef.py 文件中添加 wine 偏好设置对应的 Streamlit 框架代码,以完成应用的界面。您还需要添加一个自定义 Gemini 提示(类似于任务 1 中的提示),但此提示包含变量。

  1. 使用 Cloud Shell 从默认目录克隆以下代码库。

    git clone https://github.com/GoogleCloudPlatform/generative-ai.git
  2. 前往 gemini-streamlit-cloudrun 目录。

    cd generative-ai/gemini/sample-apps/gemini-streamlit-cloudrun 重要提示:本实验室挑战赛中的所有任务都应在此目录中完成。如果您未在此处下载 chef.py 文件并对其进行更改,它将无法访问 Streamlit 框架。您也无法在 Cloud Shell 中对其进行测试(任务 3),无法构建 Docker 容器(任务 4),并且无法在 Cloud Run 中对其进行部署和测试(任务 5)。
  3. 使用以下命令下载 chef.py 文件。

    gsutil cp gs://spls/gsp517/chef.py .
  4. 在 Cloud Shell 编辑器中打开 chef.py 文件,然后查看代码。

    注意:chef.py 文件中已包含 cuisine、dietary_preference、allergy、ingredient_1、ingredient_2 和 ingredient_3 变量的 Streamlit 框架界面代码。请先查看此接口代码,然后再完成下一步。
  5. 为 wine 变量添加 Streamlit 框架单选按钮选项。包含 Red(红)、White(白)和 None(无)选项。

  1. 保存 chef.py 文件。

  2. 在 Python 代码中添加以下新的 Gemini 提示。

    prompt = f"""I am a Chef. I need to create {cuisine} \n recipes for customers who want {dietary_preference} meals. \n However, don't include recipes that use ingredients with the customer's {allergy} allergy. \n I have {ingredient_1}, \n {ingredient_2}, \n and {ingredient_3} \n in my kitchen and other ingredients. \n The customer's wine preference is {wine} \n Please provide some for meal recommendations. For each recommendation include preparation instructions, time to prepare and the recipe title at the begining of the response. Then include the wine paring for each recommendation. At the end of the recommendation provide the calories associated with the meal and the nutritional facts. """
  3. 保存 chef.py 文件。

对您在 chef.py 中添加的 Gemini 提示代码感到满意后,请在 Cloud Shell 中运行以下命令,将该文件上传到 -generative-ai 存储桶。在 Cloud 控制台中,点击打开终端,以在 Cloud Shell 中打开会话。

gcloud storage cp chef.py gs://{{{project_0.project_id|set at lab start}}}-generative-ai/

如需验证是否已完成以下目标,请点击检查我的进度编写提示和 Streamlit 框架 Python 代码以完成 chef.py

注意:在 chef.py 文件中进行任何更改后,请务必运行上述命令,以便存储桶中包含更新后的 chef.py 文件。

任务 3. 测试应用

在此任务中,您将使用 Cloud Shell 中的终端运行和测试应用。

确保您仍位于此路径:generative-ai/gemini/sample-apps/gemini-streamlit-cloudrun

  1. 设置 Python 虚拟环境并安装依赖项。

  2. 为 PROJECT(作为您的项目 ID)和 REGION(作为在实验室环境中使用的区域)设置环境变量。

  3. 运行 chef.py 应用并对其进行测试。

在 Cloud Shell 中测试应用并确认其按设计运行且没有错误后,验证目标。

如需验证是否已完成以下目标,请点击检查我的进度 测试应用。

任务 4. 修改 Dockerfile 并将相应的映像推送到 Artifact Registry

在此任务中,您将修改示例 Dockerfile 以使用 chef.py 文件,并将相应的 Docker 映像推送到 Artifact Registry。

重要提示:在完成此任务中的步骤之前,我们建议您为 PROJECT(作为您的项目 ID)和 REGION(作为在实验室环境中使用的区域)设置环境变量,就像在上一个任务中所做的那样。
  1. 使用 Cloud Shell 编辑器修改此 Dockerfile 以使用 chef.py,然后保存该文件。

  2. 在 Cloud Shell 中,设置以下环境变量。

    变量
    AR_REPO 'chef-repo'
    SERVICE_NAME 'chef-streamlit-app'
    注意:我们建议您将此命令与以下两个命令合并为一个命令,因为创建 Artificat Registry 并将 build 提交到 Cloud Build 的过程大约需要 8 分钟。
  3. 使用 gcloud artifacts repositories create 命令和以下参数创建 Artifact Registry 代码库。

    参数
    代码库名称 $AR_REPO
    位置 $REGION
    代码库格式 Docker
  4. 使用 gcloud builds submit 命令和以下参数提交 build。

    参数
    标记 "$REGION-docker.pkg.dev/$PROJECT/$AR_REPO/$SERVICE_NAME"
  5. 等待命令完成。

命令完成后,验证目标。

如需验证是否已完成以下目标,请点击检查我的进度 修改 Dockerfile 并将相应的 Docker 映像推送到 Artifact Registry。

任务 5. 将应用部署到 Cloud Run 并进行测试

在此任务中,您将应用(作为 Docker 工件)部署到 Cloud Run,然后测试应用是否从 Cloud Run 服务端点运行。

  1. 在 Cloud Shell 中,使用 gcloud run deploy 命令和以下参数值部署应用(作为 Docker 工件):

    参数
    端口 8080
    映像 "$REGION-docker.pkg.dev/$PROJECT/$AR_REPO/$SERVICE_NAME"
    标志 --allow-unauthenticated
    区域 REGION
    平台 managed
    项目 PROJECT
    set-env-vars PROJECT=$PROJECT,REGION=$REGION
    注意:您可能会看到一条提示,询问您“Do you want enable these APIs to continue (this will take a few minutes)?”(是否要启用这些 API 以继续操作 [这可能需要几分钟时间])。如果同意,请选择“Y”(是)。

    部署需要几分钟才能完成,您将获得一个用于访问此 Cloud Run 服务的网址。您可以在浏览器中访问该网址,查看刚刚部署的 Cloud Run 应用。

  2. 使用提供的链接测试应用。

成功测试在 Cloud Run 上运行的应用后,验证目标。

如需验证是否已完成以下目标,请点击检查我的进度 将应用部署到 Cloud Run 并进行测试。

恭喜!

通过完成此实验室挑战赛,您验证了自己使用 Gemini 开发生成式 AI 应用的技能,以及如何将这些技能运用于基于 AI 的 Chef 应用。

“使用 Gemini 和 Streamlit 开发生成式 AI 应用”技能徽章

后续步骤/了解详情

Google Cloud 培训和认证

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

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

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

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

此内容目前不可用

We will notify you via email when it becomes available

太好了!

We will contact you via email if it becomes available