オンデバイス モデルとクラウドホスト モデルを使用して Apple アプリでハイブリッド エクスペリエンスを構築する

ハイブリッド推論を使用して AI を活用した Apple アプリや機能を作成できます Firebase AI Logic。ハイブリッド推論では、デバイス上のモデル(具体的には Apple の Foundation Models フレームワーク)が利用可能な場合はそれを使用して推論を実行し、それ以外の場合はクラウド ホスト型の Google モデルにシームレスにフォールバックします(逆も同様です)。

このページでは、クライアント SDK の使用を開始する方法について説明します。また、温度などの追加の構成オプションと機能についても説明します。

Firebase AI Logic を介したデバイス上の推論は、Firebase AI Logic SDK v12.13.0 以降を使用し、Apple Intelligence が有効になっているデバイスで実行される Apple アプリでサポートされています。これは、Apple の Foundation Models フレームワークの 利用規約に準拠しています。

おすすめのユースケース

  • 推論にデバイス上のモデルを使用する と、次のメリットがあります。

    • プライバシーの強化
    • 推論が無料
    • オフライン機能
  • ハイブリッド 機能を使用すると、次のメリットがあります。

    • エンドユーザーのデバイスに関係なく、すべてのお客様に同様のアプリ エクスペリエンスを提供できる
    • インターネット接続、割り当て制限、デバイスの機能に関係なく、生成 AI 機能の可用性を向上できる

サポートされている機能、API、デバイス

Firebase AI Logic を使用してハイブリッド推論とデバイス上の推論を実装する前に、このセクションで Apple アプリでサポートされている内容を確認してください。

デバイス上の推論でサポートされている機能

デバイス上の推論では、テキスト生成 のみがサポートされます。具体的には、 次のテキスト生成機能です。

このページの下部にある、 まだサポートされていないハイブリッド推論またはデバイス上の推論 の詳細なリストを確認してください。

サポートされている API とデバイス

  • クラウド内の推論では、選択した Gemini API プロバイダ( Gemini Developer API または Vertex AI Gemini API)を使用します。

  • デバイス上の推論では、Apple の Foundation Models フレームワークを使用します。これは Apple Intelligence が有効になっているデバイスでのみ使用できます。 Apple Intelligence が有効になると、デバイス上のモデルが自動的にダウンロードされます。

始める

サポートされている機能、API、デバイスについて説明した上記のセクションを確認してください。

以下の手順では、送信するサポート対象のプロンプト リクエストに必要な一般的な設定について説明します。

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

  1. Firebase コンソールにログインし Firebase プロジェクトを選択します。

  2. Firebase コンソールで、[AI サービス] > [AI Logic] に移動します。

  3. [使ってみる] をクリックして、プロジェクトに必要な API とリソースを設定するガイド付きワークフローを起動します。

  4. プロンプトが表示されたら、画面上の手順に沿ってアプリを登録し、Firebase 構成をアプリに追加します。

  5. [Gemini API プロバイダ] を選択するよう求められたら、 [Gemini Developer API] を選択することをおすすめします。これにより、無料で簡単に始めることができます。

    後でいつでも、 を設定できますVertex AI Gemini API (とその課金要件)。

  6. ワークフローを続行して、必要な API と関連サービスを設定します Firebase AI Logic

    2026 年 7 月上旬から、ワークフローのこの段階では、 が自動的に適用されますFirebase App Check。これは、AI Logicをアプリから直接アクセスする際に保護するための重要なサービスです。開始手順の一環として(このガイドの後半の手順を参照)、App Checkが適用されるときに、ローカル開発用にApp Check デバッグ プロバイダを構成する必要があります。Gemini API

  7. このガイドの次のステップに進み、必要な SDK をアプリに追加します。

ステップ 2: 必要な SDK を追加する

Swift Package Manager(SPM)を使用して、Xcode の依存関係をインストールして管理します。ハイブリッド サポートは、SPM を使用する場合にのみ利用できます。

Firebase AI Logic ライブラリを使用すると、生成モデルを操作するための API にアクセスできます。このライブラリは、Firebase SDK for Apple プラットフォーム(firebase-ios-sdk)の一部として含まれています。

すでに Firebase を使用している場合は、Firebase パッケージが v12.13.0 以降であることを確認してください。

  1. Xcode でアプリのプロジェクトを開いたまま、[File] > [Add Package Dependencies] の順に移動します。

  2. プロンプトが表示されたら、Firebase Apple プラットフォーム SDK リポジトリを追加します。

    https://github.com/firebase/firebase-ios-sdk
    
  3. 最新の SDK バージョンを選択します。

  4. FirebaseAILogic ライブラリと FirebaseAppCheck ライブラリを選択します。

上記の作業が完了すると、Xcode は依存関係の解決とバックグラウンドでのダウンロードを自動的に開始します。

ステップ 3: ローカル開発用に App Check デバッグ プロバイダを構成する

2026 年 7 月上旬から、コンソールの AI Logic のガイド付き設定ワークフローの一環として、Firebase App CheckGemini APIを保護するために自動的に適用されます。ローカル開発では、App Check の適用を維持しながら構成証明をバイパスするために、 App Check デバッグ プロバイダを構成する必要があります。App Check

