このページでは、モバイルアプリまたはウェブアプリで 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 API は Google 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 Cloud の Vertex 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 つの手順が必要です。
新しい Firebase プロジェクトまたは既存の Firebase プロジェクトを設定し、アプリを Firebase に接続します。
コードベースを移行する。この場合、SDK と初期化コード(モデル名を含む)を変更するだけで済みます。実際に Gemini API を呼び出すコードを変更する必要はありません。
使用していない 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 アシスタントの機能
- Google AI と Vertex AI の両方には、プロンプトとモデル パラメータをテストするための「AI Studio」というウェブ UI の「遊び場」があります。Google AI Studio プロンプトを Vertex AI Studio に移行する方法については、Google Cloud のドキュメントをご覧ください。