Prompting con l'AI ibrida con la logica AI di Firebase

Pubblicata: 20 maggio 2025

L'API Prompt integrata è disponibile per le estensioni di Chrome su Windows, macOS e Linux a partire dalla versione stabile 138 di Chrome. L'API sarà disponibile a breve in una prova dell'origine in Chrome.

L'API non è supportata da altri browser, ChromeOS o sistemi operativi mobile (come Android o iOS). Anche se il browser supporta questa API, l'esecuzione potrebbe non essere disponibile a causa di requisiti hardware non soddisfatti.

Per soddisfare le esigenze degli utenti, indipendentemente dalla piattaforma o dall'hardware che utilizzano, puoi configurare un piano di riserva sul cloud con Firebase AI Logic.

Creare un'esperienza di IA ibrida

L'IA integrata offre una serie di vantaggi, tra cui:

  • Elaborazione locale di dati sensibili: se utilizzi dati sensibili, puoi offrire funzionalità di IA agli utenti con crittografia end-to-end.
  • Utilizzo dell'AI offline:gli utenti possono accedere alle funzionalità di IA anche quando sono offline o la connettività è scaduta

Sebbene questi vantaggi non si applichino alle applicazioni cloud, puoi garantire un'esperienza senza interruzioni a chi non può accedere all'AI integrata.

Inizia a utilizzare Firebase

Innanzitutto, crea un progetto Firebase e registra la tua app web. Prosegui la configurazione dell'SDK JavaScript di Firebase con la documentazione di Firebase.

Installa l'SDK

Questo flusso di lavoro utilizza npm e richiede strumenti di bundling dei moduli o del framework JavaScript. La logica di Firebase AI è ottimizzata per funzionare con i bundler dei moduli al fine di eliminare il codice inutilizzato (tree-shaking) e ridurre le dimensioni dell'SDK.

npm install firebase@eap-ai-hybridinference

Utilizzare Firebase AI Logic

Una volta installato Firebase, devi inizializzare l'SDK per iniziare a utilizzare i servizi Firebase.

Configura e inizializza l'app Firebase

Un progetto Firebase può avere più app Firebase. Un'app Firebase è un oggetto simile a un contenitore che memorizza la configurazione comune e condivide l'autenticazione tra i servizi Firebase.

La tua app Firebase funge da parte cloud della funzionalità di IA ibrida.

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

Chiedi al modello

Una volta inizializzato, puoi chiedere al modello di fornire un input di testo o multimodale.

Prompt di testo

Puoi utilizzare il testo normale per le istruzioni al modello. Ad esempio, potresti chiedere al modello di raccontarti una barzelletta.

Per assicurarti che l'IA integrata venga utilizzata, se disponibile, nella funzione getGenerativeModel, imposta mode su 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);

Prompt multimodali

Oltre al testo, puoi anche usare immagini o audio. Potresti chiedere al modello di descrivere i contenuti di un'immagine o trascrivere un file audio.

Le immagini devono essere passate come stringa con codifica base64 come oggetto FileDataPart Firebase, che puoi fare con la funzione di assistenza 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

Visita la demo di Firebase AI Logic su diversi dispositivi e browser. Puoi vedere come la risposta del modello proviene dal modello di IA integrato o dal cloud.

Quando è installata su hardware supportato in Chrome, la demo utilizza l'API Prompt e Gemini Nano. Vengono effettuate solo tre richieste per il documento principale, il file JavaScript e il file CSS.

La logica AI di Firebase in esecuzione in Chrome, che utilizza le API di IA integrate.

Quando utilizzi un altro browser o un sistema operativo senza supporto dell'AI integrato, viene inviata un'altra richiesta all'endpoint Firebase, https://firebasevertexai.googleapis.com.

La logica di Firebase AI in esecuzione in Safari, che effettua una richiesta ai server Firebase.

Partecipare e condividere feedback

Firebase AI Logic può essere un'ottima soluzione per integrare le funzionalità di IA nelle tue app web. Fornendo un piano di riserva per il cloud quando l'API Prompt non è disponibile, l'SDK garantisce un'accessibilità e un'affidabilità più ampie delle funzionalità di IA.

Ricorda che le applicazioni cloud creano nuove aspettative in termini di privacy e funzionalità, pertanto è importante informare gli utenti su dove vengono elaborati i loro dati.