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


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

Vertex AI in Firebase ライブラリのベータ版(firebase-vertexai:16.0.0-betaXX)を使用している場合は、ライブラリの一般提供版(firebase-vertexai:16.0.0 以降)を使用するようにアップグレードするために、次の変更を行う必要があります。

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

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. コンソールで残りのワークフローをスキップできます。

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

次の手順に沿って依存関係を更新し、Firebase Android BoM の最新バージョンを使用します。BoM の使用は必須ではありませんが、アプリで各 Firebase ライブラリの互換性のあるバージョンが使用されるようにするため、使用することを強くおすすめします。

  1. モジュール(アプリレベル)の Gradle ファイル(通常は <project>/<app-module>/build.gradle.kts または <project>/<app-module>/build.gradle))で、Vertex AI in Firebase の依存関係を次のように置き換えます。

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    // AFTER
    dependencies {
      // Import the BoM for the Firebase platform
      implementation(platform("com.google.firebase:firebase-bom:33.10.0"))
    
      // Add the dependency for the Vertex AI in Firebase library
      // When using the BoM, you don't specify versions in Firebase library dependencies
      implementation("com.google.firebase:firebase-vertexai")
    }
  2. Android プロジェクトを Gradle ファイルと同期します。

Firebase BoM を使用しない場合は、Android Studio が提案する最新バージョンの firebase-vertexai を受け入れてください。

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

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

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

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

  • タイムアウト

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

    • enum クラスと sealed クラスを通常のクラスに置き換えました。この変更により、下位互換性のある方法で API をより柔軟に進化させることができます。

    • BlockThreshold 列挙型の名前を HarmBlockThreshold に変更しました。

    • HarmBlockThresholdHarmProbabilityHarmSeverityBlockReasonFinishReason の各列挙型から値を削除しました。

  • Blob メソッド

    • 名前に Blob を含むすべてのメソッドの名前を変更し、代わりに InlineData を使用するようにしました。
  • 緊急情報の設定

    • method フィールドを NULL 可能に変更しました。
  • Duration クラス

    • Kotlin の Duration クラスの使用をすべて削除し、long に置き換えました。この変更により、Java との相互運用性が向上します。
  • 引用メタデータ

    • CitationMetadata で以前に宣言されたすべてのフィールドを、Citation という新しいクラスにラップしました。引用は、CitationMetadatacitations というリストにあります。この変更により、プラットフォーム間で型をより適切に調整できるようになります。
  • トークンをカウントする

    • totalBillableCharacters フィールドを NULL 可能に変更しました。
  • 課金対象文字の合計数

    • 文字が送信されない状況を反映するため、CountTokensResponsetotalBillableCharacters プロパティを省略可能に変更しました。
  • モデルのインスタンス化

    • 他のプラットフォームに合わせて、requestOptions パラメータをパラメータリストの末尾に移動しました。

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

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 とサービス] > [認証情報] パネルで確認できます。