このページでは、サーバー プロンプト テンプレートに関するベスト プラクティスと考慮事項について説明します。これには、まだサポートされていない機能も含まれます。これらの機能の多くは、サーバー プロンプト テンプレートの初回リリース時には利用できません。リリースノートで最新情報を確認してください。
ベスト プラクティス
これらのベスト プラクティスの多くは、テンプレートを管理するでも詳しく説明されています。
テンプレートをバージョニングする
セマンティック バージョニング(semver)を使用するバージョンが付加されたテンプレート ID を作成します。
Firebase Remote Config を使用すると、リクエスト内のテンプレートやその他の値を簡単に変更できます。
テンプレートを保護する
本番環境に移行する前に、テンプレートをロックします。また、本番環境で使用されているテンプレートは編集しないでください。
テンプレートをロックすると、意図しない編集を防ぐことができますが、ロックしても編集を完全にブロックすることはできません。適切な権限を持つプロジェクト メンバーは、いつでもテンプレートのロックを解除して編集できます。
コード(特に本番環境コード)でアクティブに使用されているテンプレートはロックすることをおすすめします。
入力変数に対して強力な入力検証を記述します。これは、次のことに役立ちます。
- プロンプト インジェクションから保護するのに役立ちます。
- リクエストが成功し、レスポンスが想定どおりになるようにします。
まだサポートされていない機能
これらの未サポート機能の多くは、初回リリースでのみ利用できないため、リリースノートで最新情報を確認してください。
Firebase AI Logic のまだサポートされていない機能
サーバー プロンプト テンプレートは、Firebase AI Logic の次の機能をまだサポートしていません。これらの機能のいくつかは近日中にリリースされる予定です。
- チャット
- ツールの使用(関数呼び出しや Google 検索によるグラウンディングなど)
- Gemini モデルを使用した画像の反復編集(チャット)(チャットが必要)
- Imagen モデルを使用した画像の編集
- 双方向ストリーミング(Gemini Live API)
- ハイブリッド オンデバイス
- 出力を列挙型のリストに制限する
- 思考に関する設定を構成する
- 安全性設定の構成
また、Firebase コンソールで AI モニタリングを使用する場合、テンプレート ID はまだどのレコードにも入力されていません。
Dotprompt のまだサポートされていない共通要素
サーバー プロンプト テンプレートは、まもなく Dotprompt の次の共通要素をサポートする予定です。
フロントマターの入力スキーマと出力スキーマに JSON スキーマ仕様を使用します。
- この仕様は、サーバー以外のテンプレート リクエストでもサポートされていません。現在、OpenAPI スキーマ仕様のみがサポートされています。
*を使用してワイルドカード フィールド定義を宣言する。@keyを使用する、またはオブジェクト入力のフィールドを一般的に反復処理する(@keyが関連する場合)。@rootを使用します。これにより、現在のthisに関係なく、ルート変数コンテキストを参照できます。
サーバー プロンプト テンプレートは、Dotprompt の次の一般的な要素をサポートしない可能性があります。
- パーシャルを使用する。これは、他のテンプレートに含めることができる再利用可能なテンプレート スニペットです。
その他の考慮事項
デフォルトでは、Firebase コンソールのガイド付き UI を使用すると、Firebase AI Logic の利用可能なすべてのリージョンにテンプレートがプロビジョニングされます。Vertex AI Gemini API を使用していて、ユースケースでロケーション ベースの制限が必要な場合は、REST API を使用してテンプレートのロケーションを指定できます。
サーバー プロンプト テンプレートをファイルとして提供する(Firebase コンソールのガイド付き UI を使用するのではなく)場合は、REST API を使用できます。サーバー プロンプト テンプレートは、アプリコードで定義され、テンプレートに渡されるスキーマをサポートしていません。
テンプレートはサーバー上にありますが、Cloud Storage for Firebase URL(入力変数として指定可能)を除き、Firebase プロジェクトの他のサーバーサイド リソース(データベースなど)と直接やり取りすることはできません。