Inteligentne aplikacje

Tworzenie bezpiecznych i zoptymalizowanych pod kątem kosztów aplikacji na Androida za pomocą Firebase AI Logic i Gemini Nano 4

Głośniki

  • Ankita Saxena

    Menedżer produktu

  • Arthur Thompson

    Inżynier ds. relacji z deweloperami

Informacje

Informacje o wystąpieniu

Wdrażanie generatywnej AI przygotowanej do zastosowań produkcyjnych w aplikacjach na Androida wymaga czegoś więcej niż tylko połączenia z LLM – wymaga zabezpieczeń klasy korporacyjnej i kontroli kosztów. Podczas tej sesji dowiesz się, jak Firebase AI Logic umożliwia deweloperom wdrażanie bezpiecznych i ekonomicznych rozwiązań opartych na AI na dużą skalę.

Omówimy podstawy bezpieczeństwa i Sprawdzanie aplikacji Firebase, zarządzanie kosztami, kierowanie do odpowiedniego modelu dynamicznego oraz wykorzystanie możliwości multimodalnych.

Podsumowanie

  • Firebase AI Logic kieruje żądania z pakietów SDK klienta bezpośrednio do interfejsów Gemini API bez niestandardowego backendu. Szablony promptów na serwerze przechowują prompty w chmurze, aby uniknąć aktualizacji aplikacji.
  • Sprawdzanie aplikacji Firebase chroni zasoby przed nadużyciami, zapewniając, że żądania pochodzą z Twojej aplikacji. Przed wymuszeniem kontroli integruje dostawców atestów, takich jak Play Integrity i reCAPTCHA Enterprise.
  • Gemini Nano 4 wykonuje wnioskowanie na urządzeniu, aby zmniejszyć opóźnienie i chronić prywatność użytkowników. Firebase AI Logic zarządza w razie potrzeby kierowaniem zastępczym do chmury.
  • Limity wydatków i aktywatory Firebase AI Logic pozwalają przewidywać koszty chmury. Firebase automatycznie wstrzymuje usługę AI po osiągnięciu 100% wydatków, a aktywatory umożliwiają uruchamianie niestandardowych funkcji przed wygenerowaniem lub po nim.
  • Interfejs Gemini Live API umożliwia dwukierunkowe strumieniowanie dźwięku i obrazu podczas rozmowy. Pakiet SDK klienta zarządza podstawowymi połączeniami WebSocket i protokołami strumieniowania.

Gemini Notebook

Tematy

  • firebase-ai-logic
  • gemini-nano
  • firebase-app-check
  • on-device-ai
  • optymalizacja kosztów
  • gemini-live-api

Transkrypcja

Pobierz transkrypcję

Wprowadzenie i omówienie Firebase AI Logic

  • Witamy na Android Dev Summit.

  • Nazywam się Ankita Saxena i jestem menedżerką produktu Firebase.

  • A ja jestem Arthur Thompson, inżynier ds. relacji z programistami w zespole Firebase.

  • Dzisiaj pokażemy, jak dodać funkcje generatywne do aplikacji na Androida.

  • OK.

  • Czym jest Firebase?

  • Podnieście ręce, jeśli słyszeliście o Firebase.

  • Widzę bardzo dużo.

  • Świetnie.

  • Firebase to platforma Google do tworzenia aplikacji.

  • Firebase to ujednolicona platforma, która integruje ponad 20 usług, dzięki czemu nie musisz korzystać z rozproszonych rozwiązań, jak w przypadku dodatkowego oprogramowania.

  • Porozmawiajmy o wyzwaniach związanych z wdrażaniem generatywnej AI w aplikacjach mobilnych.

  • Zidentyfikowaliśmy 3 główne wyzwania.

  • Po pierwsze, wycieki kluczy interfejsu API: ich wyodrębnienie zajmuje kilka minut.

  • Po drugie, aktualizowanie nazw modeli: zawsze zalecamy deweloperom, aby nie kodowali ich na stałe w aplikacjach. W przeciwnym razie za każdym razem, gdy pojawi się nowy model, trzeba będzie opublikować nową wersję.

  • Trzecia kwestia to prywatność plików: dla każdego dewelopera i użytkownika aplikacji bardzo ważne jest, aby dane były chronione i aby aplikacja miała odpowiednie zabezpieczenia.

  • Przedstawiamy Firebase AI Logic jako kluczowe rozwiązanie problemów, które omówiliśmy.

  • Jaką propozycję wartości zapewnia Firebase AI Logic?

  • Zajmujemy się całą złożoną niestandardową infrastrukturą, dzięki czemu nie musisz jej tworzyć po swojej stronie.

  • Po drugie, dzięki naszym pakietom SDK klienta możesz wywoływać interfejs Gemini API bezpośrednio i bezpiecznie z aplikacji mobilnych.

  • Przyjrzyjmy się temu, co jest pod maską, i zobaczmy, jak działa architektura.

  • Po lewej stronie mamy pakiety SDK klienta Firebase.

  • Obecnie obsługujemy wiele różnych pakietów SDK klienta.

  • Chcę też wspomnieć o języku Kotlin, który również obsługujemy.

  • Gdy deweloper chce wykonać działanie AI, pakiet SDK wysyła żądanie do Firebase AI Logic, który następnie bezpiecznie przekierowuje je do interfejsu Gemini Developer API lub Agent Platform Gemini API.

  • Zasadniczo zajmujemy się więc całym niestandardowym backendem, który tworzysz.

  • Korzyścią dla nas jest to, że przyspieszacie czas wprowadzania na rynek bez opłat.

