Propozycje hybrydowych AI za pomocą Firebase AI Logic

Data publikacji: 20 maja 2025 r.

Wbudowany interfejs Prompt API jest dostępny dla rozszerzeń Chrome w systemach Windows, macOS i Linux od wersji 138 stabilnej. Interfejs API będzie wkrótce dostępny w ramach wersji próbnej origin w Chrome.

Interfejs API nie jest obsługiwany przez inne przeglądarki, ChromeOS ani systemy operacyjne mobilne (takie jak Android czy iOS). Nawet jeśli przeglądarka obsługuje ten interfejs API, może nie być ona dostępna z powodu braku spełnienia wymagań sprzętowych.

Aby zaspokoić potrzeby użytkowników, niezależnie od używanej przez nich platformy lub sprzętu, możesz skonfigurować przełączenie na chmurę za pomocą logiki AI w Firebase.

Tworzenie hybrydowych rozwiązań AI

Wbudowana AI zapewnia wiele korzyści, w tym:

  • 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 offline: użytkownicy mogą korzystać z funkcji AI nawet wtedy, gdy są offline lub mają przerwane połączenie z internetem.

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

Pierwsze kroki z Firebase

Najpierw utwórz projekt Firebase i zarejestruj aplikację internetową. Następnie kontynuuj konfigurowanie pakietu SDK Firebase JavaScript zgodnie z dokumentacją Firebase.

Instalowanie pakietu SDK

Ten proces wykorzystuje npm i wymaga użycia narzędzi do tworzenia pakietów modułów lub narzędzia do tworzenia frameworków JavaScript. Firebase AI Logic jest zoptymalizowany pod kątem współpracy z modułami zbiorczymi w celu usuwania nieużywanego kodu (tree-shaking) i zmniejszania rozmiaru pakietu SDK.

npm install firebase@eap-ai-hybridinference 

Korzystanie z Firebase AI Logic

Po zainstalowaniu Firebase zainicjuj pakiet SDK, aby zacząć korzystać z usług Firebase.

Konfigurowanie i inicjowanie aplikacji Firebase

Projekt Firebase może zawierać kilka aplikacji Firebase. Aplikacja Firebase to obiekt podobny do kontenera, który przechowuje wspólną konfigurację i udostępnia uwierzytelnianie w różnych usługach Firebase.

Aplikacja Firebase stanowi część chmurową hybrydowej funkcji AI.

import { initializeApp } from 'firebase/app'; import { getAI, getGenerativeModel } from 'firebase/vertexai';  // TODO: Replace the following with your app's Firebase project configuration. const firebaseConfig = {   apiKey: '',   authDomain: '',   projectId: '',   storageBucket: '',   messagingSenderId: '',   appId: '', };  // Initialize `FirebaseApp`. const firebaseApp = initializeApp(firebaseConfig); 

Prośba o model

Po zainicjowaniu możesz zapytać model za pomocą tekstu lub danych multimodalnych.

Prompty tekstowe

Instrukcje dla modelu możesz podać w zwykłym tekście. Możesz na przykład poprosić model o opowiedzenie dowcipu.

Aby mieć pewność, że wbudowana AI jest używana, gdy jest dostępna w funkcji getGenerativeModel, ustaw wartość 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 FileDataPart w Firebase. Można 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

Wypróbuj demo logiki AI w Firebase 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 demo korzysta z Prompt API i Gemini Nano. Wystąpiły tylko 3 żądania dotyczące dokumentu głównego, pliku JavaScript i pliku CSS.

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

W innej przeglądarce lub systemie operacyjnym bez wbudowanego wsparcia dla AI wysyłana jest dodatkowa prośba do punktu końcowego Firebase:https://firebasevertexai.googleapis.com.

Logika sztucznej inteligencji Firebase działająca w Safari wysyłająca żądanie do serwerów Firebase.

Udział w badaniu i przesyłanie opinii

Firebase AI Logic może być świetnym rozwiązaniem do integracji funkcji AI z aplikacjami internetowymi. Dzięki temu, że SDK zapewnia alternatywne rozwiązanie w chmurze, gdy interfejs Prompt API jest niedostępny, zapewnia większą dostępność i większą niezawodność funkcji AI.

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