Propozycje hybrydowych AI za pomocą Firebase AI Logic

Data publikacji: 20 maja 2025 r.

Aby zaspokoić potrzeby użytkowników niezależnie od platformy czy sprzętu, możesz skonfigurować rezerwowe działanie w chmurze za pomocą Firebase AI Logic dla wbudowanego interfejsu Prompt API.

Tworzenie hybrydowych rozwiązań opartych na AI

Wbudowana AI ma szereg zalet, w tym:

  • Lokalne przetwarzanie danych wrażliwych: jeśli pracujesz z danymi wrażliwymi, możesz oferować użytkownikom funkcje AI z pełnym szyfrowaniem.
  • Korzystanie z AI w trybie offline: użytkownicy mogą korzystać z funkcji opartych na AI nawet wtedy, gdy są offline lub mają słabe połączenie.

Chociaż te korzyści nie dotyczą aplikacji w chmurze, możesz zapewnić płynne działanie osobom, które nie mają dostępu do wbudowanej AI.

Pierwsze kroki z Firebase

Dowiedz się, jak utworzyć projekt Firebase i dodać Firebase do aplikacji internetowej.

Projekty Firebase to projekty Google Cloud z konfiguracjami i usługami specyficznymi dla Firebase. Dowiedz się więcej o Google Cloud i Firebase.

Instalowanie pakietu SDK

Ten proces korzysta z npm i wymaga narzędzi do tworzenia pakietów modułów lub platformy JavaScript. Logika AI Firebase jest zoptymalizowana pod kątem współpracy z programami do łączenia modułów, aby eliminować nieużywany kod i zmniejszać rozmiar pakietu SDK.

  1. Zainstaluj pakiet Firebase JS SDK:

    npm install firebase
    
  2. Zainicjuj Firebase w aplikacji.

Konfigurowanie i zabezpieczanie Firebase AI Logic

  1. W konsoli Firebase kliknij Usługi AI > Logika AI.

  2. Aby uruchomić proces konfiguracji, kliknij Rozpocznij.

  3. Gdy pojawi się prośba o wybranie „dostawcy Gemini API”, zalecamy wybranie Gemini Developer API, które umożliwia szybkie rozpoczęcie pracy bezpłatnie.

    W dowolnym momencie możesz później skonfigurować interfejs Vertex AI Gemini API (i jego wymagania dotyczące płatności).

  4. Postępuj zgodnie z instrukcjami w konsoli, aby skonfigurować wymagane interfejsy API i powiązane usługi dla logiki AI Firebase.

    Na początku lipca 2026 r. ten etap przepływu pracy automatycznie wymusi weryfikację aplikacji w Firebase w przypadku logiki AI, co jest kluczową usługą pomagającą chronić interfejs Gemini API, gdy jest on bezpośrednio dostępny z Twojej aplikacji. Aby rozpocząć (patrz kroki w dalszej części tego przewodnika), musisz skonfigurować dostawcę debugowania weryfikacji aplikacji na potrzeby lokalnego programowania, gdy weryfikacja aplikacji jest wymuszana.

  5. Przejdź do kolejnych sekcji tego przewodnika, aby skonfigurować dostawcę debugowania usługi App Check na potrzeby lokalnego programowania, a następnie wysłać pierwsze żądanie do interfejsu Gemini API.

Konfigurowanie dostawcy debugowania Sprawdzania aplikacji na potrzeby programowania lokalnego

Aby użyć dostawcy debugowania podczas interaktywnego uruchamiania aplikacji z localhost (np. podczas lokalnego programowania):

  1. W kompilacji debugowania włącz tryb debugowania, ustawiając wartość self.FIREBASE_APPCHECK_DEBUG_TOKEN na true przed zainicjowaniem weryfikacji aplikacji. Na przykład:

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    
  2. Otwórz lokalnie aplikację internetową i narzędzia programisty w przeglądarce. W konsoli debugowania zobaczysz token debugowania:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    
  3. Zarejestruj token debugowania w Sprawdzaniu aplikacji:

    1. W konsoli Firebase otwórz Zabezpieczenia > App Check > karta Aplikacje.

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

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

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

Wysyłanie żądania do interfejsu Gemini API

  1. Zainicjuj i utwórz instancję.

  2. Wysyłaj do modelu prompty w postaci tekstu lub danych multimodalnych. Przykłady znajdziesz w kolejnych podsekcjach tego przewodnika.

