Tworzenie hybrydowych funkcji w aplikacjach Apple za pomocą modeli na urządzeniu i hostowanych w chmurze

Możesz tworzyć aplikacje i funkcje oparte na AI na urządzenia Apple z wnioskowaniem hybrydowym za pomocą Firebase AI Logic. Wnioskowanie hybrydowe umożliwia przeprowadzanie wnioskowania przy użyciu modeli na urządzeniu (w szczególności platformy Foundation Models firmy Apple), gdy są one dostępne, a w przeciwnym razie płynne przełączanie się na modele Google hostowane w chmurze (i odwrotnie).

Na tej stronie opisujemy, jak zacząć korzystać z pakietu SDK klienta, oraz przedstawiamy dodatkowe opcje i możliwości konfiguracji, takie jak temperatura.

Pamiętaj, że wnioskowanie na urządzeniu za pomocą Firebase AI Logic jest obsługiwane w przypadku aplikacji Apple korzystających z pakietu SDK Firebase AI Logic w wersji 12.13.0 lub nowszej i działających na urządzeniach z włączoną funkcją Apple Intelligence. Podlega on wymaganiom dotyczącym dopuszczalnego użytkowania platformy Foundation Models firmy Apple.

Zalecane przypadki użycia

  • Korzystanie z modelu na urządzeniu do wnioskowania zapewnia:

    • Zwiększona prywatność
    • Bezpłatne wnioskowanie
    • Funkcje offline
  • Korzystanie z funkcji hybrydowych zapewnia:

    • zapewnić wszystkim klientom podobne wrażenia użytkownika aplikacji niezależnie od urządzenia użytkownika;
    • poprawić dostępność funkcji opartych na generatywnej AI niezależnie od połączenia z internetem, limitów wykorzystania czy możliwości urządzenia;

Obsługiwane funkcje, interfejsy API i urządzenia

Zanim wdrożysz wnioskowanie hybrydowe i na urządzeniu za pomocą Firebase AI Logic, zapoznaj się z tą sekcją, aby dowiedzieć się, jakie funkcje są obsługiwane w przypadku aplikacji na urządzenia Apple.

Obsługiwane możliwości i funkcje wnioskowania na urządzeniu

Wnioskowanie na urządzeniu obsługuje tylko generowanie tekstu, a konkretnie te funkcje:

Zapoznaj się ze szczegółową listą nieobsługiwanych jeszcze wnioskowań hybrydowych i na urządzeniu u dołu tej strony.

Obsługiwane interfejsy API i urządzenia

Rozpocznij

Zapoznaj się z sekcją powyżej, w której opisano obsługiwane funkcje, interfejsy API i urządzenia.

Te kroki opisują wymaganą ogólną konfigurację dla każdego obsługiwanego żądania promptu, które chcesz wysłać.

Krok 1. Skonfiguruj projekt w Firebase i połącz aplikację z Firebase

  1. Zaloguj się w konsoli Firebase i wybierz projekt w Firebase.

  2. W konsoli Firebase otwórz Usługi AI > AI Logic.

  3. Kliknij Rozpocznij, aby uruchomić proces, który pomoże Ci skonfigurować wymagane interfejsy API i zasoby w projekcie.

  4. Jeśli pojawi się taka prośba, postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zarejestrować aplikację i dodać do niej konfigurację Firebase.

  5. Gdy pojawi się prośba o wybranie „dostawcy interfejsu Gemini API”, zalecamy wybranie Gemini Developer API, który umożliwia szybkie rozpoczęcie korzystania z usługi bez opłat.

    W każdej chwili możesz skonfigurować Agent Platform Gemini API (formerly Vertex AI) (i wymagane płatności).

  6. Kontynuuj proces, aby skonfigurować wymagane interfejsy API i powiązane usługi dla Firebase AI Logic.

    Ten etap przepływu pracy automatycznie egzekwuje Firebase App Check dla AI Logic, czyli krytycznej usługi, która pomaga chronić Gemini API, gdy jest on bezpośrednio dostępny z Twojej aplikacji. W ramach rozpoczęcia (patrz kroki w dalszej części tego przewodnika) musisz skonfigurować dostawcę debugowania App Check na potrzeby lokalnego programowania, gdy App Check jest egzekwowany.

  7. Przejdź do kolejnego kroku w tym przewodniku, aby dodać do aplikacji wymagane pakiety SDK.

