Hybride AI-prompt met Firebase AI Logic, hybride AI-prompt met Firebase AI Logic, hybride AI-prompt met Firebase AI Logic, hybride AI-prompt met Firebase AI Logic

Gepubliceerd: 20 mei 2025

Om aan de behoeften van uw gebruikers te voldoen, ongeacht het platform of de hardware die ze gebruiken, kunt u met Firebase AI Logic een terugvaloptie naar de cloud instellen voor de ingebouwde Prompt API .

Ontwikkel een hybride AI-ervaring.

De ingebouwde AI biedt een aantal voordelen , met name:

  • Lokale verwerking van gevoelige gegevens: Als u met gevoelige gegevens werkt, kunt u AI-functies aan gebruikers aanbieden met end-to-end-encryptie.
  • Offline AI-gebruik: Uw gebruikers hebben toegang tot AI-functies, zelfs wanneer ze offline zijn of een slechte internetverbinding hebben.

Hoewel deze voordelen niet gelden voor cloudapplicaties, kunt u wel een naadloze ervaring garanderen voor degenen die geen toegang hebben tot ingebouwde AI.

Ga aan de slag met Firebase

  1. Maak een Firebase-project aan en registreer je webapplicatie.
  2. Lees de Firebase JavaScript SDK-documentatie om verder te gaan met de configuratie van uw webapplicatie.

Firebase-projecten creëren een Google Cloud-project met Firebase-specifieke configuraties en services. Lees meer over Google Cloud en Firebase .

Installeer de SDK

Deze workflow maakt gebruik van npm en vereist modulebundlers of JavaScript-frameworktools. Firebase AI Logic is geoptimaliseerd voor gebruik met modulebundlers om ongebruikte code te elimineren en de SDK-grootte te verkleinen.

npm install firebase

Nadat Firebase is geïnstalleerd, initialiseer je het in je applicatie .

Gebruik Firebase AI Logic

Nadat Firebase is geïnstalleerd en geïnitialiseerd, kies je de Gemini Developer API of de Gemini API, initialiseer je deze en maak je een instantie aan .

Na de initialisatie kunt u het model aansturen met tekstuele of multimodale invoer.

Tekstaanwijzingen

Je kunt platte tekst gebruiken voor je instructies aan het model. Je zou het model bijvoorbeeld kunnen vragen om een ​​grap te vertellen.

Je hebt verschillende opties voor hoe het verzoek wordt doorgestuurd:

  • Gebruik standaard de ingebouwde AI wanneer deze beschikbaar is door de mode in de functie getGenerativeModel() in te stellen op 'prefer_on_device' . Als het ingebouwde model niet beschikbaar is, zal het verzoek naadloos terugvallen op het cloudmodel (indien u online bent).

  • Gebruik standaard het cloudmodel wanneer u online bent door de mode in de functie getGenerativeModel() in te stellen op 'prefer_in_cloud' . Als u offline bent, zal het verzoek naadloos terugvallen op de ingebouwde AI wanneer deze beschikbaar is.

// 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);

Multimodale prompts

Je kunt naast tekst ook aanwijzingen geven met afbeeldingen of audio. Je kunt het model bijvoorbeeld vragen de inhoud van een afbeelding te beschrijven of een audiobestand te transcriberen.

Afbeeldingen moeten als base64-gecodeerde tekenreeks worden doorgegeven als een Firebase FileDataPart object, wat je kunt doen met de hulpfunctie 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);
  });

Demo

Bekijk de Firebase AI Logic-demo op verschillende apparaten en browsers. Je kunt zien hoe de modelrespons afkomstig is van het ingebouwde AI-model of uit de cloud.

Wanneer Chrome ondersteunde hardware gebruikt, maakt de demo gebruik van de Prompt API en Gemini Nano. Er worden slechts drie verzoeken gedaan: voor het hoofddocument, het JavaScript-bestand en het CSS-bestand.

Firebase AI-logica die in Chrome draait en gebruikmaakt van de ingebouwde AI-API's.

Wanneer een andere browser of een besturingssysteem zonder ingebouwde AI-ondersteuning wordt gebruikt, wordt er een extra verzoek naar het Firebase-eindpunt gestuurd: https://firebasevertexai.googleapis.com .

Firebase AI-logica die in Safari draait, doet een verzoek aan Firebase-servers.

Doe mee en deel je feedback.

Firebase AI Logic kan een uitstekende optie zijn om AI-functionaliteiten in uw webapplicaties te integreren. Door een terugvaloptie naar de cloud te bieden wanneer de Prompt API niet beschikbaar is, zorgt de SDK voor een bredere toegankelijkheid en betrouwbaarheid van AI-functies.

Houd er rekening mee dat cloudapplicaties nieuwe verwachtingen scheppen ten aanzien van privacy en functionaliteit. Het is daarom belangrijk om uw gebruikers te informeren over waar hun gegevens worden verwerkt.