Hybride Funktionen in Apple-Apps mit On-Device- und Cloud-gehosteten Modellen entwickeln

Mit Firebase AI Logic können Sie KI-basierte Apple-Apps und ‑Funktionen mit hybrider Inferenz erstellen. Die Hybrid-Inferenz ermöglicht die Ausführung von Inferenzen mit On-Device-Modellen (insbesondere dem Foundation Models-Framework von Apple), sofern verfügbar. Andernfalls wird nahtlos auf in der Cloud gehostete Google-Modelle zurückgegriffen (und umgekehrt).

Auf dieser Seite wird beschrieben, wie Sie mit dem Client SDK beginnen. Außerdem werden zusätzliche Konfigurationsoptionen und Funktionen wie die Temperatur erläutert.

Die On-Device-Inferenz über Firebase AI Logic wird für Apple-Apps unterstützt, die das Firebase AI Logic SDK ab Version 12.13.0 verwenden und auf Geräten mit aktivierter Apple Intelligence ausgeführt werden. Es unterliegt den Anforderungen für die zulässige Verwendung des Foundation Models-Frameworks von Apple.

Empfohlene Anwendungsfälle

  • Die Verwendung eines On-Device-Modells für die Inferenz bietet folgende Vorteile:

    • Erweiterter Datenschutz
    • Kostenlose Inferenz
    • Offline-Funktionen
  • Die Verwendung der Hybrid-Funktion bietet:

    • Allen Kunden unabhängig vom Gerät des Endnutzers eine ähnliche Nutzerfreundlichkeit der App bieten
    • Verbesserung der Verfügbarkeit von auf generativer KI basierenden Funktionen, unabhängig von Internetverbindung, Kontingentbeschränkungen oder Gerätefunktionen

Unterstützte Funktionen, APIs und Geräte

Bevor Sie die hybride und On-Device-Inferenz mit Firebase AI Logic implementieren, sollten Sie sich diesen Abschnitt durchlesen, um zu erfahren, was für Apple-Apps unterstützt wird.

Unterstützte Funktionen und Features für die On-Device-Inferenz

Die On-Device-Inferenz unterstützt nur die Textgenerierung, insbesondere die folgenden Textgenerierungsfunktionen:

Sehen Sie sich die detaillierte Liste der noch nicht unterstützten Hybrid- oder On-Device-Inferenz unten auf dieser Seite an.

Unterstützte APIs und Geräte

Jetzt starten

Prüfen Sie, ob Sie den obigen Abschnitt zu unterstützten Funktionen, APIs und Geräten gelesen haben.

In diesen Schritten wird die erforderliche allgemeine Einrichtung für alle unterstützten Prompt-Anfragen beschrieben, die Sie senden möchten.

Schritt 1: Firebase-Projekt einrichten und App mit Firebase verbinden

  1. Melden Sie sich in der Firebase-Konsole an und wählen Sie Ihr Firebase-Projekt aus.

  2. Rufen Sie in der Firebase-Konsole KI-Dienste > AI Logic auf.

  3. Klicken Sie auf Jetzt starten, um einen geführten Workflow zu starten, mit dem Sie die erforderlichen APIs und Ressourcen für Ihr Projekt einrichten können.

  4. Folgen Sie bei Aufforderung der Anleitung auf dem Bildschirm, um Ihre App zu registrieren und die Firebase-Konfiguration hinzuzufügen.

  5. Wenn Sie aufgefordert werden, einen „Gemini API-Anbieter“ auszuwählen, empfehlen wir die Gemini Developer API. Damit können Sie schnell und kostenlos loslegen.

    Sie können die Agent Platform Gemini API (formerly Vertex AI) (und die Abrechnungsanforderung) jederzeit später einrichten.

  6. Fahren Sie im Workflow fort, um die erforderlichen APIs und zugehörigen Dienste für Firebase AI Logic einzurichten.

    In dieser Phase des Workflows wird automatisch Firebase App Check für AI Logic erzwungen. Dies ist ein wichtiger Dienst, der zum Schutz von Gemini API beiträgt, wenn direkt über Ihre App darauf zugegriffen wird. Im Rahmen der ersten Schritte (siehe Schritte weiter unten in diesem Leitfaden) müssen Sie den App Check-Debug-Anbieter für die lokale Entwicklung konfigurieren, wenn App Check erzwungen wird.

  7. Fahren Sie mit dem nächsten Schritt in dieser Anleitung fort, um die erforderlichen SDKs zu Ihrer App hinzuzufügen.

