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 modelos de base de Apple) cuando están disponibles y recurrir sin problemas a los modelos de Google alojados en la nube en otros casos (y viceversa).
En esta página, se describe cómo comenzar a usar el SDK del cliente y se muestran 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 modelos de base de Apple.
Casos de uso recomendados
Usar un modelo integrado en el dispositivo para la inferencia ofrece las siguientes ventajas:
- Privacidad mejorada
- Inferencia sin costo
- Funcionalidad sin conexión
El uso de la funcionalidad híbrida ofrece lo siguiente:
- Brindar a todos los clientes una experiencia similar en la app, independientemente del dispositivo del usuario final
- Mejorar 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é se admite en las apps para Apple.
Funciones y capacidades compatibles con 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 la inferencia híbrida o integrado en el dispositivo que aún no se admite en la parte inferior de esta página.
APIs y dispositivos compatibles
La inferencia en la nube usa el proveedor de Gemini API que elijas (Gemini Developer API o Vertex AI Gemini API).
La inferencia integrada en el dispositivo usa el framework de modelos de base de Apple, que solo está disponible en dispositivos con Apple Intelligence habilitado. El modelo integrado en el dispositivo se descarga automáticamente cuando se habilita Apple Intelligence.
Comenzar
Asegúrate de haber revisado la sección anterior en la que se describen las capacidades, las APIs y los dispositivos compatibles.
En estos pasos para comenzar, se describe la configuración general necesaria para cualquier solicitud de instrucciones admitida que desees enviar.
Paso 1: Configura un proyecto de Firebase y conecta tu app a Firebase
Accede a la consola de Firebase y, luego, selecciona tu proyecto de Firebase.
En la consola de Firebase, ve a Servicios de IA > Lógica de IA.
Haz clic en Comenzar para iniciar un flujo de trabajo guiado que te ayudará a configurar las APIs requeridas y los recursos para tu proyecto.
Configura tu proyecto para usar un proveedor de "Gemini API".
Te recomendamos que comiences con Gemini Developer API. En cualquier momento, puedes configurar el Vertex AI Gemini API (y su requisito de facturación).
En el caso de Gemini Developer API, la consola habilitará las APIs necesarias y creará una clave de API de Gemini en tu proyecto.
No agregues esta clave de API de Gemini a la base de código de tu app. Obtén más información.Si se te solicita en el flujo de trabajo de la consola, sigue las instrucciones en pantalla para registrar tu app y conectarla a Firebase.
Continúa con el siguiente paso de esta guía para agregar el SDK a tu app.
Paso 2: Agrega los SDKs requeridos
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 posterior.
En Xcode, con tu proyecto de app abierto, navega a File > Add Package Dependencies.
Cuando se te solicite, agrega el repositorio del SDK de Firebase para plataformas de Apple:
https://github.com/firebase/firebase-ios-sdkSelecciona la versión más reciente del SDK.
Selecciona la biblioteca
FirebaseAILogic.
Cuando termines, Xcode comenzará a resolver y descargar automáticamente tus dependencias en segundo plano.
Paso 3: Inicializa el servicio y crea una instancia de sesión del modelo
|
Haz clic en tu proveedor de Gemini API para ver el contenido y el código específicos del proveedor en esta página. |
Configura lo siguiente antes de enviar una solicitud de instrucción al modelo.
Inicializa el servicio para el proveedor de Gemini API que elegiste.
Crea una instancia de
GenerativeModelSessioncon unHybridModel.Establece los modelos
primaryysecondarysegún tus preferencias. Puedes establecer el orden de la inferencia intentada:Intenta primero la inferencia integrada en el dispositivo, pero permite la reversión a la nube: Establece
primaryen un modelo "del sistema" ysecondaryen un modelo en la nube.Intenta primero la inferencia en la nube, pero permite la reversión a integrado en el dispositivo: Establece
primaryen un modelo en la nube ysecondaryen un modelo "del sistema".
Ten en cuenta que el SDK admite la configuración de 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 unHybridModely establecer los modelosprimaryysecondary.Obtén más información sobre el comportamiento de los "modos de inferencia" (el orden de la inferencia intentada) en Opciones de configuración.
En el siguiente ejemplo, se muestra cómo intentar primero la inferencia integrado en el dispositivo, pero permitir la reversión 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 4: Envía una solicitud de instrucción a un modelo
En esta sección, se muestra cómo hacer lo siguiente:
- Genera texto a partir de una entrada de solo texto
- Cómo transmitir texto desde una entrada de solo texto
Generar texto a partir de entrada de solo texto
| Antes de probar este ejemplo, asegúrate de haber completado la sección Comienza ahora 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)
Transmite texto desde una entrada de solo texto
| Antes de probar este ejemplo, asegúrate de haber completado la sección Comienza ahora 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 cambio, 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:
Verifica si el modelo integrado en el dispositivo está disponible.
Determina si se usó la inferencia integrado en el dispositivo o en la nube.
Usa la configuración del modelo para controlar las respuestas (como la temperatura).
Funciones que aún no son compatibles con la inferencia híbrida o integrada en el dispositivo
Como se trata de una versión 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 integradas en el dispositivo: los modelos de Imagen, la API de Gemini Live y las plantillas de instrucciones. Además, no se debe confiar en el recuento de tokens, ya que este diferirá entre los modelos alojados en la nube y los modelos integrados 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 solo uses 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 ejecución de código, contexto de URL y fundamentación con la Búsqueda de Google)
La supervisión de la IA en la consola de Firebase no muestra ningún dato sobre la inferencia integrado en el dispositivo (incluidos los registros del dispositivo). Sin embargo, cualquier inferencia que use un modelo alojado en la nube se puede supervisar como cualquier 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:
El usuario final de tu app debe usar un dispositivo con Apple Intelligence habilitado.
Tu app puede ejecutar la inferencia integrado en el dispositivo solo cuando está en primer plano.
Enviar comentarios sobre tu experiencia con Firebase AI Logic