テンプレートのベスト プラクティスと考慮事項


このページでは、サーバー プロンプト テンプレートに関するベスト プラクティスと考慮事項 について説明します。これには、 まだサポートされていない機能も含まれます。これらの機能の多くは、サーバープロンプト テンプレートの進化に伴って利用可能になる予定です。最新情報については、 リリースノートをご確認ください。

ベスト プラクティス

これらのベスト プラクティスの多くは、 テンプレートを管理するでも詳しく説明されています。

テンプレートをバージョニングする

テンプレートを保護する

  • 変更を十分にテストしていない限り、本番環境で使用されているテンプレートは編集しないでください。

  • 本番環境に移行する前にテンプレートをロックします。

    • テンプレートをロックすると、意図しない編集を防ぐことができますが、 ロックしても編集を完全にブロックすることはできません。適切な権限を持つプロジェクト メンバーは、いつでもテンプレートのロックを解除して編集できます。

    • コード(特に本番環境コード)で積極的に使用されているテンプレートはロックすることをおすすめします。

Gemini API の使用を保護する

  • 入力変数に対して強力な 入力検証 を記述します。これは、次のことに役立ちます。

    • プロンプト インジェクションから保護するのに役立ちます。
    • リクエストが成功し、レスポンスが想定どおりになるようにするのに役立ちます。
  • Firebase プロジェクトで テンプレート専用モード を適用して、Gemini API を介したすべての Firebase AI Logic リクエストでサーバー プロンプト テンプレートを使用する必要があります。

サーバー プロンプト テンプレートでまだサポートされていない機能

これらの機能の多くは、サーバー プロンプト テンプレートの進化に伴って利用可能になる予定です。 最新情報については、リリースノートをご確認ください。

テンプレートでまだサポートされていない Firebase AI Logic の機能

Firebase AI Logic の次の標準機能は、サーバー プロンプト テンプレートではまだ サポートされていません。

  • 双方向ストリーミング(Gemini Live API
  • ハイブリッドまたはオンデバイス推論
  • 出力の列挙型のリストへの制約

また、Firebase コンソールで AI モニタリングを使用する場合、 テンプレート ID はまだどのレコードにも入力されていません。

テンプレートでまだサポートされていない Dotprompt の共通要素

サーバー プロンプト テンプレートはDotprompt の次の共通 要素をサポートする予定です。

  • フロントマターで入力スキーマと出力スキーマに JSON スキーマ仕様 を使用する。

    • この仕様は、サーバー以外のテンプレート リクエストでもサポートされていません。 現在サポートされているのは OpenAPI スキーマ仕様のみです。
  • * を使用してワイルドカード フィールド定義を宣言する。

  • @key を使用するか、オブジェクト入力のフィールドを反復処理する(@key が関連する場合)。

  • @root を使用する。これにより、現在の this に関係なく、ルート変数コンテキストを参照できます。

サーバー プロンプト テンプレートは、Dotprompt の次の共通 要素をサポートしない可能性があります。

  • パーシャルを使用する。パーシャルは、他のテンプレートに含めることができる再利用可能なテンプレート スニペットです。

その他の考慮事項

  • デフォルトでは、Firebase コンソールのガイド付き UI を使用すると、 テンプレートはすべての サポートされているリージョンにFirebase AI Logicプロビジョニングされます。 Agent Platform Gemini API (formerly Vertex AI)を使用しており、ユースケースで ロケーション ベースの制限が必要な場合は、 REST API を使用してテンプレートのロケーションを指定できます。

  • サーバー プロンプト テンプレートをファイルとして 提供する場合はFirebase コンソールのガイド付き UI を使用するのではなく)、 REST API を使用できます。サーバー プロンプト テンプレートは、アプリコードで定義され、テンプレートに渡されるスキーマをサポートしていません。

  • テンプレートはサーバー上にありますが、Firebase プロジェクトの他のサーバーサイド リソース(データベースなど)と直接やり取りすることはできません。 Cloud Storage for Firebase URL を除く(入力変数として指定できます)。