arrow_back

使用 Gemini 和 Streamlit 開發生成式 AI 應用程式:挑戰實驗室

登录 加入
访问 700 多个实验和课程

使用 Gemini 和 Streamlit 開發生成式 AI 應用程式:挑戰實驗室

实验 1 小时 30 分钟 universal_currency_alt 5 积分 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP517

Google Cloud 自學實驗室標誌

總覽

在挑戰研究室中,您會在特定情境下完成一系列任務。挑戰研究室不會提供逐步說明,您將運用從課程研究室學到的技巧,自行找出方法完成任務!自動評分系統 (如本頁所示) 將根據您是否正確完成任務來提供意見回饋。

在您完成任務的期間,挑戰研究室不會介紹新的 Google Cloud 概念。您須靈活運用所學技巧,例如變更預設值或詳讀並研究錯誤訊息,解決遇到的問題。

若想滿分達標,就必須在時限內成功完成所有任務!

本實驗室適合「使用 Gemini 和 Streamlit 開發生成式 AI 應用程式」課程的學員。準備好迎接挑戰了嗎?

設定和需求

瞭解以下事項後,再點選「Start Lab」按鈕

請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。

您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。

為了順利完成這個實驗室,請先確認:

  • 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。

挑戰情境

您在幾個月前成為 Cymbal Health 的員工。這家公司位於明尼蘇達州中部東邊,是一個成熟的醫療保健體系,致力重新構思並翻轉提供醫療照護服務的方式。Cymbal Health 將醫療照護與保險整合為單一醫療保障計畫,讓病患能更輕鬆地享有高品質照護,而且收費合理公道。

Cymbal Health 有意提供加值服務,在應用程式增添各種實用提示和建議,鼓勵顧客採行更健康的生活方式,增進身心健康。這家公司側重的領域之一,是改善病患的營養攝取狀況。

Cymbal Labs 標誌

Gemini 是一種多模態模型,可生成文字、音訊、圖像和影片。Cymbal Health 決定利用 Gemini 的強大功能建構應用程式,為顧客提供餐點建議。

在這個範例情境中,您的團隊致力於建構 AI 輔助應用程式 Chef,讓系統依據下列因素生成適合顧客的食譜:料理偏好、飲食限制、食物過敏原,以及家中常備食材或超市販售的食材。您的工作是建構、測試及部署概念驗證 (POC),運用 Gemini 模型、Streamlit 框架和 Cloud Run 打造應用程式 Chef。為此,公司列出了一張工作清單,希望您在沙箱環境和時限內完成。

您的挑戰

要完成的工作如下:

  • 透過 cURL 呼叫 API 來測試提示詞
  • 編寫 Streamlit 框架和提示詞來生成 Python 程式碼,完成 chef.py 檔案內容
  • 測試應用程式
  • 修改 Dockerfile 並將 Docker 映像檔推送至 Artifact Registry
  • 將應用程式部署至 Cloud Run 並執行測試

工作 1:透過 cURL 呼叫 API 來測試提示詞

開始在 Vertex AI 建構應用程式 Chef 前,請務必先測試與 Gemini API 的連線。

  1. 前往 Google Cloud 控制台,依序點按「導覽選單」圖示 「導覽選單」圖示 >「Vertex AI」>「Workbench」

  2. 找出 執行個體,點按「Open JupyterLab」按鈕。

Workbench 執行個體的 JupyterLab 介面會在新瀏覽器分頁開啟。

注意:如果在 JupyterLab 沒有看見筆記本,請按照以下額外步驟重設執行個體:

1. 關閉 JupyterLab 的瀏覽器分頁,回到 Workbench 首頁。

2. 勾選執行個體名稱旁的核取方塊,然後點按「重設」

3. 「開啟 JupyterLab」按鈕再次啟用後,等待一分鐘,然後點按「開啟 JupyterLab」

  1. 透過左側選單修改 prompt.ipynb 檔案,在儲存格 3 中加入 project_ID 和 region。這些資訊會顯示在實驗室操作說明的左側面板。

  2. 透過左側選單修改 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 beginning 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. 執行所有儲存格並觀察結果。

  4. 儲存 prompt.ipynb

如果對測試結果感到滿意,即可確認目標已達成。

點選「Check my progress」,確認目標已達成。 透過 cURL 呼叫 API 來測試提示詞

工作 2:編寫 Streamlit 框架和提示來生成 Python 程式碼,完成 chef.py 檔案內容

