Firebase Genkit と Cloud Run

Cloud Run を使用して、Firebase Genkit のフローをウェブサービスとしてデプロイできます。このページ デフォルト サンプルをデプロイするプロセスを順を追って説明します。 できます。

  1. 次の場合は、Google Cloud CLI をインストールします。 できます。

  2. 次のコマンドを使用して、新しい Google Cloud プロジェクトを作成します。 Cloud コンソールを使用するか、既存のコンソールを選択します。 プロジェクトは請求先アカウントにリンクされている必要があります。

    プロジェクトを作成または選択したら、 説明します。

    gcloud auth login
    gcloud init
    
  3. Genkit サンプル プロジェクトのディレクトリを作成します。

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    IDE を使用する場合は、このディレクトリを開きます。

  4. プロジェクト ディレクトリで Go モジュールを初期化します。

    go mod init example/cloudrun
    
  5. プロジェクトで Genkit を初期化します。

    genkit init
    

    使用するモデル プロバイダを選択します。

    残りのプロンプトについては、デフォルト値を受け入れます。genkit ツールは、 サンプルのソースファイルを使用して、独自の AI フローの開発を開始できます。 このチュートリアルでは、サンプルフローのみをデプロイします。

  6. サンプル ファイル(main.go または genkit.go)を編集して、 フローサーバーがリッスンするポート:

    if err := genkit.Init(ctx,
        &genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
        log.Fatal(err)
    }
    
  7. デプロイされた関数で API 認証情報を利用できるようにします。次のいずれかを行う 以下のいずれかになります。

    Gemini(Google AI)

    1. Google AI が 利用可能な地域をご確認ください。

    2. アプリケーションの API キーを生成 Google AI Studio を使用する Gemini API。

    3. API キーを Cloud Run 環境で使用できるようにします。

      1. Cloud コンソールで、 Secret Manager API
      2. Secret Manager API キーを含む新しいシークレットを作成します。
      3. シークレットを作成した後、同じページでデフォルトのシークレットを シークレットへの Compute サービス アカウントの Secret Manager のシークレット アクセサー ロール。(名前は デフォルトのコンピューティング サービス アカウントの [IAM] ページで確認できます)。

      後のステップでサービスをデプロイするときに、 この Secret の名前を参照します。

    Gemini(Vertex AI)

    1. Cloud コンソールで Vertex AI API を有効にする 選択します。

    2. IAM [デフォルトのコンピューティング サービス アカウント] に Vertex AI ユーザーロール。

    このチュートリアル用に設定する必要があるシークレットは、モデル用のものだけです。 ただし、通常はサービスごとに同様のことを 確認できます。

  8. 省略可: デベロッパー UI でフローを試します。

    1. 選択したモデル プロバイダのローカル環境を設定します。

      Gemini(Google AI)

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini(Vertex AI)

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      
    2. UI を起動します。

      genkit start
      
    3. デベロッパー UI(http://localhost:4000/)で次のフローを実行します。

      1. [menuSuggestionFlow] をクリックします。

      2. [Input JSON] タブで、モデルの被写体を指定します。

        "banana"
        
      3. [実行] をクリックします。

  9. ここまでの作業ですべてが正常に動作していれば、 フロー:

    Gemini(Google AI)

    gcloud run deploy --port 3400 \
      --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini(Vertex AI)

    gcloud run deploy --port 3400 \
      --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \
      --set-env-vars GCLOUD_LOCATION=us-central1
    

    GCLOUD_LOCATION は、使用する Vertex API リージョンを構成します)。

    未認証の呼び出しを許可するかどうかを尋ねられたら、[N] を選択します。 「N」と入力すると、IAM 認証情報を要求するようにサービスが構成されます。詳しくは、 認証 をご覧ください。

デプロイが完了すると、ツールによってサービス URL が出力されます。テストできること curl に置き換えます。

curl -X POST https://<service-url>/menuSuggestionFlow \
  -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  -H "Content-Type: application/json" -d '"banana"'