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


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

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

REST API の使用に関する重要なお知らせ

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. アプリのリクエストで、モデルにアクセスする場所がテンプレートの場所(europe-west4)と一致していることを確認します。

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

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

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

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

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