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:
generowanie tekstu na podstawie danych wejściowych zawierających tylko tekst,
strumieniowe przesyłanie tekstu na podstawie danych wejściowych zawierających tylko tekst.
Obsługiwane interfejsy API i urządzenia
Wnioskowanie w chmurze korzysta z wybranego dostawcy Gemini API (albo Gemini Developer API albo Vertex AI Gemini API).
Wnioskowanie na urządzeniu korzysta z frameworka Foundation Models firmy Apple, który jest dostępny tylko na urządzeniach z włączoną funkcją Apple Intelligence. Model na urządzeniu jest pobierany automatycznie po włączeniu funkcji Apple Intelligence.
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
Zaloguj się w konsoli Firebase, i wybierz projekt w Firebase.
W konsoli Firebase otwórz Usługi AI > AI Logic.
Kliknij Rozpocznij , aby uruchomić proces z przewodnikiem, który pomoże Ci skonfigurować wymagane interfejsy API i zasoby w projekcie.
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 informacjiJeś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.
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ą.
Po otwarciu projektu aplikacji wybierz w Xcode kolejno File (Plik) > Add Package Dependencies (Dodaj zależności pakietu).
Gdy pojawi się prośba, dodaj repozytorium pakietu SDK Firebase na platformy Apple:
https://github.com/firebase/firebase-ios-sdkWybierz najnowszą wersję pakietu SDK.
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:
Zainicjuj usługę dla wybranego Gemini API dostawcy.
Utwórz instancję
GenerativeModelSessionzHybridModel.Ustaw modele
primaryisecondaryzgodnie 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
primaryna model „systemowy”, asecondaryna model w chmurze.Najpierw spróbuj wnioskowania w chmurze, ale zezwól na przejście na urządzenie: ustaw
primaryna model w chmurze, asecondaryna 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ćHybridModeli ustawić modeleprimaryisecondary.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:
- generować tekst na podstawie danych wejściowych zawierających tylko tekst,
- strumieniowo przesyłać tekst na podstawie danych wejściowych zawierających tylko tekst.
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:
Określ, czy użyto wnioskowania na urządzeniu, czy w chmurze.
Użyj konfiguracji modelu, aby kontrolować odpowiedzi (np. temperaturę).
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:
Użytkownik Twojej aplikacji musi korzystać z urządzenia z włączoną funkcją Apple Intelligence.
Aplikacja może uruchamiać wnioskowanie na urządzeniu tylko wtedy, gdy działa na pierwszym planie.
Prześlij opinię o korzystaniu z Firebase AI Logic