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

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

Z tej strony dowiesz się, jak zacząć korzystać z pakietu SDK klienta, a także poznasz dodatkowe opcje konfiguracji i możliwości, 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 ono wymaganiom dotyczącym dopuszczalnego użytkowania frameworka Foundation Models firmy Apple.

Zalecane przypadki użycia

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

    • większą prywatność,
    • bezpłatne wnioskowanie,
    • funkcje offline.
  • Korzystanie z funkcji hybrydowych zapewnia:

    • podobne wrażenia z aplikacji dla wszystkich klientów niezależnie od urządzenia użytkownika,
    • większą dostępność funkcji generatywnej AI niezależnie od połączenia z internetem, ograniczeń limitów i 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ę, co jest obsługiwane w przypadku aplikacji Apple.

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

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

Zapoznaj się ze szczegółową listą funkcji, które nie są jeszcze obsługiwane w przypadku wnioskowania hybrydowego lub na urządzeniu, na dole tej strony.

Obsługiwane interfejsy API i urządzenia

Rozpocznij

Upewnij się, że zapoznałeś(-aś) się z sekcją powyżej, w której opisujemy obsługiwane funkcje, interfejsy API i urządzenia.

Te instrukcje dotyczące pierwszych kroków opisują ogólną konfigurację wymaganą w przypadku każdego obsługiwanego żądania prompta, 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 z przewodnikiem, który pomoże Ci skonfigurować wymagane interfejsy API i zasoby w projekcie.

  4. Skonfiguruj projekt tak, aby korzystał z dostawcy „Gemini API”.

    Zalecamy rozpoczęcie korzystania z Gemini Developer API. W każdej chwili możesz skonfigurować Vertex AI Gemini API (i wymagane do tego rozliczenia).

    W przypadku Gemini Developer API, konsola włączy wymagane interfejsy API i utworzy klucz Gemini API w Twoim projekcie.
    Nie dodawaj tego klucza interfejsu API Gemini do bazy kodu aplikacji. Więcej informacji

  5. Jeśli w procesie w konsoli pojawi się prośba, postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zarejestrować aplikację i połączyć ją z Firebase.

  6. Aby dodać pakiet SDK do aplikacji, przejdź do następnego kroku w tym przewodniku.

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 pakiet Firebase ma wersję 12.13.0 lub nowszą.

  1. Po otwarciu projektu aplikacji wybierz w Xcode kolejno File (Plik) > Add Package Dependencies (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 bibliotekę FirebaseAILogic.

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

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

Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod specyficzne dla dostawcy.

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

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

  2. Utwórz instancję GenerativeModelSession z HybridModel.

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

    • Najpierw spróbuj wnioskowania na urządzeniu, ale zezwól na przejście do chmury: ustaw primary na model „systemowy”, a secondary na model w chmurze.

    • Najpierw spróbuj wnioskowania 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ł tylko wnioskowania na urządzeniu lub w chmurze. Aby jednak uzyskać hybrydowe wrażenia, musisz utworzyć HybridModel i ustawić modele primary i secondary.

    Więcej informacji o działaniu "trybów wnioskowania" (kolejności prób wnioskowania) znajdziesz w sekcji Opcje konfiguracji.

Poniższy przykład pokazuje, jak najpierw spróbować wnioskowania na urządzeniu, ale zezwolić na przejście 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 4. Wyślij do modelu żądanie prompta

W tej sekcji dowiesz się, jak:

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

Zanim wypróbujesz ten przykład, upewnij się, że masz za sobą sekcję Pierwsze kroki w tym przewodniku.

Aby wygenerować tekst na podstawie 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 na podstawie danych wejściowych zawierających tylko tekst

Zanim wypróbujesz ten przykład, upewnij się, że masz za sobą sekcję Pierwsze kroki w tym przewodniku.

Możesz przyspieszyć interakcje, nie czekając na cały wynik generowania modelu, i zamiast tego użyć strumieniowania do obsługi częściowych wyników. Aby strumieniowo przesyłać wygenerowany 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 funkcji hybrydowych możesz używać różnych dodatkowych opcji konfiguracji i możliwości:

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

W wersji eksperymentalnej nie są obsługiwane wszystkie możliwości Firebase AI Logic ani modeli hostowanych w chmurze.

  • Następujące elementy nie są obsługiwane w przypadku implementacji hybrydowych ani na urządzeniu: modele Imagen, Gemini Live API i szablony promptów. Nie należy też polegać na liczbie tokenów, ponieważ będzie się ona różnić w przypadku modeli hostowanych w chmurze i na urządzeniu, więc nie ma intuicyjnego przejścia.

  • Te funkcje nie są jeszcze obsługiwane w przypadku wnioskowania na urządzeniu: Jeśli chcesz korzystać z którejś z tych funkcji, zalecamy używanie tylko modelu hostowanego w chmurze, aby zapewnić większą spójność.

    • Generowanie tekstu na podstawie danych wejściowych multimodalnych, takich jak obrazy, dźwięk, filmy i dokumenty (PDF).

    • Generowanie multimediów, takich jak obrazy, dźwięk lub filmy.

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

    • Udostępnianie modelowi na urządzeniu wbudowanych narzędzi, które pomagają mu generować odpowiedzi (takich jak wykonywanie kodu, kontekst adresu URL i grounding za pomocą 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 Firebase AI Logic