Wersja demonstracyjna aplikacji FriendlyMeals

  • Teraz czas na zabawę.

  • To będzie wersja demonstracyjna aplikacji FriendlyMeals.

  • Przy okazji: będziemy używać tej samej aplikacji w pozostałych prezentacjach w tej sesji, więc możesz ją pobrać.

  • Możesz go zeskanować za pomocą tego kodu QR.

  • Przejdźmy do wersji demonstracyjnej.

  • Aplikacja FriendlyMeals pomaga znaleźć przepisy na podstawie wprowadzonych składników.

  • W tym procesie widzisz 2 sposoby na uchwycenie tych elementów.

  • Po pierwsze, podaj składniki, które masz.

  • Następnie robisz zdjęcie składników.

  • Użyję pierwszego przepływu pracy, czyli wpisania składników.

  • To wszystko, co udało mi się znaleźć w lodówce.

  • Podczas generowania przepisu chcę zwrócić uwagę na kilka rzeczy.

  • W tle wywołujemy modele Gemini.

  • W tym konkretnym przypadku użycia wywołujemy 3 modele Gemini 3.8 Flash.

  • Jeśli spojrzysz na górę, zobaczysz obraz, który faktycznie korzysta z modelu Gemini Nano Banana, czyli 2.1 Nano Banana, najnowszej wersji.

  • Zanim przejdziemy do kodu, chcę podkreślić korzyści, jakie daje Firebase AI Logic.

  • Pierwszy to pakiety SDK bezserwerowe.

  • Chcesz dodać funkcję opartą na AI, ale nie chcesz tworzyć backendu.

  • Właśnie dlatego powstały nasze pakiety SDK po stronie klienta.

  • Wywołujesz Gemini bezpośrednio z aplikacji na Androida.

  • Drugi to zaawansowane wbudowane funkcje zabezpieczeń.

  • Dzięki temu w przypadku wywołań Gemini możesz korzystać z takich funkcji jak Sprawdzanie aplikacji Firebase czy szablony promptów serwera. O tych funkcjach zabezpieczeń opowiemy nieco później.

  • Po trzecie, obsługuje funkcje zaawansowane, takie jak multimodalne dane wejściowe i strumieniowanie.

  • Załóżmy, że chcesz utworzyć aplikację, która dodaje prostą funkcję opartą na AI, aby wygenerować opowiadanie o magicznym plecaku.

    import com.google.firebase.Firebase
    import com.google.firebase.ai.ai
    
    @Composable
    fun MagicBackpackGenerator() {
        var output by remember { mutableStateOf("") }
    
        LaunchedEffect(Unit) {
    
           val model=Firebase.ai.generativeModel("gemini-4-argon")
    
            val response = model.generateContent("Write a story about a magic backpack")
    
            output = response.text.toString()
    
        }
        MagicBackpackUI(output)
    }
  • Aby dodać tę funkcję opartą na AI i przygotować ją do produkcji, wystarczy wykonać te 3 proste kroki.

  • Firebase AI Logic ułatwia dodawanie funkcji opartych na AI do aplikacji, więc pierwsze pytanie, jakie należy sobie zadać, brzmi: jak zabezpieczyć tę funkcję?

