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

Możesz tworzyć aplikacje i funkcje Apple oparte na AI z wnioskowaniem hybrydowym za pomocą Firebase AI Logic. Wnioskowanie hybrydowe umożliwia uruchamianie wnioskowania przy użyciu modeli na urządzeniu (w szczególności platformy modeli podstawowych Apple) w przypadku ich dostępności i bezproblemowe przełączanie się na modele Google hostowane w chmurze w innych przypadkach (i odwrotnie).

Na tej stronie znajdziesz informacje o tym, jak zacząć korzystać z pakietu SDK klienta, a także 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 Firebase AI Logic SDK 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żytku platformy modeli podstawowych Apple.

Zalecane przypadki użycia

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

    • Zwiększona prywatność
    • Wnioskowanie bez opłat
    • Funkcje offline
  • Korzystanie z funkcji hybrydowej zapewnia:

    • Zapewnianie wszystkim klientom podobnych wrażeń związanych z aplikacją niezależnie od urządzenia użytkownika
    • Zwiększanie dostępności funkcji opartych na generatywnej AI niezależnie od połączenia z internetem, limitów 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ą logiki AI Firebase, zapoznaj się z tą sekcją, aby dowiedzieć się, co jest obsługiwane w przypadku aplikacji na urządzenia Apple.

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

Wnioskowanie na urządzeniu obsługuje tylko generowanie tekstu, a w szczególności te funkcje:

Na dole tej strony znajdziesz szczegółową listę nieobsługiwanych jeszcze wnioskowań hybrydowych lub na urządzeniu.

Obsługiwane interfejsy API i urządzenia

Rozpocznij

Sprawdź sekcję powyżej, w której opisujemy obsługiwane funkcje, interfejsy API i urządzenia.

Te kroki wprowadzające 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 Firebasekonsoli, a potem wybierz projekt w Firebase.

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

  3. Kliknij Rozpocznij, aby uruchomić przepływ pracy z instrukcjami, który pomoże Ci skonfigurować wymagane interfejsy API i zasoby w projekcie.

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

    Zalecamy rozpoczęcie od Gemini Developer API. W każdej chwili możesz skonfigurować Vertex AI Gemini API (i jego wymagania dotyczące płatności).

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

  5. Jeśli w procesie w konsoli pojawi się odpowiedni monit, 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 instalacji zależności Xcode i zarządzania nimi możesz używać menedżera pakietów Swift (SPM). Obsługa hybrydowa jest dostępna tylko w przypadku korzystania z SPM.

Firebase AI Logic Biblioteka zapewnia dostęp do interfejsów API do interakcji 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 opcję 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 bibliotekę FirebaseAILogic.

Po zakończeniu Xcode automatycznie zacznie 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 dostawcy.

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

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

  2. Utwórz instancję GenerativeModelSessionHybridModel.

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

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

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

    Pamiętaj, że pakiet SDK obsługuje ustawienie tylko jednego parametru model, co oznacza, że pakiet SDK będzie tylko próbował wnioskowania na urządzeniu lub w chmurze. W przypadku hybrydowego doświadczenia musisz jednak utworzyć HybridModel i ustawić modele primarysecondary.

    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 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 4. Wyślij do modelu prośbę (prompt)

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 na podstawie prompta, który zawiera tekst, użyj znaku 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)

Przesyłanie strumieniowe tekstu z wejścia zawierającego tylko tekst

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

Możesz uzyskać szybsze interakcje, nie czekając na cały wynik wygenerowany przez model, i zamiast tego użyć strumieniowania do obsługi częściowych wyników. Aby przesyłać strumieniowo wygenerowany tekst z 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 konfiguracji i funkcji:

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

W wersji eksperymentalnej nie są obsługiwane wszystkie funkcje modeli Firebase AI Logic ani modeli hostowanych w chmurze.

  • W przypadku implementacji hybrydowych lub na urządzeniu nie są obsługiwane: modele Imagen, interfejs 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 rozwiązania rezerwowego.

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

    • 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 lub filmy;

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

    • Udostępnianie modelu na urządzeniu wbudowanych narzędzi, które pomagają mu generować odpowiedzi (takich jak wykonywanie kodu, kontekst adresu URL i grounding z wyszukiwarką Google).

  • Monitorowanie wykorzystania AI w konsoli Firebase nie wyświetla żadnych danych dotyczących wnioskowania na urządzeniu (w tym dzienników urządzenia). Każde wnioskowanie, które korzysta z modelu hostowanego w chmurze, można jednak monitorować tak samo jak inne wnioskowania 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