Prompty tekstowe

W instrukcjach dla modelu możesz używać zwykłego tekstu. Możesz na przykład poprosić model o opowiedzenie żartu.

Żądanie możesz przekierować na kilka sposobów:

  • Gdy wbudowana AI jest dostępna, używaj jej domyślnie, ustawiając w funkcji getGenerativeModel() wartość mode na 'prefer_on_device'. Jeśli wbudowany model jest niedostępny, żądanie zostanie bezproblemowo przekierowane do modelu w chmurze (jeśli jesteś online).

  • Gdy jesteś online, używaj domyślnie modelu chmury, ustawiając wartość mode na 'prefer_in_cloud' w funkcji getGenerativeModel(). Jeśli jesteś offline, żądanie zostanie płynnie przekierowane do wbudowanej AI, gdy będzie ona dostępna.

// Initialize the Google AI service.
const googleAI = getAI(firebaseApp);

// Create a `GenerativeModel` instance with a model that supports your use case.
const model = getGenerativeModel(googleAI, { mode: 'prefer_on_device' });

const prompt = 'Tell me a joke';

const result = await model.generateContentStream(prompt);

for await (const chunk of result.stream) {
  const chunkText = chunk.text();
  console.log(chunkText);
}
console.log('Complete response', await result.response);

Prompty multimodalne

Oprócz tekstu możesz też używać promptów z obrazami lub dźwiękiem. Możesz poprosić model o opisanie zawartości obrazu lub transkrypcję pliku audio.

Obrazy muszą być przekazywane jako ciąg tekstowy z kodowaniem Base64 w postaci obiektu Firebase FileDataPart. Możesz to zrobić za pomocą funkcji pomocniczej fileToGenerativePart().

// Converts a File object to a `FileDataPart` object.
// https://firebase.google.com/docs/reference/js/vertexai.filedatapart
async function fileToGenerativePart(file) {
    const base64EncodedDataPromise = new Promise((resolve) => {
      const reader = new FileReader();
      reader.onload = () => resolve(reader.result.split(',')[1]);
      reader.readAsDataURL(file);
    });

    return {
      inlineData: { data: await base64EncodedDataPromise, mimeType: file.type },
    };
  }

  const fileInputEl = document.querySelector('input[type=file]');

  fileInputEl.addEventListener('change', async () => {
    const prompt = 'Describe the contents of this image.';

    const imagePart = await fileToGenerativePart(fileInputEl.files[0]);

    // To generate text output, call generateContent with the text and image
    const result = await model.generateContentStream([prompt, imagePart]);

    for await (const chunk of result.stream) {
      const chunkText = chunk.text();
      console.log(chunkText);
    }
    console.log(Complete response: ', await result.response);
  });

Prezentacja

Odwiedź demo Firebase AI Logic na różnych urządzeniach i w różnych przeglądarkach. Możesz sprawdzić, czy odpowiedź modelu pochodzi z wbudowanego modelu AI czy z chmury.

Na obsługiwanym sprzęcie w Chrome wersja demonstracyjna korzysta z interfejsu Prompt API i Gemini Nano. W przypadku dokumentu głównego, pliku JavaScript i pliku CSS wysyłane są tylko 3 żądania.

Logika AI Firebase działająca w Chrome z użyciem wbudowanych interfejsów API AI.

W innej przeglądarce lub systemie operacyjnym bez wbudowanej obsługi AI wysyłane jest dodatkowe żądanie do punktu końcowego Firebase, https://firebasevertexai.googleapis.com.

Logika AI Firebase działająca w Safari, która wysyła żądanie do serwerów Firebase.

Weź udział i prześlij opinię

Firebase AI Logic to świetne rozwiązanie do integrowania funkcji AI z aplikacjami internetowymi. Dzięki przełączaniu się na chmurę, gdy interfejs Prompt API jest niedostępny, pakiet SDK zapewnia szerszą dostępność i większą niezawodność funkcji AI.

Pamiętaj, że aplikacje w chmurze tworzą nowe oczekiwania dotyczące prywatności i funkcjonalności, dlatego ważne jest, aby informować użytkowników o tym, gdzie są przetwarzane ich dane.