Vertex AI in Firebase の一般提供版を使用するように移行する


Vertex AI in Firebase は 2024 年 10 月 21 日に一般提供(GA)にリリースされました。

Vertex AI in Firebase ライブラリのプレビュー バージョン(FirebaseVertexAI-Preview)を使用していた場合は、ライブラリの一般提供バージョン(FirebaseVertexAI)を使用するようにアップグレードするために、次の変更を行う必要があります。

移行に必要な変更の大まかなリストは次のとおりです。

Firebase プロジェクトで新しい必須 API を有効にする(すべてのユーザーに必須)

Firebase プロジェクトで Vertex AI in Firebase API を有効にして、Firebase API キーの許可リストに追加する必要があります。これは、Vertex AI in Firebase の一般提供版を使用する際に必要な新しい API です。

  1. Firebase コンソールで、[Gemini を使用した構築] ページに移動します。

  2. [Vertex AI in Firebase] カードで [使ってみる] をクリックして、この API を有効にして Firebase API キーの許可リストに追加するワークフローを開始します。

  3. コンソールで残りのワークフローをスキップできます。

ライブラリの一般提供版に更新する(全ユーザー必須)

ライブラリの GA バージョンを使用するようにアプリのコードを更新する手順は次のとおりです。

  1. Xcode でアプリ プロジェクトを開き、次のいずれかのオプションを使用して Firebase パッケージをバージョン 11.4.0 以降に更新します。

    • オプション 1: すべてのパッケージを更新する: [ファイル] > [パッケージ] > [最新のパッケージ バージョンに更新] に移動します。

    • オプション 2: Firebase を個別に更新する: [パッケージの依存関係] セクションで Firebase パッケージに移動します。Firebase パッケージを右クリックし、[パッケージを更新] を選択します。

  2. Firebase パッケージのバージョンが 11.4.0 以降になっていることを確認します。バージョン 11.9.0 以降にアップグレードできない場合は、指定したパッケージ要件でバージョン 11.9.0 以降へのアップグレードが許可されていることを確認します。

  3. プロジェクト エディタでアプリのターゲットを選択し、[フレームワーク、ライブラリ、埋め込みコンテンツ] セクションに移動します。

  4. + ボタンを選択し、Firebase パッケージから FirebaseVertexAI を追加します。

  5. [FirebaseVertexAI-Preview] を選択し、 ボタンを押します。

その他の変更(使用する機能に応じて必要)

SDK の一般提供版には、いくつかの変更が実装されています。次のリストを参照して、アプリで GA バージョンの SDK の使用に対応するためにコードに変更を加える必要のある点を確認します。

  • 関数呼び出し
    一般提供前にこの機能を実装した場合は、スキーマの定義方法を更新する必要があります。関数宣言の作成方法については、更新された関数呼び出しガイドをご覧ください。

  • responseSchema を使用して構造化出力(JSON など)を生成する
    一般提供前にこの機能を実装した場合は、スキーマの定義方法を更新する必要があります。JSON スキーマの作成方法については、新しい構造化出力ガイドをご覧ください。

  • タイムアウト

    • リクエストのデフォルトのタイムアウトを 180 秒に変更しました。
  • 列挙型

    • ほとんどの enum 型を、静的変数を持つ struct に置き換えました。この変更により、下位互換性のある方法で API をより柔軟に進化させることができます。switch ステートメントを使用する場合は、今後 SDK に追加される新しい値など、不明な値や処理されない値に対応するために、default: ケースを含める必要があります。

    • BlockThreshold 列挙型の名前を HarmBlockThreshold に変更しました。この型は struct になりました。

    • HarmCategoryHarmBlockThresholdHarmProbabilityBlockReasonFinishReason の各列挙型(現在は struct)から unknownunspecified のケースを削除しました。

    • 列挙型 ModelContent.PartPart という名前のプロトコルに置き換え、下位互換性のある方法で新しい型を追加できるようにしました。この変更の詳細については、コンテンツ部分のセクションをご覧ください。

  • コンテンツ部分

    • ThrowingPartsRepresentable プロトコルを削除し、ModelContent の初期化子を簡素化して、コンパイラ エラーが発生しないようにしました。正しくエンコードされていない画像は、generateContent で使用してもエラーがスローされます。

    • ModelContent.Part ケースを、Part プロトコルに準拠する次の struct タイプに置き換えました。

      • .textからTextPart
      • .data から InlineDataPart
      • .fileData から FileDataPart
      • .functionCall から FunctionCallPart
      • .functionResponseからFunctionResponsePart
  • 有害カテゴリ

    • HarmCategory を変更し、SafetySetting 型にネストされないようにしました。SafetySetting.HarmCategory として参照している場合は、HarmCategory に置き換えることができます。
  • 安全性に関するフィードバック

    • SafetyFeedback 型はどのレスポンスでも使用されていないため、削除しました。
  • 引用メタデータ

    • CitationMetadatacitationSources プロパティの名前を citations に変更しました。
  • 課金対象文字の合計数

    • 文字が送信されない状況を反映するため、CountTokensResponsetotalBillableCharacters プロパティを省略可能に変更しました。
  • 候補者の回答

    • 他のプラットフォームと一致するように、CandidateResponse の名前を Candidate に変更しました。
  • 生成構成

    • GenerationConfig のパブリック プロパティを internal に変更しました。これらはすべて、イニシャライザで構成できます。

移行に関連する可能性のあるエラー

Vertex AI in Firebase の一般提供版を使用するように移行する際、この移行ガイドに記載されている必要な変更をすべて完了していないと、エラーが発生することがあります。

403 エラー: Requests to this API firebasevertexai.googleapis.com ... are blocked.

Requests to this API firebasevertexai.googleapis.com ... are blocked. という 403 エラーが表示される場合は、通常、Firebase 構成ファイル/オブジェクトの API キーに、使用しようとしているプロダクトの許可リストに必要な API が含まれていないことを意味します。

アプリで使用している API キーに、キーの「API の制限」許可リストに必要な API がすべて含まれていることを確認します。Vertex AI in Firebase の場合、API キーの許可リストに少なくとも Vertex AI in Firebase API が含まれている必要があります。この API は、Firebase コンソールから新しい API を有効にしたときに、API キーの許可リストに自動的に追加されているはずです。

すべての API キーは、Google Cloud コンソールの [API とサービス] > [認証情報] パネルで確認できます。