任意のアプリ ホスティング プラットフォームにフローをデプロイする

Firebase Genkit のフローは、Go バイナリをホストできる任意のサービスを使用して、ウェブサービスとしてデプロイできます。このページでは、デフォルトのサンプル フローをデプロイする一般的なプロセスを例として説明し、プロバイダ固有のアクションを実行する必要がある箇所を示します。

  1. Genkit サンプル プロジェクトのディレクトリを作成します。

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

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

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

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

    genkit init

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

    残りのプロンプトではデフォルト値を受け入れます。genkit ツールが、独自の AI フローの開発を開始するためのサンプルのソースファイルを作成します。ただし、このチュートリアルの残りの部分では、サンプル フローのデプロイのみを行います。

  4. サンプル ファイル(main.go または genkit.go)を編集して、フローサーバーがリッスンするポートを明示的に指定します。

    if err := genkit.Init(ctx,
    	&genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
    	log.Fatal(err)
    }
    

    プロバイダで特定のポートでリッスンすることが求められている場合は、それに応じて Genkit を構成してください。

  5. デプロイするフローのアクセスを制御するために、なんらかの認証と認可を実装します。

    ほとんどの生成 AI サービスは課金対象であるため、それらを呼び出すエンドポイントへのオープン アクセスを許可することはほとんどありません。一部のホスティング サービスは、デプロイされたアプリのフロントエンドとして認証レイヤを提供します。このレイヤをこの目的に使用できます。

  6. デプロイされた関数で API 認証情報を使用できるようにします。選択したモデル プロバイダに応じて、次のいずれかを行います。

    Gemini(Google AI)

    1. Google AI がお住まいの地域で利用可能であることを確認します。

    2. Google AI Studio を使用して Gemini API の API キーを生成します。

    3. デプロイされた環境で API キーを使用できるようにします。

      ほとんどのアプリホストは、API キーなどのシークレットを安全に処理するためのシステムを提供しています。多くの場合、これらのシークレットは環境変数の形式でアプリで使用できます。API キーを GOOGLE_GENAI_API_KEY 変数に割り当てることができる場合、Genkit は自動的にそのキーを使用します。それ以外の場合は、googleai.Init() 呼び出しを変更してキーを明示的に設定する必要があります。(ただし、キーをコードに直接埋め込まないでください。ホスティング プロバイダが提供するシークレット管理機能を使用します)。

    Gemini(Vertex AI)

    1. Cloud コンソールで、プロジェクトの Vertex AI API を有効を有効にするを選択します。

    2. Vertex AI API にアクセスするサービス アカウントがまだない場合は、[IAM] ページで作成します。

      アカウントに Vertex AI ユーザーロールを付与します。

    3. ホスティング環境でアプリケーションのデフォルト認証情報を設定します。

    4. Google Cloud プロジェクト ID と、使用する Vertex AI API ロケーションでプラグインを構成します。これを行うには、ホスティング環境または vertexai.Init() 呼び出しで GCLOUD_PROJECT 環境変数と GCLOUD_LOCATION 環境変数を設定します。

    このチュートリアルで設定する必要があるシークレットはモデル プロバイダ用のものだけですが、一般的には、フローで使用する各サービスに対して同様の設定を行う必要があります。

  7. 省略可: デベロッパー 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. [実行] をクリックします。

  8. これまでのところすべてが想定どおりに動作している場合は、プロバイダのツールを使用してフローを作成してデプロイできます。