Krok 2. Dodaj wymagane pakiety SDK.

Do instalowania zależności Xcode i zarządzania nimi używaj menedżera pakietów Swift (SPM). Obsługa hybrydowa jest dostępna tylko w przypadku korzystania z SPM.

Biblioteka Firebase AI Logic zapewnia dostęp do interfejsów API umożliwiających interakcję z modelami generatywnymi. Biblioteka jest częścią pakietu SDK Firebase na platformy Apple (firebase-ios-sdk).

Jeśli korzystasz już z Firebase, upewnij się, że masz pakiet Firebase w wersji 12.13.0 lub nowszej.

  1. W Xcode, po otwarciu projektu aplikacji, kliknij File > Add Package Dependencies (Plik > Dodaj zależności pakietu).

  2. Gdy pojawi się prośba, dodaj repozytorium pakietu SDK Firebase na platformy Apple:

    https://github.com/firebase/firebase-ios-sdk
    
  3. Wybierz najnowszą wersję pakietu SDK.

  4. Wybierz biblioteki FirebaseAILogic i FirebaseAppCheck.

Gdy skończysz, Xcode automatycznie zacznie przetwarzać i pobierać zależności w tle.

Krok 3. Skonfiguruj dostawcę debugowania App Check na potrzeby programowania lokalnego

W ramach procesu konfiguracji z przewodnikiem dla AI Logic w konsoli automatycznie wymuszane jest Firebase App Check, aby chronić Gemini API. W przypadku programowania lokalnego musisz skonfigurować App Check dostawcę debugowania, aby pominąć atestację, zachowując jednocześnie wymuszanie App Check.

Aby używać dostawcy debugowania podczas interaktywnego uruchamiania aplikacji w symulatorze (np. podczas lokalnego programowania):

  1. W projekcie Xcode zaimportuj FirebaseAppCheck i zainicjuj App Check za pomocą fabryki dostawcy debugowania, zanim skonfigurujesz 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. Uzyskaj token debugowania:

    1. Uruchom aplikację w symulatorze lub na urządzeniu testowym.

    2. Otwórz konsolę Xcode i poszukaj tokena debugowania App Check. Przykład:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Skopiuj token (na przykład 123a4567-b89c-12d3-e456-789012345678).

  3. Zarejestruj token debugowania w App Check:

    1. W konsoli Firebase otwórz kartę Zabezpieczenia > Sprawdzanie aplikacji > Aplikacje.

    2. Znajdź aplikację, kliknij rozszerzone menu (), a następnie wybierz Zarządzaj tokenami debugowania.

    3. Aby zarejestrować token debugowania, postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.

Szczegółowe informacje o dostawcy debugowania (w tym o tym, jak uzyskać nowy token debugowania) znajdziesz w oficjalnej dokumentacji App Check.

Krok 4. Zainicjuj usługę i utwórz instancję sesji modelu

Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod dotyczące tego dostawcy.

Zanim wyślesz do modelu żądanie prompta, skonfiguruj te elementy.

  1. Zainicjuj usługę dla wybranego dostawcy Gemini API.

  2. Utwórz instancję GenerativeModelSession z HybridModel.

  3. Ustaw modele primary i secondary zgodnie ze swoimi preferencjami. Możesz ustawić kolejność prób wnioskowania:

    • Najpierw spróbuj przeprowadzić wnioskowanie na urządzeniu, ale zezwól na przełączenie na chmurę: ustaw primary na model „systemowy”, a secondary na model w chmurze.

    • Najpierw spróbuj przeprowadzić wnioskowanie w chmurze, ale zezwól na przejście na urządzenie: ustaw primary na model w chmurze, a secondary na model „systemowy”.

    Pamiętaj, że pakiet SDK obsługuje ustawienie tylko jednego model, co oznacza, że pakiet SDK będzie próbował przeprowadzić wnioskowanie tylko na urządzeniu lub w chmurze. Jeśli jednak chcesz korzystać z hybrydowego modelu, musisz utworzyć HybridModel i ustawić modele primary i secondary.

    Więcej informacji o zachowaniu „trybów wnioskowania” (kolejności prób wnioskowania) znajdziesz w sekcji Opcje konfiguracji.