Bezpieczeństwo i zarządzanie promptami

  • Przejdźmy do szczegółów dotyczących bezpieczeństwa, zaczynając od Sprawdzania aplikacji Firebase.

  • Sprawdzanie aplikacji Firebase pomaga chronić dane i użytkowników oraz kontrolować, kto ma dostęp do zasobów interfejsu API, potwierdzając, że żądania pochodzą z Twojej aplikacji.

  • To dodatkowa warstwa zabezpieczeń, która pomaga zapobiegać nadużyciom w aplikacji.

  • Zanim przejdziesz do kodu, musisz wykonać kilka czynności w konsoli Firebase.

  • W sekcji Sprawdzanie aplikacji w konsoli Firebase zarejestruj aplikację na Androida i dodaj odpowiednich dostawców atestów.

  • Są to na przykład Play Integrity czy reCAPTCHA Enterprise.

  • Zauważ, że po skonfigurowaniu Sprawdzania aplikacji warto zacząć od trybu niewymuszonego.

  • W ten sposób zezwalasz aplikacji na dostarczanie danych telemetrycznych, aby upewnić się, że wszystkie aplikacje otrzymują udane wywołania interfejsu API do backendu, zanim zaczniesz egzekwować zasady.

  • Gdy zobaczysz, że dane telemetryczne są przesyłane prawidłowo, możesz wymusić Sprawdzanie aplikacji. Wtedy wszystkie żądania, które nie mają prawidłowego tokena potwierdzonego sprzętowo, będą odrzucane.

  • Oto jak wygląda kod implementacji Sprawdzania aplikacji.

    class FireTravelApp : Application() {
       lateinit var appContainer: AppContainer
           private set
       override fun onCreate() {
           super.onCreate()
           if (BuildConfig.DEBUG) {
               Firebase.appCheck.installAppCheckProviderFactory(
                   DebugAppCheckProviderFactory.getInstance()
               )
           } else {
               Firebase.appCheck.installAppCheckProviderFactory(
                   PlayIntegrityAppCheckProviderFactory.getInstance()
               )
           }
           appContainer = AppContainer(this)
       }
    }
  • W klasie aplikacji zainstaluj dostawcę funkcji Sprawdzanie aplikacji.

  • Na etapach programowania warto używać dostawcy debugowania, a gdy aplikacja będzie gotowa do wdrożenia produkcyjnego, można przejść na Play Integrity lub reCAPTCHA Enterprise.

  • Pamiętaj jednak, że przed wykonaniem jakichkolwiek innych wywołań Firebase musisz najpierw skonfigurować Sprawdzanie aplikacji.

  • Podczas tworzenia funkcji opartych na AI deweloperzy często kodują prompty na stałe bezpośrednio w kodzie aplikacji, co wiąże się z 2 poważnymi wyzwaniami.

  • Po pierwsze, jeśli prompt wymaga jakichkolwiek zmian, musisz przesłać pełną aktualizację.

  • Po drugie, każdy, kto rozpakuje Twoją aplikację, ma dostęp do Twoich zastrzeżonych technik tworzenia promptów.

  • Aby rozwiązać ten problem, Firebase AI Logic używa szablonów promptów przechowywanych na serwerach.

  • Zamiast przechowywać prompty na urządzeniu, zapisuje je w chmurze.

  • To jest widok szablonów promptów przechowywanych na serwerach w konsoli Firebase.

  • Szablony tworzysz w formacie .prompt.

    ---
    model: 'gemini-3-flash'
    input:
      schema:...
    tools:...
    ---
    {{role "system"}}
    You're a storyteller that tells nice and joyful stories with happy endings.
    
    {{role "user"}}
    Create a story about {{topic}} with the length of {{length}} words in the {{language}} language.
  • Nazwę modelu możesz ustawić tutaj.

  • Możesz go zmienić w każdej chwili.

  • Nie musisz przesyłać pełnej aktualizacji aplikacji.

  • Możesz też zaktualizować instrukcje systemowe. Przyjmują one również ścisły schemat JSON dla danych wejściowych i wyjściowych.

  • Nie musisz publikować nowej wersji aplikacji.

  • Ponieważ działa w chmurze, możesz dostosować prompta lub natychmiast zmienić model.

  • A tak wygląda kod w języku Kotlin.

    val generativeModel = Firebase.ai.templateGenerativeModel()
    
    val response = generativeModel.generateContent("storyteller-v1",
        mapOf(
            "topic" to topic,
            "length" to length,
            "language" to language
        )
    )
    
    output.value = response.text
  • Warto wspomnieć, że szablony promptów serwera są dostępne w publicznej wersji przedpremierowej.

  • Możesz też wdrożyć tryb „Tylko autoryzacja”.

  • Do autoryzacji żądania używa tokenów użytkownika Firebase Auth.

  • Aby uzupełnić funkcje zabezpieczeń i całkowicie zablokować aplikację, możesz też użyć trybu „Tylko szablon” bezpośrednio w konsoli Firebase.