Schritt 2: Erforderliche SDKs hinzufügen

Verwenden Sie Swift Package Manager (SPM), um Xcode-Abhängigkeiten zu installieren und zu verwalten. Der Hybrid-Support ist nur bei Verwendung von SPV verfügbar.

Die Bibliothek Firebase AI Logic bietet Zugriff auf die APIs für die Interaktion mit generativen Modellen. Die Bibliothek ist im Firebase SDK für Apple-Plattformen (firebase-ios-sdk) enthalten.

Wenn Sie Firebase bereits verwenden, muss Ihr Firebase-Paket die Version 12.13.0 oder höher haben.

  1. Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Add Package Dependencies (Datei > Paketabhängigkeiten hinzufügen).

  2. Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:

    https://github.com/firebase/firebase-ios-sdk
    
  3. Wählen Sie die neueste SDK-Version aus.

  4. Wählen Sie die Bibliotheken FirebaseAILogic und FirebaseAppCheck aus.

Anschließend löst Xcode die Abhängigkeiten automatisch auf und lädt sie im Hintergrund herunter.

Schritt 3: App Check-Debug-Anbieter für die lokale Entwicklung konfigurieren

Im Rahmen des geführten Einrichtungsworkflows für AI Logic in der Console wird Firebase App Check automatisch erzwungen, um die Gemini API zu schützen. Für die lokale Entwicklung müssen Sie den App Check-Debug-Anbieter so konfigurieren, dass die Attestierung umgangen wird, während die Erzwingung von App Check beibehalten wird.

So verwenden Sie den Debug-Anbieter, wenn Sie Ihre App interaktiv in einem Simulator ausführen (z. B. während der lokalen Entwicklung):

  1. Importieren Sie in Ihrem Xcode-Projekt FirebaseAppCheck und initialisieren Sie App Check mit der Debug-Anbieter-Factory, bevor Sie Firebase konfigurieren.

    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. Rufen Sie Ihr Debug-Token ab:

    1. Starten Sie Ihre App im Simulator oder auf Ihrem Testgerät.

    2. Öffnen Sie die Xcode-Konsole und suchen Sie nach dem App Check-Debug-Token. Beispiel:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Kopieren Sie das Token (z. B. 123a4567-b89c-12d3-e456-789012345678).

  3. Registrieren Sie Ihr Debug-Token bei App Check:

    1. Rufen Sie in der Firebase-Konsole den Tab Sicherheit > App Check > Apps auf.

    2. Suchen Sie Ihre App, klicken Sie auf das Dreipunkt-Menü () und wählen Sie Debug-Tokens verwalten aus.

    3. Folgen Sie der Anleitung auf dem Bildschirm, um Ihr Debug-Token zu registrieren.

Weitere Informationen zum Debug-Anbieter (einschließlich des Abrufs eines neuen Debug-Tokens) finden Sie in der offiziellen App Check-Dokumentation.

Schritt 4: Dienst initialisieren und Modellsitzungsinstanz erstellen

Klicken Sie auf Ihren Gemini API-Anbieter, um anbieterspezifische Inhalte und Code auf dieser Seite aufzurufen.

