arrow_back

Develop GenAI Apps with Gemini and Streamlit:挑戰實驗室

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

Develop GenAI Apps with Gemini and Streamlit:挑戰實驗室

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

GSP517

Google Cloud 自修研究室標誌

總覽

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

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

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

這個實驗室適合已參加 GenAI application development with Gemini and Streamlit 課程的學員。準備好迎接挑戰了嗎?

設定和需求

點選「Start Lab」按鈕前的須知事項

請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。

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

如要完成這個研究室活動,請先確認:

  • 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行此研究室。這可以防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
  • 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
注意:如果您擁有個人 Google Cloud 帳戶或專案,請勿用於本研究室,以免產生額外費用。

挑戰情境

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

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

Cymbal Labs 標誌

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

在這個範例情境中,貴團隊不斷努力建構採用 AI 技術的應用程式 Chef,讓系統依據下列因素生成適合顧客的食譜:料理偏好、飲食限制、食物過敏原,以及家中常備食材或超市販售的食材。您的工作是設計、測試及部署概念驗證 (POC),運用 Gemini Pro 模型、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. 在實驗室環境中,存取 Cloud 控制台內提供的使用者自管 Vertex AI Workbench 筆記本。

  2. 開啟終端機並輸入下列指令,從 Cloud Storage 下載 prompt.ipynb 檔案。

    gsutil cp gs://spls/gsp517/prompt.ipynb .
  3. 修改 prompt.ipynb 檔案,在儲存格 3 中加入 project_ID 和 region。這些資訊會顯示在實驗室操作說明的左側面板中。

  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

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

點按「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 重要事項:請務必在這個目錄中完成挑戰實驗室的所有工作。如未在這個目錄下載並變更 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 檔案已經含有下列變數的 Streamlit 架構使用者介面程式碼:cuisine、dietary_preference、allergy、ingredient_1、ingredient_2 和 ingredient_3。請先檢查這些介面程式碼,再完成後續步驟。
  5. 為「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 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 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 分鐘,才能建立 Artificat Registry,並將建構檔案提交至 Cloud Build。
  3. 使用 gcloud artifacts repositories create 指令和下列參數,建立 Artifact Registry 存放區。

    參數
    repo name $AR_REPO
    location $REGION
    repository format 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。

「GenAI application development with Gemini and Streamlit」技能徽章課程

後續行動/瞭解詳情

Google Cloud 教育訓練與認證

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

使用手冊上次更新日期:2024 年 4 月 4 日

實驗室上次測試日期:2024 年 3 月 8 日

Copyright 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