シミュレータでインタラクティブにアプリを実行しているときに(ローカル開発中など)デバッグ プロバイダを使用する方法は次のとおりです。

  1. Xcode プロジェクトで FirebaseAppCheck をインポートし、デバッグ プロバイダ ファクトリで App Check構成する前に Firebase を初期化します。

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. デバッグ トークンを取得します。

    1. シミュレータまたはテスト デバイスでアプリを起動します。

    2. Xcode コンソールを開き、App Check デバッグ トークンを探します。 例:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. トークンをコピーします(例: 123a4567-b89c-12d3-e456-789012345678)。

  3. デバッグ トークンを App Check に登録します。

    1. Firebase コンソールで、 [セキュリティ] > [App Check] > [アプリ] タブに移動します

    2. アプリを見つけてオーバーフロー メニュー ()をクリックし、 次に [**デバッグ トークンを管理**]を選択します。

    3. 画面上の手順に沿ってデバッグ トークンを登録します。

デバッグ プロバイダの詳細(新しいデバッグ トークンを取得する方法など)については、 公式 ドキュメントをご覧くださいApp Check

ステップ 4: サービスを初期化してモデル セッション インスタンスを作成する

Gemini API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。

モデルにプロンプト リクエストを送信する前に、次の設定を行います。

  1. 選択した Gemini API プロバイダのサービスを初期化します。

  2. HybridModel を使用して GenerativeModelSession インスタンスを作成します。

  3. 必要に応じて primary モデルと secondary モデルを設定します。推論を試行する順序を設定できます。

    • 最初にデバイス上の推論を試行し、クラウドへのフォールバックを許可する: primary を「システム」モデルに、secondary をクラウドモデルに設定します。

    • 最初にクラウド内の推論を試行し、デバイスへのフォールバックを許可する: primary をクラウドモデルに、secondary を「システム」モデルに設定します。

    SDK では のみ 1 つの model を設定できます。つまり、 SDK はデバイス上の推論またはクラウド内の推論のいずれかのみをのみ試行します。ただし、ハイブリッド エクスペリエンスでは、HybridModel を作成し、primary モデルと secondary モデルの両方を設定する必要があります。

    「推論モード」(推論を試行する順序)の動作について詳しくは、 構成オプションをご覧ください。

次の例は、最初にデバイス上の推論を試行し、クラウド ホスト型のモデルへのフォールバックを許可する方法を示しています。

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Initialize a cloud model that supports your use case
let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME")
// Initialize an on-device model that supports your use case
let systemModel = FirebaseAI.SystemLanguageModel.default

// Create a Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
  primary: systemModel,
  secondary: cloudModel
)

// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
  model: hybridModel,
)

ステップ 5: モデルにプロンプト リクエストを送信する

このセクションでは、次の方法について説明します。

テキストのみの入力からテキストを生成する

このサンプルを試す前に、このガイドの 「始める」セクションを完了していることを確認してください。

テキストを含むプロンプトからテキストを生成するには、次のように respond(to:) を使用します。

// Imports + initialization of Gemini API backend service + creation of model session

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)

テキストのみの入力からテキストをストリーミングする

このサンプルを試す前に、このガイドの 「始める」セクションを完了していることを確認してください。

モデル生成の結果全体を待つのではなく、ストリーミングを使用して部分的な結果を処理することで、インタラクションを高速化できます。 テキストを含むプロンプトから生成されたテキストをストリーミングするには、次のように streamResponse(to:) を使用します。

// Imports + initialization of Gemini API backend service + creation of model session

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
  print(snapshot.content)
}

Google アシスタントの機能

ハイブリッド エクスペリエンスでは、さまざまな追加の構成オプションと機能を使用できます。

ハイブリッド推論またはデバイス上の推論でまだサポートされていない機能

試験運用版リリースでは、Firebase AI Logic またはクラウド ホスト型のモデルのすべての機能がサポートされているわけではありません。

  • Imagen モデル、Gemini Live API、プロンプト テンプレートは、ハイブリッド実装またはデバイス上の実装ではサポートされていません 。また、カウント トークンは、クラウド ホスト型のモデルとデバイス上のモデルでカウントが異なるため、直感的なフォールバックはありません。

  • 次の機能は、デバイス上の推論ではまだサポートされていません。 これらの機能を使用する場合は、より一貫したエクスペリエンスを実現するために、クラウド ホスト型のモデルのみを使用することをおすすめします。

    • 画像、音声、動画、ドキュメント(PDF)などのマルチモーダル入力からテキストを生成する

    • 画像、音声、動画などのメディアを生成する

    • 4,096 トークン(または約 3,000 語の英語)を超えるリクエストを送信する。

    • レスポンスの生成に役立つ組み込みツールをデバイス上のモデルに提供する(コード実行、URL コンテキスト、Google 検索によるグラウンディングなど)

  • Firebase コンソールの AI モニタリングには、デバイス上の推論(デバイス上のログを含む)のデータは表示されません。Firebaseただし、クラウド ホスト型のモデルを使用する推論は、 Firebase AI Logic を介した他の推論と同様にモニタリングできます。 Firebase AI Logic

その他の制限

上記に加えて、デバイス上の推論には次の 制限があります。

  • アプリのエンドユーザーは、Apple Intelligence が有効になっている デバイスを使用する必要があります。

  • アプリがフォアグラウンドにある場合にのみ、デバイス上の推論を実行できます。


フィードバックを送信する Firebase AI Logicの使用に関する