Google AI SDK ではなく Vertex AI SDK を使用するように移行する

このページでは、モバイルアプリまたはウェブアプリで Google AI クライアント SDK から Vertex AI in Firebase クライアント SDK に移行する方法について説明します。Vertex AI in Firebase SDK は、Apple プラットフォーム(Swift)、Android(Kotlin と Java)、ウェブ(JavaScript)、Flutter(Dart)で使用できます。

移行手順に直接移動する

Vertex AI に移行する理由

Google AI Studio または Google AI クライアント SDK を使用して Gemini API の代替バージョンを試している場合があります。これらの SDK は、Gemini API の使用とプロトタイピングの開始に役立ちます。ただし、Gemini API をクライアントサイドで直接呼び出す本番環境またはエンタープライズ スケールのモバイルアプリやウェブアプリの場合は、Firebase SDK を使用して Vertex AI Gemini API を呼び出すことを強くおすすめします。

モバイルアプリとウェブアプリのセキュリティ機能

モバイルアプリとウェブアプリでは、コード(Gemini API の呼び出しを含む)が保護されていない環境で実行されるため、セキュリティが重要であり、特別な考慮が必要です。

  • デフォルトでは、Vertex AI Gemini APIGoogle Cloud IAM によって認可されます(Google AI Gemini API などの API キーではなく)。Vertex AI in Firebase SDK は、より安全な Vertex AI Gemini API を呼び出すように構築されています。

  • モバイルアプリとウェブアプリの場合、Gemini API とプロジェクト リソース(チューニング済みモデルなど)を不正なクライアントによる不正使用から保護する必要があります。Firebase App Check を使用すると、すべての API 呼び出しが実際のアプリからのものであることを確認できます。この機能は、Vertex AI in Firebase SDK を使用している場合にのみ使用できます。

モバイルアプリとウェブアプリ向けに構築されたエコシステム

Firebase は、モバイルアプリとウェブアプリを開発するための Google のプラットフォームです。Vertex AI in Firebase SDK を使用すると、フルスタック アプリとデベロッパーのニーズに重点を置いたエコシステムにアプリが組み込まれます。たとえば、次のようなことが可能になります。

  • Cloud Storage for Firebase を使用して、マルチモーダル リクエストに大きなファイルを含めます。また、(ネットワーク状況が悪い場合でも)ファイルのアップロードとダウンロードを処理し、エンドユーザーのデータのセキュリティを強化するクライアント SDK を利用します。詳しくは、Cloud Storage for Firebase の使用に関するソリューション ガイドをご覧ください。

  • モバイルアプリやウェブアプリ用に構築されたデータベース SDK(Cloud Firestore など)を使用して構造化データを管理します。

  • Firebase Remote Config を使用して、新しいアプリ バージョンをリリースすることなく、ランタイム構成(位置情報など)を動的に設定する、またはアプリ内の値(モデル名など)をスワップアウトする。

Google CloudVertex AI を使用するメリット

アプリやワークフローで生成 AI の使用が成熟すると、生成 AI アプリケーションの構築とデプロイのためのエンドツーエンド ソリューションを提供するプラットフォームが必要になることがあります。Google Cloud は、アプリ開発の初期段階からアプリのデプロイ、アプリのホスティング、複雑なデータの大規模な管理まで、生成 AI の力を活用できるツールの包括的なエコシステムを提供します。

Google Cloud の Vertex AI Platform には、効率と信頼性のために AI モデルの使用、デプロイ、モニタリングを合理化する一連の MLOps ツールが用意されています。さらに、データベース、DevOps ツール、ロギング、モニタリング、IAM とのインテグレーションにより、生成 AI のライフサイクル全体を包括的に管理できます。

詳細については、Google Cloud のドキュメントで Vertex AI のユースケースをご覧ください。

Vertex AI in Firebase SDK に移行する

Vertex AI in Firebase SDK に移行するには、主に次の 3 つの手順が必要です。

  1. 新しい Firebase プロジェクトまたは既存の Firebase プロジェクトを設定し、アプリを Firebase に接続します。

  2. コードベースを移行する。この場合、SDK と初期化コード(モデル名を含む)を変更するだけで済みます。実際に Gemini API を呼び出すコードを変更する必要はありません。

  3. 使用していない API キーを削除し、使用していない API を無効にします。

