Crea experiencias híbridas en apps de Apple con modelos integrados en el dispositivo y alojados en la nube

Puedes compilar apps y funciones de Apple potenciadas por IA con inferencia híbrida usando Firebase AI Logic. La inferencia híbrida permite ejecutar la inferencia con modelos integrados en el dispositivo (específicamente, el framework de Foundation Models de Apple) cuando está disponible y, de lo contrario, recurrir sin problemas a los modelos de Google alojados en la nube (y viceversa).

En esta página, se describe cómo comenzar a usar el SDK del cliente, además de mostrar opciones y capacidades de configuración adicionales, como la temperatura.

Ten en cuenta que la inferencia integrada en el dispositivo a través de Firebase AI Logic es compatible con las apps de Apple que usan el SDK de Firebase AI Logic v12.13.0 o versiones posteriores y que se ejecutan en dispositivos con Apple Intelligence habilitado. Se rige por los requisitos de uso aceptable del framework de Foundation Models de Apple.

Casos de uso recomendados

  • El uso de un modelo integrado en el dispositivo para la inferencia ofrece lo siguiente:

    • Mejora la privacidad
    • Inferencia sin costo
    • Funcionalidad sin conexión
  • El uso de la funcionalidad híbrida ofrece lo siguiente:

    • Proporciona a todos los clientes una experiencia de app similar, independientemente del dispositivo del usuario final.
    • Mejora la disponibilidad de las funciones potenciadas por IA generativa, independientemente de la conectividad a Internet, las limitaciones de cuota o las capacidades del dispositivo.

Funciones, APIs y dispositivos compatibles

Antes de implementar la inferencia híbrida e integrada en el dispositivo con Firebase AI Logic, revisa esta sección para comprender qué es compatible con las apps de Apple.

Funciones y capacidades compatibles para la inferencia integrada en el dispositivo

La inferencia integrada en el dispositivo solo admite la generación de texto, específicamente las siguientes capacidades de generación de texto:

Asegúrate de revisar la lista detallada de inferencia híbrida o integrado en el dispositivo que aún no es compatible en la parte inferior de esta página.

APIs y dispositivos compatibles

Comenzar

Asegúrate de haber revisado la sección anterior en la que se describen las funciones, las APIs y los dispositivos compatibles.

En estos pasos para comenzar, se describe la configuración general requerida para cualquier solicitud de instrucción compatible que desees enviar.

Paso 1: Configura un proyecto de Firebase y conecta tu app a Firebase

  1. Accede a la consola de Firebase, y selecciona tu proyecto de Firebase.

  2. En la consola Firebase, ve a Servicios de IA > AI Logic.

  3. Haz clic en Comenzar para iniciar un flujo de trabajo guiado que te ayudará a configurar las APIs necesarias y los recursos para tu proyecto.

  4. Si se te solicita, sigue las instrucciones en pantalla para registrar tu app y agregar la configuración de Firebase a la app.

  5. Cuando se te solicite elegir un "proveedor de la API de Gemini", te recomendamos que selecciones la API para desarrolladores de Gemini, que te permite comenzar rápidamente sin costo.

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

  6. Continúa en el flujo de trabajo para configurar las APIs necesarias 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 Firebase App Check para AI Logic, que es un servicio fundamental para proteger la Gemini API cuando se accede directamente desde tu app. Como parte de los primeros pasos (consulta los pasos más adelante en esta guía), deberás configurar el App Check proveedor de depuración para el desarrollo local cuando se aplique la App Check.

  7. Continúa con el siguiente paso de esta guía para agregar los SDKs necesarios a tu app.

Paso 2: Agrega los SDKs necesarios

Usa Swift Package Manager (SPM) para instalar y administrar las dependencias de Xcode. La compatibilidad híbrida solo está disponible cuando se usa SPM.

La biblioteca Firebase AI Logic proporciona acceso a las APIs para interactuar con modelos generativos. La biblioteca se incluye como parte del SDK de Firebase para plataformas de Apple (firebase-ios-sdk).

Si ya usas Firebase, asegúrate de que tu paquete de Firebase sea la versión 12.13.0 o una posterior.

  1. En Xcode, con tu proyecto de app abierto, navega a File > Add Package Dependencies.

  2. Cuando se te solicite, agrega el repositorio del SDK de Firebase para plataformas de Apple:

    https://github.com/firebase/firebase-ios-sdk
    
  3. Selecciona la versión más reciente del SDK.

  4. Selecciona las bibliotecas FirebaseAILogic y FirebaseAppCheck.

Cuando termines, Xcode comenzará a resolver y descargar automáticamente tus dependencias en segundo plano.

Paso 3: Configura el proveedor de depuración App Check para el desarrollo local

A partir de principios de julio de 2026, como parte del flujo de trabajo de configuración guiada para AI Logic en la consola, Firebase App Check se aplicará automáticamente para proteger la Gemini API. Para el desarrollo local, debes configurar el App Check proveedor de depuración para omitir la certificación y, al mismo tiempo, mantener la aplicación de App Check.

