テンプレートの高度なワークフロー


Firebase AI Logic の場合、Firebase コンソールには、テンプレートの内容を指定するためのガイド付き UI が用意されています。ただし、次のようなユースケースでは、テンプレートを設定するより高度な方法が必要になる場合があります。

このページで説明する高度なワークフローでは、Firebase AI Logic REST API を使用します。

REST API の使用に関する重要な情報

  • テンプレートがロック解除されている場合は、REST API 呼び出しで同じテンプレート ID を使用してテンプレートを上書きできます。ロックされたテンプレートは上書きできません。

  • REST API を介してサーバー プロンプト テンプレートを作成し、そのロケーションを global に設定すると、サーバー プロンプト テンプレートはすべてのロケーション(global を含む)に自動的にプロビジョニングされ、両方の Gemini API プロバイダで使用できるようになります。ただし、REST API でテンプレートを作成するときに別のロケーションを設定すると、テンプレートは Agent Platform Gemini API (formerly Vertex AI) でのみ使用できます。詳しくは、後述のテンプレートに特定の場所を設定するをご覧ください。

    Firebase コンソールのガイド付き UI を使用すると、テンプレートはすべてのロケーション(global を含む)で自動的にプロビジョニングされ、両方の Gemini API プロバイダで使用できるようになります。

  • REST API 経由で templateGenerateContent または templateStreamGenerateContent リクエストでサーバー プロンプト テンプレートにアクセスするには、Gemini API プロバイダ固有のエンドポイント(Gemini Developer API | Agent Platform Gemini API (formerly Vertex AI))を使用する必要があります。

(Agent Platform Gemini API (formerly Vertex AI) のみ)テンプレートの特定のロケーションを設定する

このセクションは、次の状況に適用されます。

  • アプリのユースケースに位置情報に基づく要件がある。

  • アプリのリクエストで Agent Platform Gemini API (formerly Vertex AI) を使用し、モデルにアクセスする場所を指定します。

このページの冒頭で説明したように、次のいずれかを行うと、サーバー プロンプト テンプレートが Firebase AI Logic でサポートされているすべてのリージョン(global を含む)に自動的にプロビジョニングされます。

  • Firebase コンソールのガイド付き UI を使用してテンプレートを作成します。
  • REST API を使用してテンプレートを作成し、そのロケーションを global に設定します。

つまり、アプリのリクエストで Firebase AI Logic の使用可能なリージョンを任意に設定すると、テンプレートが使用可能になります。アプリのリクエストで位置情報を global に設定する必要はありません。

ただし、テンプレートを 特定のロケーションでのみ使用できるようにする場合は、REST API を使用して テンプレートを作成し、その特定のロケーションを明示的に設定する必要があります。ロケーションを global に設定しないでください。

  1. projects.locations.templates.create エンドポイントを呼び出して、テンプレートを作成します。PromptTemplate の作成の一部として、テンプレートの location(europe-west4 など)を指定します。

  2. アプリのリクエストで、モデルにアクセスするロケーションがテンプレートのロケーション(eu)と一致していることを確認します。

次の点に注意してください。

  • Firebase コンソールのテンプレートのリストには、global ロケーションに(少なくとも)プロビジョニングされているテンプレートのみが表示されます。

  • REST API を使用して特定のロケーション(global ではない)にテンプレートをプロビジョニングする場合、アプリのリクエストでモデルにアクセスするロケーションは、テンプレートに設定されたロケーションと一致している必要があります。ロケーションが一致しない場合、リクエストは失敗します(リージョン分離ポリシーによる)。

テンプレートをファイルとして提供する

projects.locations.templates.create エンドポイントを呼び出すことで、サーバー プロンプト テンプレート ファイルの内容を指定できます。