Panel monitorowania i telemetrii AI

  • Po opublikowaniu aplikacji możesz chcieć sprawdzić, jak działa.

  • Na karcie Monitorowanie wykorzystania AI możesz jednym kliknięciem włączyć monitorowanie wykorzystania AI i skonfigurować częstotliwość próbkowania.

  • Firebase będzie automatycznie rejestrować dane, opóźnienia i liczbę tokenów bez konieczności pisania niestandardowego kodu analitycznego.

  • Warto wspomnieć, że oba tryby, które właśnie widzieliśmy, są dostępne w tym samym oknie.

  • Po włączeniu monitorowania wykorzystania AI w konsoli Firebase dane będą przesyłane bezpośrednio do panelu monitorowania wykorzystania AI.

  • Możesz obserwować 95-percentyl opóźnienia, wykrywać nagłe skoki błędów i śledzić wykorzystanie tokenów w różnych modalnościach, takich jak tekst, obrazy i dźwięk.

  • Możesz też sprawdzić przeglądarkę logów czasu, aby zobaczyć określone logi czasu.

  • W tym przypadku, gdy wyświetlane są różne modele, których używamy, możesz zobaczyć czas oczekiwania i wskaźnik sukcesu.

Wnioskowanie hybrydowe z Gemini Nano

  • W konsoli Firebase, gdzie możesz uzyskać wszystkie dane telemetryczne i wgląd w działanie funkcji opartej na AI.

  • Jeśli więc zauważysz nagły wzrost wykorzystania tokenów lub nagły wzrost opóźnienia, model hybrydowy jest jednym ze sposobów na obniżenie tych kosztów lub opóźnienia.

  • A ponieważ funkcje generatywnej AI stają się kluczową częścią naszych aplikacji, poleganie w 100% wyłącznie na chmurze prawdopodobnie nie jest właściwym wyborem.

  • Dzięki wykorzystaniu Nano 4, modeli na urządzeniu z Androidem, można uzyskać 3 główne korzyści, które mogą być Ci znane.

  • Pierwszy to tryb offline.

  • Dzięki temu funkcja oparta na AI będzie działać niezależnie od tego, czy jesteś na dużej konferencji, w samolocie czy w metrze.

  • koszt,

  • Ponieważ wnioskowanie odbywa się na urządzeniu, możesz dodać te funkcje i nie musisz się martwić o rosnące koszty funkcji opartych na AI.

  • Trzeci aspekt to prywatność danych.

  • Jeśli więc chodzi o dane wrażliwe, możesz zagwarantować użytkownikom, że żadne wnioskowanie nie opuści urządzenia.

  • Dzięki Firebase AI Logic możesz ustawić te tryby wnioskowania i mieć jasne strategie routingu, takie jak PREFER_ON_DEVICE, PREFER_IN_CLOUD lub ONLY_ON_DEVICE.

  • Gdy wybierzesz ONLY_ON_DEVICE, pakiet SDK będzie korzystać bezpośrednio z modelu na urządzeniu, całkowicie pomijając chmurę.

  • Przełączmy się na telefon.

  • Wróćmy do FriendlyMeals i przyjrzyjmy się niektórym funkcjom na urządzeniu.

  • Najpierw spróbujemy utworzyć przepis na podstawie składników, które mogą być w lodówce.

  • Wcześniej Ankita użyła metody ręcznej, wpisując składniki, a następnie generując przepis.

  • Spróbujmy więc inaczej.

  • Weźmy tę prawdziwą lodówkę, która nie została wygenerowana.

  • W lodówce jest dużo oliwek, więc zobaczmy, jaki przepis zostanie wygenerowany.

  • Chcę zwrócić uwagę na kilka rzeczy.

  • Po pierwsze obraz nigdy nie opuścił urządzenia.

  • Obraz został przeanalizowany lokalnie przez Nano by Gemma…

  • Nano 4.

  • Drugą kwestią jest szybkość, z jaką otrzymaliśmy odpowiedź.

  • Składniki zostały wygenerowane.

  • Dzięki temu zyskujesz 2 korzyści.

  • Dane nie opuszczają urządzenia, a opóźnienie jest znacznie mniejsze.

  • Zobaczmy, jaki przepis otrzymamy, gdy w lodówce mamy tylko oliwki.

  • Tym razem używamy chmury.

  • Bierzemy więc składniki, które zostały zidentyfikowane w lodówce, i wysyłamy je do chmury, używając Firebase AI Logic do wygenerowania przepisu.

  • Nie widzę łososia w lodówce, ale jest on w przepisie.

  • Wróćmy do prezentacji.

  • Jak widzieliśmy w prezentacji, przełączanie się między modelem lokalnym a modelem w chmurze jest dość proste.

  • Obecnie Firebase AI Logic umożliwia wnioskowanie przy użyciu podstawowego routingu opartego na dostępności sieci.

  • Aby zarządzać tym wnioskowaniem, możesz użyć zabezpieczeń.

  • Architektura obejmuje więc wbudowaną obsługę funkcji takich jak schematy multimodalne oraz schematy wejściowe i wyjściowe, a także pełną integrację z Gemini Nano 4.

  • Zobaczmy, jak te zabezpieczenia są wdrażane w praktyce.

  • Dzięki temu routing hybrydowy nie wymaga tworzenia złożonego oprogramowania pośredniczącego ani wielu funkcji zastępczych.

  • Jeśli chodzi o kod, jest to po prostu dodatkowy parametr.

  • Aby ustawić preferowany tryb, przekazujesz parametr do onDeviceConfig.

    import com.google.firebase.Firebase
    import com.google.firebase.ai.ai
    
    @Composable
    fun MagicBackpackGenerator() {
        var output by remember { mutableStateOf("") }
    
        LaunchedEffect(Unit) {
    
            val model = Firebase.ai.generativeModel(modelName = "gemini-3.8-flash",
    onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE))
    
           val response = model.generateContent("Write a story about a magic backpack")
    
            output = response.text.toString()
    
        }
        MagicBackpackUI(output)
    }
  • W takim przypadku pakiet SDK najpierw spróbuje użyć modelu lokalnego, a jeśli nie będzie on dostępny, automatycznie przełączy się na model w chmurze.