A continuación, se explica cómo usar el proveedor de depuración mientras ejecutas la app en un simulador de manera interactiva (por ejemplo, durante el desarrollo local):

  1. En tu proyecto de Xcode, importa FirebaseAppCheck e inicializa App Check con la fábrica de proveedores de depuración antes de configurar Firebase.

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. Obtén tu token de depuración:

    1. Inicia la app en el simulador o en el dispositivo de prueba.

    2. Abre la consola de Xcode y busca el token de depuración App Check. Por ejemplo:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Copia el token (por ejemplo, 123a4567-b89c-12d3-e456-789012345678).

  3. Registra tu token de depuración con App Check:

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

    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 App Check oficial.

Paso 4: Inicializa el servicio y crea una instancia de sesión del modelo

Haz clic en tu proveedor de Gemini API para ver el contenido específico del proveedor y el código en esta página.

Configura lo siguiente antes de enviar una solicitud de instrucción al modelo.

  1. Inicializa el servicio para el proveedor que elegiste.Gemini API

  2. Crea una instancia de GenerativeModelSession con un HybridModel.

  3. Configura los modelos primary y secondary según tus preferencias. Puedes establecer el orden de la inferencia intentada:

    • Intenta primero la inferencia en el dispositivo, pero permite la alternativa a la nube: establece primary en un modelo "del sistema" y secondary en un modelo de la nube.

    • Intenta primero la inferencia en la nube, pero permite la alternativa en el dispositivo: establece primary en un modelo de la nube y secondary en un modelo "del sistema".

    Ten en cuenta que el SDK admite configurar solo un model, lo que significa que el SDK solo intentará la inferencia integrado en el dispositivo o en la nube. Sin embargo, para una experiencia híbrida, debes crear un HybridModel y establecer los modelos primary y secondary.

    Obtén más información sobre el comportamiento de los "modos de inferencia" (el orden de la inferencia intentada inferencia) en Opciones de configuración.

En el siguiente ejemplo, se muestra cómo intentar primero la inferencia integrada en el dispositivo, pero permitir la alternativa al modelo alojado en la nube:

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Initialize a cloud model that supports your use case
let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME")
// Initialize an on-device model that supports your use case
let systemModel = FirebaseAI.SystemLanguageModel.default

// Create a Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
  primary: systemModel,
  secondary: cloudModel
)

// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
  model: hybridModel,
)

Paso 5: Envía una solicitud de instrucción a un modelo

En esta sección se muestra cómo realizar las siguientes acciones:

Generar texto a partir de entradas de solo texto

Antes de probar este ejemplo, asegúrate de haber completado la Comienza sección de esta guía.

Para generar texto a partir de una instrucción que contiene texto, usa respond(to:) de la siguiente manera:

// Imports + initialization of Gemini API backend service + creation of model session

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)

Transmitir texto a partir de entradas de solo texto

Antes de probar este ejemplo, asegúrate de haber completado la Comienza sección de esta guía.

Puedes lograr interacciones más rápidas si no esperas el resultado completo de la generación del modelo y, en su lugar, usas la transmisión para controlar los resultados parciales. Para transmitir texto generado a partir de una instrucción que contiene texto, usa streamResponse(to:) de la siguiente manera:

// Imports + initialization of Gemini API backend service + creation of model session

// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."

// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
  print(snapshot.content)
}

¿Qué más puedes hacer?

Puedes usar varias opciones y capacidades de configuración adicionales para tus experiencias híbridas:

Funciones que aún no son compatibles con la inferencia híbrida o integrada en el dispositivo

Como lanzamiento experimental, no se admiten todas las capacidades de Firebase AI Logic ni de los modelos alojados en la nube.

  • Las siguientes opciones no son compatibles con las implementaciones híbridas o en el dispositivo implementaciones: modelos de Imagen, la API de Gemini Live y plantillas de instrucciones. Además, no se debe confiar en los tokens de recuento porque el recuento diferirá entre los modelos alojados en la nube y en el dispositivo, por lo que no hay una alternativa intuitiva.

  • Las siguientes funciones aún no son compatibles con la inferencia integrada en el dispositivo. Si deseas usar alguna de estas funciones, te recomendamos que uses solo un modelo alojado en la nube para obtener una experiencia más coherente.

    • Generar texto a partir de entradas multimodales, como imágenes, audio, video y documentos (PDFs)

    • Generar contenido multimedia, como imágenes, audio o video

    • Enviar solicitudes que superen los 4,096 tokens (o aproximadamente 3,000 palabras en inglés)

    • Proporcionar al modelo integrado en el dispositivo herramientas integradas para ayudarlo a generar su respuesta (como la ejecución de código, el contexto de URL y la Fundamentación con la Búsqueda de Google)

  • La supervisión de IA en la consola de Firebase no muestra ningún dato para la inferencia en el dispositivo (incluidos los registros en el dispositivo). Sin embargo, cualquier inferencia que use un modelo alojado en la nube se puede supervisar como otra inferencia a través de Firebase AI Logic.

Limitaciones adicionales

Además de lo anterior, la inferencia integrada en el dispositivo tiene las siguientes limitaciones:


Envía comentarios sobre tu experiencia con Firebase AI Logic