ステップ 1: Firebase プロジェクトを設定してアプリを Firebase に接続する

Firebase に精通している場合でも、このセクションで Firebase プロジェクトとアプリが Vertex AI in Firebase SDK を使用するように設定されていることを確認してください。

ステップ 2: コードベースを移行する

アプリのプラットフォームを選択して、プラットフォーム固有の手順を表示します。

Google AI SDK と Vertex AI in Firebase SDK は、2 つのプラットフォーム間の移行が可能な限り簡単になるように設計されています。

移行に必要な操作は、アプリのコードベースに統合する SDK の変更と、サービスと生成モデルの初期化のみです。Gemini API を実際に呼び出すコードを変更する必要はありません。

SDK を変更する

Google AI

Kotlin+KTX

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Google AI client SDK for Android
  implementation("com.google.ai.client.generativeai:generativeai:VERSION")
}

Java

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Google AI client SDK for Android
  implementation("com.google.ai.client.generativeai:generativeai:VERSION")

  // Required for one-shot operations (to use `ListenableFuture` from Reactive Streams)
  implementation("com.google.guava:guava:31.0.1-android")

  // Required for streaming operations (to use `Publisher` from Guava Android)
  implementation("org.reactivestreams:reactive-streams:1.0.4")
}

Vertex AI in Firebase

Kotlin+KTX

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Vertex AI in Firebase SDK for Android
  implementation("com.google.firebase:firebase-vertexai:16.0.2")
}

Java

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Vertex AI in Firebase SDK for Android
  implementation("com.google.firebase:firebase-vertexai:16.0.2")

  // Required for one-shot operations (to use `ListenableFuture` from Guava Android)
  implementation("com.google.guava:guava:31.0.1-android")

  // Required for streaming operations (to use `Publisher` from Reactive Streams)
  implementation("org.reactivestreams:reactive-streams:1.0.4")
}

初期化を変更する

Google AI

Kotlin+KTX

val generativeModel = GenerativeModel(modelName = "MODEL_NAME",
    // Access your API key as a Build Configuration variable
    apiKey = BuildConfig.apiKey
)

Java

GenerativeModel gm = new GenerativeModel("MODEL_NAME",
    // Access your API key as a Build Configuration variable
    BuildConfig.apiKey
);

// Use the GenerativeModelFutures Java compatibility layer which offers support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

Vertex AI in Firebase

Kotlin+KTX

val generativeModel = Firebase.vertexAI.generativeModel("MODEL_NAME")

Java

GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("MODEL_NAME");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

インポートを更新する

次のコード スニペットでは例として Chat クラス、Content クラス、GenerativeModelFutures クラスを使用していますが、同じパッケージ名の他のクラスにも同じことが当てはまります。

Google AI

Kotlin+KTX

import com.google.ai.client.generativeai.Chat
import com.google.ai.client.generativeai.type.Content
import com.google.ai.client.generativeai.java.GenerativeModuleFutures

Java

import com.google.ai.client.generativeai.Chat;
import com.google.ai.client.generativeai.type.Content;
import com.google.ai.client.generativeai.java.GenerativeModuleFutures;

Vertex AI in Firebase

Kotlin+KTX

import com.google.firebase.vertexai.Chat
import com.google.firebase.vertexai.type.Content
import com.google.firebase.vertexai.java.GenerativeModuleFutures

Java

import com.google.firebase.vertexai.Chat;
import com.google.firebase.vertexai.type.Content;
import com.google.firebase.vertexai.java.GenerativeModuleFutures;

ステップ 3: 未使用の API キーを削除し、未使用の API を無効にする

Google AI API キーが不要になった場合は、セキュリティのベスト プラクティスに沿って削除します。Google AI API キーは、Google AI Studio の [API キー] セクションで表示、削除できます。

また、Google AI Gemini API を不要になった場合は、プロジェクトで無効にします。これは、Google Cloud コンソールの Generative Language API(generativelanguage.googleapis.com)ページで行うことができます。(「Generative Language API」は Google AI Gemini API の正式名称です)。

Google アシスタントの機能