Optymalizacja kosztów i wyzwalacze logiki AI

  • Wiemy już, jak tworzyć bezpieczne aplikacje i korzystać z modeli na urządzeniu, więc porozmawiajmy o optymalizacji kosztów.

  • Funkcje generatywne mogą szybko się skalować, co może zwiększyć Twoje rachunki za usługi w chmurze.

  • Dlatego musimy mieć odpowiednie zabezpieczenia, aby zapewnić właściwe proaktywne mechanizmy kontroli infrastruktury i funkcje automatyczne, które pomogą Ci przewidywać budżety i zapewnić efektywność finansową aplikacji.

  • Arthur podkreślił, że wnioskowanie na urządzeniu jest całkowicie bezpłatne, ale zawsze będą występować scenariusze, które wymagają złożonych zadań rozumowania, a także wymagają zastąpienia i przekierowania do chmury.

  • Gdy dochodzi do takich wywołań, potrzebujesz zabezpieczeń, które pozwolą Ci utrzymać budżet na przewidywalnym poziomie.

  • Właśnie dlatego wprowadziliśmy limity wydatków Firebase.

  • Dzięki limitom wydatków możesz mieć większą kontrolę nad kosztami aplikacji.

  • Zamiast ogólnego ustawienia budżetu dla całego projektu i alertów budżetowych, które wysyłają tylko e-maile, możesz ustawić konkretny limit budżetu dla poszczególnych usług, takich jak Firebase AI Logic.

  • Gdy wydatki osiągną 100%, Firebase automatycznie wstrzyma usługę AI, aby zapobiec niekontrolowanemu wzrostowi kosztów.

  • Oprócz prostych limitów wydatków istnieje kilka zaawansowanych strategii optymalizacji kosztów.

  • Dzisiaj chcemy zwrócić uwagę na aktywatory Firebase AI Logic.

  • Co zrobić, jeśli potrzebujesz niestandardowej logiki w środku?

  • To są aktywatory Firebase AI Logic.

  • Możesz uruchomić funkcję przed wygenerowaniem treści lub po nim.

  • Możesz go użyć do sprawdzenia użytkownika, filtrowania danych wejściowych, dodawania kontekstu, a także dostosowywania odpowiedzi.

