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 の新しいコンセプトについて学習するためのものではありません。デフォルト値を変更する、エラー メッセージを読み調査を行ってミスを修正するなど、習得したスキルを応用する能力が求められます。

100% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。

このラボは、「Gemini と Streamlit を使用した生成 AI アプリの開発」コースに登録している受講者を対象としています。準備が整ったらチャレンジを開始しましょう。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

チャレンジ シナリオ

あなたは数か月前から Cymbal Health で働いています。Cymbal Health はミネソタ州中東部の定評のある医療ネットワークで、医療サービスの提供方法の見直しと変革に取り組んでいます。Cymbal Health は、1 つの健康保険プランで医療と保険適用とを結びつけ、患者が手頃な価格で質の高い医療を受けられるようにしています。

さらに付加価値サービスとして、アプリ内でのヒントやアドバイスを通じて、利用者の健康的な生活とウェルネスの向上を支援することを検討しています。特に注力したい分野の一つは、利用者の栄養状態の向上です。

Cymbal Labs のロゴ

Cymbal Health は、テキスト、音声、画像、動画を生成するマルチモーダル モデルである Gemini の機能を活用して、利用者向けに食事に関する推奨事項を生成するアプリケーションを構築したいと考えています。

一例として、あなたのチームは AI ベースの食事管理アプリを作成しようとしています。このアプリは、利用者の料理の好み、食事制限、食物アレルギー、家にある食材や食料品店で購入できる食材に基づいてレシピを生成します。あなたの仕事は、Gemini モデル、Streamlit フレームワーク、Cloud Run を使用して開発されるこのアプリの概念実証(PoC)の構築、テスト、デプロイを行うことです。この PoC の一環として、あなたは決められた時間内にサンドボックス環境で一連のタスクを行う必要があります。

チャレンジ

実行するタスクは次のとおりです。

  • cURL を使用して API を呼び出し、プロンプトをテストする
  • Streamlit フレームワークとプロンプトの Python コードを記述して、chef.py を完成させる
  • アプリケーションをテストする
  • Dockerfile を更新し、Artifact Registry に Docker イメージを push する
  • アプリケーションを Cloud Run にデプロイしてテストする

タスク 1. cURL を使用して API を呼び出し、プロンプトをテストする

Vertex AI で食事管理アプリの作成を開始する前に、Gemini API との接続をテストする必要があります。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[Vertex AI] > [ワークベンチ] の順にクリックします。

  2. インスタンスを見つけて、[JupyterLab を開く] ボタンをクリックします。

Workbench インスタンスの JupyterLab インターフェースが新しいブラウザタブで開きます。

注: JupyterLab にノートブックが表示されない場合は、次の追加手順でインスタンスを再設定してください。

1. JupyterLab のブラウザタブを閉じて、Workbench のホームページに戻ります。

2. インスタンス名の横にあるチェックボックスをオンにして、[リセット] をクリックします。

3. [JupyterLab を開く] ボタンが再度有効になったら、1 分待ってから [JupyterLab を開く] をクリックします。

  1. 左側のメニューから prompt.ipynb に変更を加え、セル 3 にプロジェクト ID とリージョンを含めます。これらの値は、ラボの手順が表示される左のパネルで確認できます。

  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 を保存します。

適切な結果が得られたら、目標を確認します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 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 ファイルをダウンロードし、編集もここで行ってください。これは、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 ファイルには、cuisine、dietary_preference、allergy、ingredient_1、ingredient_2、ingredient_3 の変数用の Streamlit フレームワーク ユーザー インターフェース コードがあらかじめ含まれています。次のステップに進む前に、このインターフェース コードを確認してください。
  6. [Project ID](プロジェクト ID)に を使用し、[Location](ロケーション)に を使用します。

  7. wine 変数用の Streamlit フレームワーク ラジオボタン オプションを追加します。Red、White、None(赤、白、なし)のオプションを含めます。

  1. chef.py ファイルを保存します。

  2. 以下の新しい Gemini プロンプトを Python コードに追加します。

    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 バケットにファイルをアップロードします。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 にイメージを push する

このタスクでは、chef.py ファイルを使用するようにサンプルの Dockerfile を更新し、Artifact Registry に Docker イメージを push します。

重要: このタスクの手順を完了する前に、前のタスクと同様に、PROJECT(プロジェクト ID)と REGION(ラボ環境で使用しているリージョン)の環境変数を設定することをおすすめします。
  1. Cloud Shell エディタを使用して、chef.py を使用するように Dockerfile を更新し、ファイルを保存します。

  2. Cloud Shell で、次の変数を設定します。

    変数
    AR_REPO chef-repo
    SERVICE_NAME chef-streamlit-app
    注: Artifact Registry リポジトリを作成して Cloud Build にビルドを送信するプロセスには約 8 分かかります。このコマンドと次の 2 つのコマンドを組み合わせて 1 つのコマンドにすることをおすすめします。
  3. gcloud artifacts repositories create コマンドと次のパラメータを使用して、Artifact Registry リポジトリを作成します。

    パラメータ
    リポジトリの名前 $AR_REPO
    ロケーション $REGION
    リポジトリ形式 Docker
  4. gcloud builds submit コマンドと次のパラメータを使用してビルドを送信します。

    パラメータ
    タグ "$REGION-docker.pkg.dev/$PROJECT/$AR_REPO/$SERVICE_NAME"
  5. コマンドが完了するまで待ちます。

コマンドが完了したら、目標を確認します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Dockerfile を更新し、Artifact Registry に Docker イメージを push する

タスク 5. アプリケーションを Cloud Run にデプロイしてテストする

このタスクでは、アプリケーションを(Docker アーティファクトとして)Cloud Run にデプロイし、Cloud Run サービス エンドポイントから実行されるアプリケーションをテストします。

  1. Cloud Shell で、glcoud 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 サービスの URL が提供されます。ブラウザでその URL にアクセスして、デプロイした Cloud Run アプリケーションを表示できます。

  2. 提供されたリンクを使用してアプリケーションをテストします。

Cloud Run で実行されるアプリケーションをテストし、正常に実行されたら、目標を確認します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 アプリケーションを Cloud Run にデプロイしてテストする

お疲れさまでした

このチャレンジラボを完了することで、Gemini を使用して生成 AI アプリを開発するスキルと、それを AI ベースの食事管理アプリに応用するスキルを証明しました。

「Gemini と Streamlit を使用した生成 AI アプリの開発」のスキルバッジ

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 5 月 28 日

ラボの最終テスト日: 2025 年 5 月 28 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。