Poniższy przykład pokazuje, jak najpierw spróbować przeprowadzić wnioskowanie na urządzeniu, ale zezwolić na powrót do modelu hostowanego w chmurze:

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

Krok 5. Wyślij prompta do modelu

W tej sekcji dowiesz się, jak:

Generowanie tekstu na podstawie danych wejściowych zawierających tylko tekst

Zanim wypróbujesz ten przykład, zapoznaj się z sekcją Pierwsze kroki w tym przewodniku.

Aby wygenerować tekst z prompta zawierającego tekst, użyj respond(to:) w ten sposób:

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

Strumieniowe przesyłanie tekstu z danych wejściowych zawierających tylko tekst

Zanim wypróbujesz ten przykład, zapoznaj się z sekcją Pierwsze kroki w tym przewodniku.

Możesz przyspieszyć interakcje, nie czekając na cały wynik wygenerowany przez model, i zamiast tego używać strumieniowania do obsługi częściowych wyników. Aby wygenerować strumieniowo tekst na podstawie prompta zawierającego tekst, użyj streamResponse(to:) w ten sposób:

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

Co jeszcze możesz zrobić?

W przypadku środowisk hybrydowych możesz korzystać z różnych dodatkowych opcji i funkcji konfiguracji:

Funkcje, które nie są jeszcze obsługiwane w przypadku wnioskowania hybrydowego lub na urządzeniu

Jest to wersja eksperymentalna, więc nie wszystkie funkcje Firebase AI Logic ani modeli hostowanych w chmurze są obsługiwane.

  • W przypadku implementacji hybrydowych i na urządzeniu nie są obsługiwane: Gemini Live API i szablony promptów serwera. Nie należy też polegać na tokenach zliczania, ponieważ liczba będzie się różnić w przypadku modeli hostowanych w chmurze i na urządzeniu, więc nie ma intuicyjnego rozwiązania zastępczego.

  • Te funkcje nie są jeszcze obsługiwane w przypadku wnioskowania na urządzeniu. Jeśli chcesz korzystać z którejkolwiek z tych funkcji, zalecamy używanie tylko modelu hostowanego w chmurze, aby zapewnić bardziej spójne działanie.

    • generowanie tekstu na podstawie danych multimodalnych, takich jak obrazy, dźwięk, filmy i dokumenty (PDF);

    • generowanie multimediów, takich jak obrazy, dźwięk czy filmy;

    • Wysyłanie żądań, które przekraczają 4096 tokenów (lub około 3000 słów w języku angielskim).

    • udostępnianie modelowi na urządzeniu wbudowanych narzędzi, które pomagają mu generować odpowiedzi (np. wykonywanie kodu, kontekst adresu URL i powiązanie ze źródłami informacji przy użyciu wyszukiwarki Google);

  • Monitorowanie wykorzystania AI w konsoli Firebase nie pokazuje żadnych danych dotyczących wnioskowania na urządzeniu (w tym dzienników urządzenia). Jednak każde wnioskowanie, które korzysta z modelu hostowanego w chmurze, można monitorować tak samo jak inne wnioskowanie za pomocą Firebase AI Logic.

Dodatkowe ograniczenia

Oprócz powyższych ograniczeń wnioskowanie na urządzeniu ma te ograniczenia:


Prześlij opinię o korzystaniu z usługi Firebase AI Logic