Gemini Pro モデルと Gemini Flash モデルのファミリーは、Android デベロッパーにマルチモーダル AI 機能を提供します。この機能は、クラウドで推論を実行し、Android アプリで画像、音声、動画、テキストの入力を処理します。
- Gemini Pro: Gemini Pro は、コード、数学、STEM の複雑な問題を推論できる、Google の最先端の思考モデルです。長いコンテキストを使用して、大規模なデータセット、コードベース、ドキュメントを分析することもできます。
- Gemini Flash: Gemini Flash モデルは、優れたスピード、組み込みツールの使用、100 万トークンのコンテキスト ウィンドウなど、次世代の機能と強化された機能を提供します。
Firebase AI Logic
Firebase AI Logic を使用すると、デベロッパーは Google の生成 AI をアプリに安全かつ直接追加して開発を簡素化できます。また、製品版の公開に向けた準備状況を成功させるためのツールとプロダクト統合も提供されます。クライアント Android SDK を提供して、クライアント コードから Gemini API を直接統合して呼び出すことで、バックエンドが不要になり、開発が簡素化されます。
API プロバイダ
Firebase AI Logic では、Gemini Developer API と Agent Platform Gemini API(旧称: Vertex AI)の Google Gemini API プロバイダを使用できます。
各 API プロバイダの主な違いは次のとおりです。
- お支払い情報の登録なしで、充実した無料枠を無料でご利用いただけます。
- 必要に応じて、Gemini Developer API の有料ティアにアップグレードして、ユーザーベースの拡大に合わせてスケーリングします。
- Google AI Studio を使用して、プロンプトを繰り返しテストし、コード スニペットを取得します。
Agent Platform Gemini API(旧称: Vertex AI):
- モデルにアクセスする場所をきめ細かく制御できます。
- Google Cloud エコシステムにすでに組み込まれているデベロッパーに最適です。
- Agent Studio を使用して、プロンプトを繰り返しテストし、コード スニペットを取得することもできます。
アプリに適した Gemini API プロバイダの選択は、ビジネスと技術の制約に基づきます。Gemini Pro モデルと Flash モデルを使い始めたばかりのほとんどの Android デベロッパーは、Gemini Developer API から始める必要があります。プロバイダの切り替えは、モデル コンストラクタのパラメータを変更することで行います。
Kotlin
// For the Agent Platform Gemini API, use `backend = GenerativeBackend.agentPlatform()` val model = Firebase.ai(backend = GenerativeBackend.googleAI()) .generativeModel("gemini-3.5-flash") val response = model.generateContent("Write a story about a magic backpack") val output = response.text
Java
// For the Agent Platform Gemini API, use `backend = GenerativeBackend.agentPlatform()` GenerativeModel firebaseAI = FirebaseAI.getInstance(GenerativeBackend.googleAI()) .generativeModel("gemini-3.5-flash"); // Use the GenerativeModelFutures Java compatibility layer which offers // support for ListenableFuture and Publisher APIs GenerativeModelFutures model = GenerativeModelFutures.from(firebaseAI); Content prompt = new Content.Builder() .addText("Write a story about a magic backpack.") .build(); ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt); Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() { @Override public void onSuccess(GenerateContentResponse result) { String resultText = result.getText(); // ... } @Override public void onFailure(Throwable t) { t.printStackTrace(); } }, executor);
デバイス、クラウド、ハイブリッドでモデルにアクセスする
前のセクションで説明したクラウドでホストされている Gemini モデルに加えて、Firebase AI Logic SDK を使用すると、デバイス上のモデルにアクセスしてアプリの AI 機能を構築することもできます。ハイブリッド推論用に SDK を構成すると、アプリはデバイス上のモデルが利用可能な場合はそれを使用し、必要に応じてクラウドでホストされているモデルにシームレスにフォールバックできます(逆も同様)。
ハイブリッド アプローチの主なメリットは次のとおりです。
スマート ルーティング: 簡単なタスクはデバイスで処理され、複雑な質問は詳細な分析のために自動的にクラウドに送信されます。
オフラインでの利用: モデルをデバイス上で直接実行することで、インターネットに接続していなくてもアプリを使い続けることができます。オンラインに戻ると、クラウドホスト型のモデルにアクセスできます。
コストの削減: クラウドではなくデバイスで日常的なタスクを実行することで、推論費用を削減できます。
AI 機能のセキュリティ
Firebase AI Logic は、アプリで AI 機能を安全に構築できるいくつかの機能をサポートしています。
アプリの信頼性を確認する: Android アプリから Gemini API を直接呼び出すと、API が不正なクライアントによる不正使用に対して脆弱になります。Firebase AI Logic を使用し、Firebase App Check を適用して、不正使用から保護する必要があります。App Check を適用すると、実際のアプリまたは改ざんされていないデバイスからのリクエストであることが確認された受信リクエストのみが許可されます。App Check は、本番環境の証明書プロバイダとして Play Integrity と reCAPTCHA Enterprise の両方をサポートしています。
プロンプトをサーバーサイドに保存する: Firebase AI Logic を使用して Gemini API にリクエストを送信する場合、プロンプト、スキーマ、構成をサーバーサイドのプロンプト テンプレートに保存できます。アプリは、クライアントからサーバーにキー(テンプレート ID)のみを渡します。サーバーのプロンプト テンプレートを使用すると、プロンプトがクライアントサイドで公開されるのを防ぐことができます。
オンデバイス モデルにアクセスする: Firebase AI Logic を使用すると、オンデバイス モデルが利用可能な場合に、リクエストをオンデバイス モデルにルーティングできます。プロンプトを含むリクエストがデバイスの外部に送信されることはありません。
本番環境向けにビルドする
Firebase AI Logic を使用すると、アプリに堅牢な AI 機能を構築し、本番環境で確実に動作させることができます。詳細については、Firebase AI Logic 本番環境チェックリストをご覧ください。
アクセスとセキュリティ
Firebase App Check を適用して、アプリから直接呼び出されたときに Gemini API を不正使用から保護します。App Check が適用されると、受信したリクエストが正規のアプリまたは改ざんされていないデバイスから発信されたものであることが確認されます。
認証済みユーザー モードを適用して、Firebase AI Logic からのすべてのリクエストに Firebase Authentication からの有効な認証情報を含めるようにします。
モニタリング、上限、課金
Firebase コンソールで AI モニタリングを設定して、リクエスト数、レイテンシ、トークン使用量、エラー率などの主要なパフォーマンス指標を把握します。
ユーザーごとのレート制限(デフォルトは 100 RPM)を設定して、個々のクライアント インスタンスが過剰な割り当てを消費しないようにします。
構成の管理
新しいモデルがリリースされたり、他のモデルがシャットダウンされたりしたときに、AI 機能で使用するモデル名をオンデマンドで変更します。Remote Config またはサーバー プロンプト テンプレートの使用方法の詳細をご覧ください。
Remote Config を使用してアプリの最小バージョンを設定し、ユーザーにアップグレード通知を表示するか、ユーザーにアップグレードを強制するかを選択できるようにします。
Remote Config と Firebase A/B Testing を使用して、少数のユーザー グループでモデルとプロンプトをテストします。