Propozycje hybrydowych AI za pomocą Firebase AI Logic

Opublikowano: 20 maja 2025 r.

Aby spełnić potrzeby użytkowników niezależnie od platformy i sprzętu, możesz skonfigurować przejście do chmury za pomocą Firebase AI Logic w przypadku wbudowanego interfejsu Prompt API.

Tworzenie hybrydowych rozwiązań AI

Wbudowana AI ma wiele zalet, z których najważniejsze to:

  • Lokalne przetwarzanie danych wrażliwych: jeśli pracujesz z danymi wrażliwymi, możesz oferować użytkownikom funkcje AI z szyfrowaniem end-to-end.
  • Korzystanie z AI w trybie offline: użytkownicy mogą korzystać z funkcji 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 aplikacji osobom, które nie mają dostępu do wbudowanej AI.

Pierwsze kroki z Firebase

  1. Utwórz projekt w Firebase i zarejestruj aplikację internetową.
  2. Aby kontynuować konfigurowanie aplikacji internetowej, przeczytaj dokumentację pakietu Firebase JavaScript SDK .

Projekty Firebase tworzą projekt Google Cloud z konfiguracjami i usługami specyficznymi dla Firebase. Dowiedz się więcej o Google Cloud i Firebase.

Instalowanie pakietu SDK

Ten przepływ pracy korzysta z npm i wymaga narzędzi do tworzenia pakietów modułów lub platform JavaScript. Firebase AI Logic jest zoptymalizowany do współpracy z narzędziami do tworzenia pakietów modułów, aby eliminować nieużywany kod i zmniejszać rozmiar pakietu SDK.

npm install firebase

Po zainstalowaniu zainicjuj Firebase w swojej aplikacji.

Korzystanie z Firebase AI Logic

Po zainstalowaniu i zainicjowaniu Firebase wybierz Gemini Developer API lub Gemini API, a następnie zainicjuj i utwórz instancję.

Po zainicjowaniu możesz wysyłać do modelu prompty tekstowe lub multimodalne.

Prompty tekstowe

Do przekazywania instrukcji modelowi możesz używać zwykłego tekstu. Możesz na przykład poprosić model o opowiedzenie żartu.

Istnieje kilka opcji kierowania żądania:

  • Domyślnie używaj wbudowanej AI, gdy jest dostępna, ustawiając mode na 'prefer_on_device' w funkcji getGenerativeModel(). Jeśli wbudowany model nie jest dostępny, żądanie zostanie płynnie przekierowane do modelu w chmurze (jeśli jesteś online).

  • Domyślnie używaj modelu w chmurze, gdy jesteś online, ustawiając mode na 'prefer_in_cloud' w funkcji getGenerativeModel(). Jeśli jesteś offline, żądanie zostanie płynnie przekierowane do wbudowanej AI, gdy będzie 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ż wysyłać prompty 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 jako obiekt Firebase FileDataPart, co możesz 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

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

W przypadku obsługiwanego sprzętu w Chrome prezentacja 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 przy użyciu wbudowanych interfejsów API AI.

W przypadku innej przeglądarki lub systemu operacyjnego 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.

Uczestniczenie i przesyłanie opinii

Firebase AI Logic może być świetnym rozwiązaniem do integrowania funkcji AI z aplikacjami internetowymi. Dzięki przejściu do chmury, gdy interfejs Prompt API jest niedostępny, pakiet SDK zapewnia szerszą dostępność i 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.