Sugerencias de IA híbrida con Firebase AI Logic

Publicado el 20 de mayo de 2025

Para satisfacer las necesidades de los usuarios, independientemente de la plataforma o el hardware que usen, puedes configurar un resguardo en la nube con Firebase AI Logic para la API de Prompt integrada.

Crea una experiencia de IA híbrida

La IA integrada ofrece una gran cantidad de beneficios, entre los que se destacan los siguientes:

  • Procesamiento local de datos sensibles: Si trabajas con datos sensibles, puedes ofrecer funciones basadas en IA a los usuarios con encriptación de extremo a extremo.
  • Uso de la IA sin conexión: Tus usuarios pueden acceder a las funciones basadas en IA, incluso cuando no tienen conexión o esta es intermitente.

Si bien estos beneficios no se aplican a las aplicaciones en la nube, puedes garantizar una experiencia fluida para quienes no pueden acceder a la IA integrada.

Comienza a usar Firebase

Aprende a crear un proyecto de Firebase y agregar Firebase a tu app web.

Los proyectos de Firebase son proyectos de Google Cloud con configuraciones y servicios específicos de Firebase. Obtén más información sobre Google Cloud y Firebase.

Cómo instalar el SDK

Este flujo de trabajo usa npm y requiere agrupadores de módulos o herramientas del framework de JavaScript. Firebase AI Logic está optimizado para trabajar con agrupadores de módulos y, así, eliminar el código que no se usa y reducir el tamaño del SDK.

  1. Instala el SDK de Firebase JS:

    npm install firebase
    
  2. Inicializa Firebase en tu aplicación.

Configura y protege Firebase AI Logic

  1. En Firebase console, ve a AI Services > AI Logic.

  2. Haz clic en Comenzar para iniciar el flujo de trabajo de configuración.

  3. Cuando se te solicite que elijas un "proveedor de la API de Gemini", te recomendamos que selecciones la API de Gemini Developer, que te permite comenzar rápidamente sin costo.

    En cualquier momento posterior, siempre puedes configurar la API de Gemini de Vertex AI (y su requisito de facturación).

  4. Continúa con el flujo de trabajo de la consola para configurar las APIs requeridas y los servicios asociados para Firebase AI Logic.

    A partir de principios de julio de 2026, esta etapa del flujo de trabajo aplicará automáticamente la Verificación de aplicaciones de Firebase para AI Logic, que es un servicio fundamental para proteger la API de Gemini cuando se accede a ella directamente desde tu app. Como parte de los primeros pasos (consulta los pasos más adelante en esta guía), deberás configurar el proveedor de depuración de la Verificación de aplicaciones para el desarrollo local cuando se aplique la Verificación de aplicaciones.

  5. Continúa con las siguientes secciones de esta guía para configurar el proveedor de depuración de App Check para el desarrollo local y, luego, envía tu primera solicitud a la API de Gemini.

Configura el proveedor de depuración de Verificación de aplicaciones para el desarrollo local

A continuación, se explica cómo usar el proveedor de depuración mientras ejecutas la app desde localhost de forma interactiva (por ejemplo, durante el desarrollo local):

  1. En la compilación de depuración, habilita el modo correspondiente estableciendo self.FIREBASE_APPCHECK_DEBUG_TOKEN en true antes de inicializar la Verificación de aplicaciones. Por ejemplo:

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    
  2. Visita la app web de forma local y abre las herramientas para desarrolladores del navegador. En la consola de depuración, verás un token de depuración:

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    
  3. Registra tu token de depuración en la Verificación de aplicaciones:

    1. En Firebase console, ve a la pestaña Seguridad > Verificación de aplicaciones > Aplicaciones.

    2. Busca tu app, haz clic en el menú ampliado () y, luego, selecciona Administrar tokens de depuración.

    3. Sigue las instrucciones en pantalla para registrar tu token de depuración.

Para obtener detalles sobre el proveedor de depuración (incluido cómo obtener un token de depuración nuevo), consulta la documentación oficial de App Check.

Envía una solicitud a la API de Gemini

  1. Inicializa y crea una instancia.

  2. Indicarle al modelo una instrucción con entrada multimodal o de texto Consulta los ejemplos en las siguientes subsecciones de esta guía.

Instrucciones de texto

Puedes usar texto sin formato para darle instrucciones al modelo. Por ejemplo, podrías pedirle al modelo que te cuente un chiste.

Tienes algunas opciones para enrutar la solicitud:

  • Usa la IA integrada de forma predeterminada cuando esté disponible. Para ello, establece mode en 'prefer_on_device' en la función getGenerativeModel(). Si el modelo integrado no está disponible, la solicitud recurrirá sin problemas al modelo en la nube (si estás en línea).

  • Usa el modelo en la nube de forma predeterminada cuando estés en línea. Para ello, configura mode como 'prefer_in_cloud' en la función getGenerativeModel(). Si no tienes conexión, la solicitud recurrirá sin problemas a la IA integrada cuando esté disponible.

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

Instrucciones multimodales

También puedes usar imágenes o audio, además de texto, para darle instrucciones. Podrías indicarle al modelo que describa el contenido de una imagen o que transcriba un archivo de audio.

Las imágenes deben pasarse como una cadena codificada en Base64 como un objeto FileDataPart de Firebase, lo que puedes hacer con la función de ayuda 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);
  });

Demostración

Visita la demostración de Firebase AI Logic en diferentes dispositivos y navegadores. Puedes ver cómo la respuesta del modelo proviene del modelo de IA integrado o de la nube.

Cuando se ejecuta en hardware compatible en Chrome, la demostración usa la API de Prompt y Gemini Nano. Solo se realizan 3 solicitudes para el documento principal, el archivo JavaScript y el archivo CSS.

Firebase AI Logic se ejecuta en Chrome y usa las APIs de IA integradas.

Cuando se usa otro navegador o un sistema operativo sin asistencia de IA integrada, se realiza una solicitud adicional al extremo de Firebase, https://firebasevertexai.googleapis.com.

Firebase AI Logic se ejecuta en Safari y realiza una solicitud a los servidores de Firebase.

Participa y comparte tus comentarios

Firebase AI Logic puede ser una excelente opción para integrar capacidades de IA en tus apps web. Al proporcionar una alternativa en la nube cuando la API de Prompt no está disponible, el SDK garantiza una mayor accesibilidad y confiabilidad de las funciones basadas en IA.

Recuerda que las aplicaciones en la nube generan nuevas expectativas de privacidad y funcionalidad, por lo que es importante que informes a los usuarios dónde se procesan sus datos.