在這項工作中,您必須複製 GitHub 存放區並下載 chef.py 檔案。接著在 chef.py 檔案中,請新增 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
  3. 在 requirements.txt 檔案指定依附元件:

    google-cloud-logging 重要事項:請務必在這個目錄完成挑戰實驗室的所有工作,如未在這裡下載並變更 chef.py,檔案就無法採用 Streamlit 框架。屆時您也不能在 Cloud Shell 中測試檔案 (工作 3)、建構 Docker 容器 (工作 4),以及部署至 Cloud Run 並執行測試 (工作 5)。
  4. 使用下列指令下載 chef.py 檔案。

    gsutil cp {{{project_0.startup_script.python_file_path|Chef Python file path}}} .
  5. 在 Cloud Shell 編輯器開啟 chef.py 檔案,然後檢查程式碼。

    注意:chef.py 檔案已經含有下列變數的 Streamlit 框架使用者介面程式碼:cuisine、dietary_preference、allergy、ingredient_1、ingredient_2 和 ingredient_3。請先檢查這些介面程式碼,再完成後續步驟。
  6. 「專案 ID」請使用 ,「位置」則使用

  7. 為「wine」變數新增 Streamlit 框架圓形按鈕選項,包括「紅酒」、「白酒」和「無」。

  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 beginning 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 bucket。方法很簡單,在 Cloud Shell 中點按「開啟終端機」,即可開啟工作階段。

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

點選「Check my progress」,確認目標已達成。 編寫提示和 Streamlit 框架來生成 Python 程式碼,完成 chef.py 檔案內容

注意:修改 chef.py 檔案後,請務必執行上述指令,這樣更新過的 chef.py 檔案才會出現在 bucket 中。

工作 3:測試應用程式

在這項工作中,您將使用 Cloud Shell 中的終端機,執行應用程式並完成測試。

請確認您目前仍在這個路徑:generative-ai/gemini/sample-apps/gemini-streamlit-cloudrun

  1. 設定 Python 虛擬環境並安裝依附元件。

  2. 分別為 PROJECT (即專案 ID) 和 REGION (即您在實驗室環境指定的區域) 設定環境變數。

  3. 執行並測試 chef.py 應用程式。

在 Cloud Shell 測試完應用程式、確定運作正常且未發生任何錯誤後,即可確認目標已達成。

點選「Check my progress」,確認目標已達成。 測試應用程式

工作 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
    注意:建議您將這個指令和後續兩個指令合併成一個,因為系統大約需要 8 分鐘,才能建立 Artifact Registry,並將建構檔案提交至 Cloud Build。
  3. 使用 gcloud artifacts repositories create 指令和下列參數,建立 Artifact Registry 存放區。

    參數
    存放區名稱 $AR_REPO
    位置 $REGION
    存放區格式 Docker
  4. 使用 gcloud builds submit 指令和下列參數提交建構檔案。

    參數
    tag "$REGION-docker.pkg.dev/$PROJECT/$AR_REPO/$SERVICE_NAME"
  5. 等指令執行完畢。

指令執行完成後,即可確認目標已達成。

點選「Check my progress」,確認目標已達成。 修改 Dockerfile 並將 Docker 映像檔推送至 Artifact Registry

工作 5:將應用程式部署至 Cloud Run 並執行測試

在這項工作中,您必須將應用程式 (即 Docker 構件) 部署至 Cloud Run,並從 Cloud Run 服務端點執行應用程式來完成測試。

  1. 在 Cloud Shell 使用 gcloud run deploy 指令和下列參數值部署應用程式 (即 Docker 構件):

    參數
    port 8080
    image "$REGION-docker.pkg.dev/$PROJECT/$AR_REPO/$SERVICE_NAME"
    flag --allow-unauthenticated
    region REGION
    platform managed
    project PROJECT
    set-env-vars PROJECT=$PROJECT,REGION=$REGION
    注意:畫面上可能會出現提示,詢問您是否要啟用這些 API 以繼續操作 (這項作業需要幾分鐘才能完成)。如果需要,請選擇「Y」確認操作。

    部署作業將在幾分鐘內完成,隨後系統會提供您 Cloud Run 服務的網址。您可以使用瀏覽器前往該網址,查看方才部署的 Cloud Run 應用程式。

  2. 使用系統提供的連結測試應用程式。

成功測試應用程式在 Cloud Run 中的運作情形後,即可確認目標已達成。

點選「Check my progress」,確認目標已達成。 將應用程式部署至 Cloud Run 並執行測試

恭喜!

完成本挑戰實驗室,即證明您有能力使用 Gemini 開發生成式 AI 應用程式,並運用這些知識建構 AI 輔助應用程式 Chef。

「使用 Gemini 和 Streamlit 開發生成式 AI 應用程式」技能徽章課程

後續步驟/瞭解詳情

Google Cloud 教育訓練與認證

協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。

使用手冊上次更新日期:2025 年 5 月 28 日

實驗室上次測試日期:2025 年 5 月 28 日

Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

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

太好了!

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

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。