Gemini Live API i możliwości modelu

  • Omówiliśmy już optymalizację kosztów i bezpieczeństwo, więc teraz przejdźmy do możliwości modelu i zobaczmy, co oferuje Firebase AI Logic.

  • Aby umożliwić korzystanie z tych multimodalnych funkcji, Firebase AI Logic udostępnia obszerny katalog modeli i narzędzi gotowych do wykorzystania w środowisku produkcyjnym.

  • Do szybkiego wnioskowania, generowania tekstu, kodu i multimediów możesz używać m.in. modeli Gemini 4 Argon, Gemini 3.1 Pro i Gemini 3.8 Flash.

  • Możesz też połączyć te modele z danymi ze świata rzeczywistego, korzystając z groundingu w wyszukiwarce i Mapach.

  • W przypadku głosu zapewniamy naturalną zamianę tekstu na mowę i generowanie dźwięku w Gemini Live.

  • Przełączmy się jeszcze raz na telefon.

  • Mamy tu więc słodkie i wytrawne.

  • Nie, nie to.

  • Oto nasz przepis na szybkie tosty z serem i ketchupem.

  • Brzmi pysznie.

  • Pierwszą rzeczą, której chcemy się przyjrzeć, jest interfejs Live API.

  • W tym przypadku możemy użyć filmu, który otrzymamy, i powiedzieć: „Hej, Gemini, czy możesz mi powiedzieć, jakie składniki są na stole?”.

  • Na podstawie obrazu na ekranie laptopa masz chleb, ser cheddar i ketchup.

  • OK.

  • Czy mogę zacząć od pierwszego kroku przepisu?

  • Tak.

  • Pierwszym krokiem jest rozgrzanie tostera lub opiekacza do średnio wysokiej temperatury.

  • Dziękujemy.

  • OK.

  • W tym przypadku był to interfejs Live API, a rozmowa pozostałaby otwarta, dopóki bym jej nie zamknął.

  • Kolejna funkcja, którą chcę pokazać, to zamiana mowy na tekst, a raczej zamiana tekstu na mowę.

  • W tym przykładzie mamy instrukcje przepisu, które są odczytywane przez funkcję zamiany tekstu na mowę.

  • Zamiast czytać, mogę kliknąć „Wygeneruj” lub „Mów”, a tekst instrukcji zostanie wysłany do modelu zamiany tekstu na mowę.

  • Wygeneruje dźwięk i wyśle go z powrotem na urządzenie.

  • Mogę go odtworzyć, zapisać w pamięci podręcznej na później i będzie odtwarzany tak, jak widzimy tutaj.

  • 1.

  • Rozgrzej opiekacz lub grill do średnio wysokiej temperatury.

  • 2.

  • Połóż 2 kromki chleba na blasze do pieczenia lub tacy tostera.

  • Nieźle.

  • Fajnie, prawda?

  • Firebase AI Logic pozwala nam wdrażać tego typu funkcje za pomocą zaledwie kilku linijek kodu.

  • Wróćmy do slajdów.

  • Teraz, gdy już widzieliśmy, jak działa Gemini Live API, co jeśli chcesz samodzielnie stworzyć obsługiwany bez użycia rąk tryb konwersacyjny?

  • W tym miejscu przydaje się interfejs Gemini Live API, który umożliwia tworzenie dwukierunkowych rozmów głosowych.

  • Aplikacja na Androida może przesyłać strumieniowo dźwięk z mikrofonu i klatki z kamery oraz otrzymywać w czasie rzeczywistym naturalne odpowiedzi głosowe o niskiej latencji.

  • W Kotlinie konfiguracja wygląda dość znajomo.

    val model = Firebase.ai.liveModel(
        modelName = "gemini-3.1-flash-live-preview",
        generationConfig = liveGenerationConfig {
            responseModality = ResponseModality.AUDIO
       },
       systemInstruction = "Your main job is to change the color...",
       tools = listOf(Tool.functionDeclarations(listOf(changeColorFunction)))
    )
    
    val session = model.connect(::handler)
    
    session.startAudioConversation(::handler)
    
    session.stopAudioConversation()
  • Utworzysz instancję modelu Live skonfigurowanego do generowania odpowiedzi audio i połączysz się z sesją za pomocą modułu obsługi strumienia.

  • Najważniejszą kwestią, na którą chcielibyśmy zwrócić uwagę, jest to, że pakiet SDK obsługuje wszystkie elementy WebSocket i protokoły strumieniowe.

  • Nie musisz więc pisać kodu.

  • Pisz dalej.

