Cuando llamas a Gemini API desde tu app con un SDK de Vertex AI in Firebase, tu solicitud contiene una serie de parámetros que controlan las respuestas de la IA generativa. Por lo general, incluyen el nombre del modelo, la configuración de generación de modelos (tokens máximos, temperatura, etc.), la configuración de seguridad, las instrucciones del sistema y los datos de instrucciones.
En la mayoría de los casos, querrás cambiarlos según sea necesario o a pedido para una serie de situaciones:
- Actualiza tu modelo de IA generativa sin lanzar una app nueva. Puedes actualizar a versiones de modelos más recientes y estables antes de que las versiones anteriores se retiren, cambiar a modelos de menor costo o mayor rendimiento según las necesidades y los atributos de tus usuarios, o implementar de forma condicional los modelos más recientes y mejores en segmentos de usuarios específicos (como verificadores beta).
- Establece la ubicación desde la que accedes al modelo para que esté más cerca de tus usuarios.
- Realiza pruebas A/B de diferentes instrucciones y mensajes del sistema y, luego, implementa de forma gradual los valores del experimento ganador para tus usuarios.
- Usa marcas de función para ocultar o exponer rápidamente las funciones potenciadas por IA generativa en tu app.
Firebase Remote Config hace todo esto y mucho más, lo que te permite actualizar los valores de los parámetros según sea necesario y de forma condicional para instancias de apps que coincidan con las características que estableciste en Firebase console, sin lanzar una versión nueva de la app.
En esta guía de solución, se proporcionan casos de uso recomendados específicos y se describe cómo agregar Remote Config a tu app de IA generativa.
Ir a la implementación de código
¿Por qué usar Firebase Remote Config con tu app?
Firebase Remote Config te permite ajustar de forma dinámica el comportamiento de tu app sin necesidad de actualizarla. Esto es especialmente potente para las apps que usan IA generativa, en las que la iteración rápida y el ajuste fino son fundamentales.
Casos de uso esenciales para Remote Config con apps de IA generativa
Recomendamos usar Remote Config con Vertex AI in Firebase para los siguientes casos de uso esenciales:
- Actualiza a la versión más reciente del modelo sin actualizar la app: Usa los parámetros de Remote Config para cambiar el nombre del modelo según sea necesario, de modo que puedas actualizar a la versión más reciente de tu modelo de Gemini preferido en cuanto esté disponible.
- Actualiza las instrucciones del sistema y la configuración de seguridad sin actualizar la app: Almacena las instrucciones del sistema y la configuración de seguridad dentro de los parámetros de Remote Config para asegurarte de poder cambiarlos a pedido si descubres problemas después de la implementación.
- Reduce el riesgo y aplica la seguridad de la IA: Usa los lanzamientos de Remote Config para lanzar cambios de IA generativa de forma segura y gradual a tus usuarios de iOS y Android.
Casos de uso avanzados y recomendados para Remote Config con apps de IA generativa
Después de instrumentar tu app con Remote Config y Google Analytics, puedes explorar casos de uso avanzados:
- Establece la ubicación según la ubicación del cliente: Usa condiciones de Remote Config para configurar la ubicación del modelo según la ubicación detectada del cliente.
- Experimenta con diferentes modelos: Prueba y cambia rápidamente entre varios modelos de IA generativa, o incluso implementa diferentes modelos en diferentes segmentos de usuarios, para encontrar el que mejor se adapte a tu caso de uso específico.
- Optimiza el rendimiento del modelo: Ajusta con precisión los parámetros del modelo, como el mensaje del sistema, la cantidad máxima de tokens de salida, la temperatura y otros parámetros de configuración.
Usa diferentes instrucciones del sistema, mensajes y configuraciones de modelos según los atributos del cliente: Cuando usas Remote Config con Google Analytics, puedes crear condiciones según los atributos del cliente o los públicos personalizados y configurar diferentes parámetros según estos atributos.
Por ejemplo, si usas IA generativa para proporcionar asistencia técnica en tu app, te recomendamos que configures instrucciones del sistema específicas para la plataforma de la app para garantizar que se proporcionen instrucciones precisas a los usuarios de Android, iOS y la plataforma web.
Personaliza las experiencias para cada usuario: Usa la personalización de Remote Config para determinar automáticamente la configuración óptima de IA generativa para cada usuario.
Controla los costos: Ajusta de forma remota a qué modelos de IA generativa se llama, con qué frecuencia se usan y configura de forma dinámica los valores máximos de tokens de salida según los públicos de usuarios para reducir los costos innecesarios.
Optimiza la experiencia y los resultados de la app: Usa A/B Testing con Remote Config en tus apps para iOS, Android y Flutter para probar los cambios en los parámetros de IA generativa en distintos segmentos de usuarios y ver cómo afectan a las métricas clave, como la retención y los ingresos.
Cuando instrumentas tu app de IA generativa con Firebase Remote Config, puedes crear aplicaciones potenciadas por IA flexibles, seguras y rentables, a la vez que creas experiencias encantadoras para tus usuarios.
Agrega Firebase Remote Config a tu app
En esta guía de solución, usarás Firebase Remote Config para actualizar de forma dinámica los parámetros de tu app para Android que usan el SDK de Vertex AI in Firebase. Aprenderás a hacer lo siguiente:
- Recupera y activa parámetros, como nombres de modelos e instrucciones del sistema, desde Firebase Remote Config.
- Actualiza tus llamadas a Gemini API para usar los parámetros recuperados de forma dinámica, lo que te permite cambiar entre diferentes modelos o modificar las instrucciones del sistema sin actualizar la app.
- Controla los parámetros de forma remota y ajusta el comportamiento y las capacidades del modelo según sea necesario.
Requisitos previos
En esta guía, se da por sentado que conoces el uso de Xcode para desarrollar apps para plataformas de Apple (como iOS). Antes de comenzar, asegúrate de haber realizado lo siguiente:
Completa la guía de introducción del SDK de Vertex AI in Firebase. Asegúrate de haber hecho lo siguiente:
- Configura un proyecto de Firebase nuevo o existente, incluido el uso del plan de precios Blaze y la habilitación de las APIs requeridas.
- Conecta tu app a Firebase, lo que incluye registrarla y agregar la configuración de Firebase a la app.
- Agrega el SDK y, luego, inicializa el servicio de Vertex AI y el modelo generativo en tu app.
Habilita Google Analytics en tu proyecto y agrega su SDK a tu app (obligatorio para la segmentación condicional, como configurar la ubicación del servicio y del modelo según la ubicación del dispositivo cliente).
Paso 1: Configura los valores de los parámetros en Firebase console
Crea una plantilla de Remote Config del cliente y configura los parámetros y valores para recuperarlos y usarlos en la app.
- Abre tu proyecto de Firebase en Firebase console y, desde el menú de navegación, expande Ejecutar y selecciona Remote Config.
- Asegúrate de que la opción Cliente esté seleccionada en el selector Cliente/Servidor que
se encuentra en la parte superior de la página Remote Config.
- Si es la primera vez que usas plantillas de cliente de Remote Config, haz clic en Crear configuración. Aparecerá el panel Crea tu primer parámetro.
- Si no es la primera vez que usas plantillas de servidor de Remote Config, haz clic en Agregar parámetro.
Define los siguientes parámetros de Remote Config:
Nombre del parámetro Descripción Tipo Valor predeterminado model_name
Nombre del modelo Para obtener listas actualizadas de los nombres de modelos que puedes usar en tu código, consulta Nombres de modelos disponibles. String gemini-2.0-flash
system_instructions
Las instrucciones del sistema son como un "preámbulo" que agregas antes de que el modelo se exponga a otras instrucciones del usuario final para influir en su comportamiento, según necesidades y casos de uso específicos. String You are a helpful assistant who knows everything there is to know about Firebase!
prompt
El mensaje predeterminado que se usará con tu función potenciada por IA generativa. String I am a developer who wants to know more about Firebase!
vertex_location
De manera opcional, controla la ubicación para ejecutar el servicio de Vertex AI y acceder a un modelo. Puedes establecer condiciones para configurar esta opción en función de la ubicación del cliente que detecta Google Analytics. String us-central1
Cuando hayas terminado de agregar los parámetros, haz clic en Publicar cambios. Si esta no es una plantilla de Remote Config nueva, revisa los cambios y vuelve a hacer clic en Publicar cambios.
Paso 2: Agrega y, luego, inicializa Remote Config en tu app
Agrega dependencias de Remote Config y configura Remote Config en tu app. Como parte de la configuración de Vertex AI in Firebase, ya configuraste el SDK de Firebase para tu app, pero también deberás agregar Remote Config.
- En Xcode, con el proyecto abierto, navega a Archivo > Agregar dependencias de paquetes.
- Selecciona firebase-ios-sdk y, luego, haz clic en Agregar paquete.
- En el navegador de proyectos, selecciona tu app > Destinos > tu app.
- En la pestaña General, desplázate hasta Frameworks, bibliotecas y contenido incorporado.
- Haz clic en + y elige FirebaseRemoteConfig. Luego, haz clic en Agregar.
Agrega la importación
FirebaseRemoteConfig
a tu código:import FirebaseRemoteConfig
Dentro de la clase adecuada para tu app (en la app de ejemplo, esto estaría dentro de
VertexAISampleApp
, dentro de la claseAppDelegate
), inicializa Firebase y agrega Remote Config a la lógica principal de la aplicación.Aquí, incluirás Remote Config y el objeto de escucha en tiempo real de Remote Config como importaciones para que la app pueda recuperar valores nuevos en tiempo real y agregar un intervalo de recuperación mínimo:
let remoteConfig = RemoteConfig.remoteConfig() let settings = RemoteConfigSettings() settings.minimumFetchInterval = 3600 remoteConfig.configSettings = settings
En este ejemplo, el intervalo de recuperación predeterminado es de 3,600 segundos, pero te recomendamos que establezcas un intervalo de recuperación mínimo relativamente bajo en tu código durante el desarrollo.
Paso 3: Configura los valores de los parámetros en la app
Debes configurar los valores de los parámetros predeterminados en la app en el objeto Remote Config para que la app funcione antes de que se conecte al backend de Remote Config, si se interrumpe el acceso a la red del cliente o si no se configuran valores en el backend.
- En Firebase console, abre Remote Config.
- En la pestaña Parámetros, abre el menú y selecciona Descargar valores predeterminados.
- Cuando se solicite, habilita .plist para iOS y, luego, haz clic en Descargar archivo.
- Guarda el archivo en el directorio de tu aplicación (si usas la app de ejemplo,
guárdalo en
FirebaseVertexAI/Sample/VertexAISample
). - En Xcode, haz clic con el botón derecho en tu app y selecciona Agregar archivos (si usas la muestra, haz clic con el botón derecho en VertexAISample y selecciona Agregar archivos a "VertexAISample").
- Selecciona remote_config_defaults.plist y, luego, haz clic en Agregar.
Actualiza el código de tu app para hacer referencia al archivo de valores predeterminados:
// Set default values remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
Paso 4: Recupera y activa valores
Después de establecer los valores predeterminados, agrega lo siguiente para recuperar y activar valores:
// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
if let error = error {
print("Error fetching Remote Config: \(error.localizedDescription)")
}
}
Esto debería actualizar el objeto de Remote Config cada vez que se publique una nueva plantilla Remote Config.
Paso 5: Agrega un objeto de escucha de Remote Config en tiempo real
Agrega un objeto de escucha de Remote Config en tiempo real para garantizar que los cambios que realices en la plantilla de Remote Config se propaguen al cliente en cuanto se actualicen.
El siguiente código actualiza el objeto de Remote Config cada vez que cambia el valor de un parámetro.
// Add real-time Remote Config
remoteConfig.addOnConfigUpdateListener { configUpdate, error in
guard let configUpdate = configUpdate, error == nil else {
print("Error listening for config updates: \(error?.localizedDescription ?? "No error available")")
return
}
print("Updated keys: \(configUpdate.updatedKeys)")
remoteConfig.activate { changed, error in
guard error == nil else {
print("Error activating config: \(error?.localizedDescription ?? "No error available")")
return
}
print("Activated config successfully")
}
}
Esto debería actualizar el objeto de Remote Config cada vez que se publique una nueva plantilla Remote Config.
Paso 6: Asigna los valores de Remote Config a las variables de Vertex AI
Ahora que Remote Config está completamente configurado, actualiza tu código para reemplazar los valores hard-coded con los valores provenientes de Remote Config.
Crea valores para almacenar los valores de tu modelo y del mensaje del sistema. En el siguiente código, se muestra cómo obtener la ubicación, el nombre del modelo, las instrucciones del sistema, el mensaje del usuario y la ubicación de Vertex AI desde Remote Config:
// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
let vertexLocation = remoteConfig.configValue(forKey: "vertex_location").stringValue
let vertex = VertexAI.vertexAI(location: vertexLocation)
// Initialize the generative model with a model that supports your use case
// Specify a model that supports system instructions, like a Gemini 1.5 model
let modelName = remoteConfig.configValue(forKey: "model_name").stringValue
let systemInstructions = remoteConfig.configValue(forKey: "system_instructions").stringValue
let model = vertex.generativeModel(
modelName: modelName,
systemInstruction: ModelContent(role: "system", parts: systemInstructions)
)
// Provide a prompt that contains text
let userPrompt = remoteConfig.configValue(forKey: "prompt").stringValue
// To generate text output, call generateContent with the text input
let response = try await model.generateContent(userPrompt)
if let text = response.text {
print(text)
}
Paso 7: Ejecuta la app
Compila y ejecuta tu app, y verifica que funcione. Realiza cambios en la configuración desde la página Remote Config en Firebase console, publica los cambios y verifica el resultado.
Próximos pasos
- Obtén más información sobre Remote Config.
- Agrega Google Analytics a tu código de cliente para habilitar la segmentación.
- Prueba diferentes parámetros de configuración del modelo con Remote Config y A/B Testing.
- Lanza los cambios de parámetros del modelo de forma gradual con los lanzamientos de Remote Config.
- Usa la personalización de Remote Config para usar el aprendizaje automático y determinar la mejor configuración para cada usuario.