Richten Sie Folgendes ein, bevor Sie eine Prompt-Anfrage an das Modell senden.

  1. Initialisieren Sie den Dienst für den ausgewählten Gemini API-Anbieter.

  2. Erstellen Sie eine GenerativeModelSession-Instanz mit einem HybridModel.

  3. Legen Sie die Modelle primary und secondary nach Ihren Wünschen fest. Sie können die Reihenfolge der versuchten Inferenz festlegen:

    • Zuerst On-Device-Inferenz versuchen, aber Fallback auf die Cloud zulassen: Setzen Sie primary auf ein „System“-Modell und secondary auf ein Cloud-Modell.

    • Zuerst Inferenz in der Cloud versuchen, aber Fallback auf dem Gerät zulassen: Legen Sie für primary ein Cloud-Modell und für secondary ein „System“-Modell fest.

    Beachten Sie, dass das SDK nur einen einzelnen model unterstützt. Das bedeutet, dass das SDK nur entweder die On-Device- oder die In-Cloud-Inferenz versucht. Für eine hybride Umgebung müssen Sie jedoch eine HybridModel erstellen und sowohl primary- als auch secondary-Modelle festlegen.

    Weitere Informationen zum Verhalten von „Inferenzmodi“ (die Reihenfolge der versuchten Inferenz) finden Sie unter Konfigurationsoptionen.

Im folgenden Beispiel wird gezeigt, wie Sie zuerst die On-Device-Inferenz versuchen, aber ein Fallback auf das in der Cloud gehostete Modell zulassen:

// 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,
)

Schritt 5: Prompt-Anfrage an ein Modell senden

In diesem Abschnitt wird Folgendes beschrieben:

Text aus Nur-Text-Eingabe generieren

Bevor Sie dieses Beispiel ausprobieren, müssen Sie den Abschnitt Erste Schritte dieses Leitfadens abgeschlossen haben.

Wenn Sie Text aus einem Prompt generieren möchten, der Text enthält, verwenden Sie respond(to:) so:

// 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)

Text aus Nur-Text-Eingabe streamen

Bevor Sie dieses Beispiel ausprobieren, müssen Sie den Abschnitt Erste Schritte dieses Leitfadens abgeschlossen haben.

Sie können schnellere Interaktionen erzielen, wenn Sie nicht auf das gesamte Ergebnis der Modellgenerierung warten, sondern stattdessen Streaming verwenden, um Teilergebnisse zu verarbeiten. Wenn Sie generierten Text aus einem Prompt, der Text enthält, streamen möchten, verwenden Sie streamResponse(to:) so:

// 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)
}

Was kannst du sonst noch alles für mich tun?

Für Ihre Hybridumgebungen können Sie verschiedene zusätzliche Konfigurationsoptionen und Funktionen verwenden:

Noch nicht unterstützte Funktionen für die Hybrid- oder On-Device-Inferenz

Da es sich um eine experimentelle Version handelt, werden nicht alle Funktionen von Firebase AI Logic oder in der Cloud gehosteten Modellen unterstützt.

  • Die folgenden Funktionen werden für Hybrid- oder On-Device-Implementierungen nicht unterstützt: die Gemini Live API- und Server-Prompt-Vorlagen. Außerdem sollten Sie sich nicht auf die Tokenanzahl verlassen, da sie sich zwischen cloudbasierten und On-Device-Modellen unterscheidet. Es gibt also keine intuitive Fallback-Option.

  • Die folgenden Funktionen werden für die On-Device-Inferenz noch nicht unterstützt. Wenn Sie eine dieser Funktionen verwenden möchten, empfehlen wir, nur ein in der Cloud gehostetes Modell zu verwenden, um eine einheitlichere Nutzung zu ermöglichen.

    • Text aus multimodalen Eingaben wie Bildern, Audio, Video und Dokumenten (PDFs) generieren

    • Medien wie Bilder, Audio oder Videos generieren

    • Anfragen mit mehr als 4.096 Tokens (oder etwa 3.000 englischen Wörtern) senden.

    • Dem On-Device-Modell integrierte Tools zur Verfügung stellen, um die Antwortgenerierung zu unterstützen (z. B. Code-Ausführung, URL-Kontext und Fundierung mit der Google Suche)

  • Beim KI-Monitoring in der Firebase-Konsole werden keine Daten für die On-Device-Inferenz (einschließlich Geräteprotokolle) angezeigt. Inferenz, die ein in der Cloud gehostetes Modell verwendet, kann jedoch wie andere Inferenz über Firebase AI Logic überwacht werden.

Zusätzliche Einschränkungen

Zusätzlich zu den oben genannten Einschränkungen gelten für die On-Device-Inferenz folgende Einschränkungen:


Feedback zu Ihren Erfahrungen mit Firebase AI Logic geben