Umiejętności agenta Firebase i najważniejsze informacje

  • Kończąc nasze prezentacje i patrząc w przyszłość tworzenia aplikacji, chcielibyśmy zwrócić uwagę na jedno potężne narzędzie, które może usprawnić Twój przepływ pracy – umiejętności agenta Firebase.

    # Execute to add agent capabilities to your workspace
    npx skills add firebase/agent-skills
  • Dodatkowo dla osób korzystających z Antigravity i Android Studio zintegrowaliśmy Firebase AI Logic bezpośrednio z procesem wprowadzającym.

  • Na koniec 3 najważniejsze wnioski: zacznij tworzyć, korzystaj z narzędzi produkcyjnych, takich jak te związane z bezpieczeństwem, które dzisiaj omówiliśmy, i używaj umiejętności agentów, gdzie tylko możesz.

  • Dziękujemy.

Kod

Fragmenty kodu

Fragment kodu w języku Kotlin w 05:14 w filmie „FriendlyMeals app demo”
import com.google.firebase.Firebase
import com.google.firebase.ai.ai

@Composable
fun MagicBackpackGenerator() {
    var output by remember { mutableStateOf("") }

    LaunchedEffect(Unit) {

       val model=Firebase.ai.generativeModel("gemini-4-argon")

        val response = model.generateContent("Write a story about a magic backpack")

        output = response.text.toString()

    }
    MagicBackpackUI(output)
}
Fragment kodu w języku Kotlin w 07:07 w filmie „Bezpieczeństwo i zarządzanie promptami”
class FireTravelApp : Application() {
   lateinit var appContainer: AppContainer
       private set
   override fun onCreate() {
       super.onCreate()
       if (BuildConfig.DEBUG) {
           Firebase.appCheck.installAppCheckProviderFactory(
               DebugAppCheckProviderFactory.getInstance()
           )
       } else {
           Firebase.appCheck.installAppCheckProviderFactory(
               PlayIntegrityAppCheckProviderFactory.getInstance()
           )
       }
       appContainer = AppContainer(this)
   }
}
Fragment kodu YAML w 08:18 w filmie „Zarządzanie zabezpieczeniami i promptami”
---
model: 'gemini-3-flash'
input:
  schema:...
tools:...
---
{{role "system"}}
You're a storyteller that tells nice and joyful stories with happy endings.

{{role "user"}}
Create a story about {{topic}} with the length of {{length}} words in the {{language}} language.
Fragment kodu w języku Kotlin w 08:54 w filmie „Zarządzanie bezpieczeństwem i promptami”
val generativeModel = Firebase.ai.templateGenerativeModel()

val response = generativeModel.generateContent("storyteller-v1",
    mapOf(
        "topic" to topic,
        "length" to length,
        "language" to language
    )
)

output.value = response.text
Fragment kodu w języku Kotlin w 15:09 w filmie „Wnioskowanie hybrydowe z Gemini Nano”
import com.google.firebase.Firebase
import com.google.firebase.ai.ai

@Composable
fun MagicBackpackGenerator() {
    var output by remember { mutableStateOf("") }

    LaunchedEffect(Unit) {

        val model = Firebase.ai.generativeModel(modelName = "gemini-3.8-flash",
onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE))

       val response = model.generateContent("Write a story about a magic backpack")

        output = response.text.toString()

    }
    MagicBackpackUI(output)
}
Fragment kodu w języku Kotlin w 21:02 w filmie „Gemini Live API i możliwości modelu”
val model = Firebase.ai.liveModel(
    modelName = "gemini-3.1-flash-live-preview",
    generationConfig = liveGenerationConfig {
        responseModality = ResponseModality.AUDIO
   },
   systemInstruction = "Your main job is to change the color...",
   tools = listOf(Tool.functionDeclarations(listOf(changeColorFunction)))
)

val session = model.connect(::handler)

session.startAudioConversation(::handler)

session.stopAudioConversation()
Fragment kodu powłoki w 21:30 w filmie „Umiejętności agenta Firebase i najważniejsze wnioski”
# Execute to add agent capabilities to your workspace
npx skills add firebase/agent-skills