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ą logiki AI Firebase dla wbudowanego interfejsu Prompt API.

Tworzenie hybrydowych funkcji 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 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.

Wprowadzenie do Firebase

  1. Utwórz projekt Firebase i zarejestruj aplikację internetową.
  2. Aby kontynuować konfigurację aplikacji internetowej, zapoznaj się z 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

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

npm install firebase

Po zainstalowaniu zainicjuj Firebase w aplikacji.

Korzystanie z Firebase AI Logic

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

Po zainicjowaniu możesz wysyłać do modelu prompty w postaci tekstu lub danych multimodalnych.

Prompty tekstowe

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

Aby mieć pewność, że wbudowana AI jest używana, gdy jest dostępna w funkcji getGenerativeModel, ustaw mode na prefer_on_device.

// 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ć obrazów lub dźwięku. 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.

Uczestniczenie w programie i przesyłanie opinii

Firebase AI Logic to świetna opcja, aby zintegrować funkcje 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.