Gemini 2.0 Flash ahora está disponible como versión preliminar experimental a través de la API para desarrolladores de Gemini y Google AI Studio. El modelo presenta funciones nuevas y capacidades básicas mejoradas:
- API de Multimodal Live: Esta nueva API te ayuda a crear aplicaciones de transmisión de audio y visión en tiempo real con el uso de herramientas.
- Velocidad y rendimiento: Gemini 2.0 tiene un tiempo de primer token (TTFT) mejorado significativamente en comparación con 1.5 Flash.
- Calidad: Tiene un mejor rendimiento en la mayoría de las comparativas que Gemini 1.5 Pro.
- Capacidades de agente mejoradas: Gemini 2.0 ofrece mejoras en la comprensión multimodal, la programación, el seguimiento de instrucciones complejas y las llamadas a funciones.
- Nuevas modalidades: Gemini 2.0 presenta la generación de imágenes nativas y las capacidades de conversión de texto a voz controlables.
Para proporcionar una mejor experiencia para los desarrolladores, también enviaremos un nuevo SDK. Para obtener detalles técnicos de Gemini 2.0, consulta Modelos de Gemini.
SDK de Google Gen AI (experimental)
El nuevo SDK de Google Gen AI proporciona una interfaz unificada a Gemini 2.0 a través de la API de Gemini Developer y la API de Gemini en Vertex AI. Con algunas excepciones, el código que se ejecuta en una plataforma se ejecutará en ambas. Esto significa que puedes crear prototipos de una aplicación con la API para desarrolladores y, luego, migrar la aplicación a Vertex AI sin volver a escribir el código.
El SDK de IA generativa también admite los modelos Gemini 1.5.
El nuevo SDK está disponible en Python y Go, y pronto estará disponible en Java y JavaScript.
Puedes comenzar a usar el SDK como se muestra a continuación.
- Instala el nuevo SDK:
pip install google-genai
- Luego, importa la biblioteca, inicializa un cliente y genera contenido:
from google import genai
client = genai.Client(
api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
model='gemini-2.0-flash-exp', contents='How does AI work?'
)
print(response.text)
Cómo configurar variables de entorno (opcional)
Como alternativa, puedes inicializar el cliente con variables de entorno. Primero, establece los valores adecuados y exporta las variables:
# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY
Luego, puedes inicializar el cliente sin ningún argumento:
client = genai.Client()
Los desarrolladores de Python también pueden probar el notebook de introducción en el libro de recetas.
API de Multimodal Live
La API de Multimodal Live habilita interacciones de voz y video bidireccionales con latencia baja con Gemini. Con la API de Multimodal Live, puedes proporcionar a los usuarios finales la experiencia de conversaciones de voz naturales y similares a las humanas, y la capacidad de interrumpir las respuestas del modelo con comandos por voz. El modelo puede procesar entradas de texto, audio y video, y puede proporcionar salidas de texto y audio.
La API de Multimodal Live está disponible en la API de Gemini como el método BidiGenerateContent
y se compila en WebSockets.
from google import genai
client = genai.Client(http_options={'api_version': 'v1alpha'})
model_id = "gemini-2.0-flash-exp"
config = {"response_modalities": ["TEXT"]}
async with client.aio.live.connect(model=model_id, config=config) as session:
message = "Hello? Gemini, are you there?"
print("> ", message, "\n")
await session.send(message, end_of_turn=True)
async for response in session.receive():
print(response.text)
Funciones clave:
- Multimodalidad: El modelo puede ver, escuchar y hablar.
- Interacción en tiempo real de baja latencia: Proporciona respuestas rápidas.
- Memoria de la sesión: El modelo retiene la memoria de todas las interacciones dentro de una sola sesión y recuerda la información que se escuchó o vio anteriormente.
- Compatibilidad con llamadas a funciones, ejecución de código y Búsqueda como herramienta: Permite la integración con servicios y fuentes de datos externos.
- Detección automática de actividad de voz (VAD): El modelo puede reconocer con precisión cuándo el usuario comienza a hablar y cuándo deja de hacerlo. Esto permite interacciones conversacionales naturales y permite a los usuarios interrumpir el modelo en cualquier momento.
Language:
- Solo inglés
Limitaciones:
- Tanto las entradas de audio como las salidas de audio afectan negativamente la capacidad del modelo para usar llamadas a función.
Para obtener más información sobre las funciones y limitaciones de la API, consulta la guía de referencia de la API de Multimodal Live.
Puedes probar la API de Multimodal Live en Google AI Studio. Para comenzar a desarrollar, puedes probar la consola web (escrita en React). Para desarrolladores de Python, prueba el código inicial (notebook y archivo.py). Es posible que te resulte más fácil comenzar con el notebook, pero la API en vivo funciona mejor cuando se ejecuta desde la terminal.
La búsqueda como herramienta
Con la fundamentación con la Búsqueda de Google, puedes mejorar la precisión y la actualización de las respuestas del modelo. A partir de Gemini 2.0, la Búsqueda de Google está disponible como herramienta. Esto significa que el modelo puede decidir cuándo usar la Búsqueda de Google. En el siguiente ejemplo, se muestra cómo configurar la Búsqueda como una herramienta.
from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch
client = genai.Client()
model_id = "gemini-2.0-flash-exp"
google_search_tool = Tool(
google_search = GoogleSearch()
)
response = client.models.generate_content(
model=model_id,
contents="When is the next total solar eclipse in the United States?",
config=GenerateContentConfig(
tools=[google_search_tool],
response_modalities=["TEXT"],
)
)
for each in response.candidates[0].content.parts:
print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...
# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)
La funcionalidad de Búsqueda como herramienta también habilita búsquedas de varios turnos y consultas de varias herramientas (por ejemplo, combinar Grounding con la Búsqueda de Google y la ejecución de código).
La búsqueda como herramienta permite indicaciones y flujos de trabajo complejos que requieren planificación, razonamiento y pensamiento:
- Fundamentación para mejorar la veracidad y la actualidad, y proporcionar respuestas más precisas
- Cómo recuperar artefactos de la Web para realizar un análisis más detallado
- Encontrar imágenes, videos y otros elementos multimedia relevantes para ayudar en las tareas de razonamiento o generación multimodal
- Programación, solución de problemas técnicos y otras tareas especializadas
- Encontrar información específica de la región o ayudar a traducir el contenido con precisión
- Cómo encontrar sitios web relevantes para seguir navegando
Para comenzar, puedes probar el notebook de la herramienta de búsqueda.
Herramientas mejoradas
Gemini 2.0 presenta mejoras en las llamadas a función y las herramientas que brindan una mejor compatibilidad con las experiencias de agentes.
Llamadas a funciones de composición
Gemini 2.0 admite una nueva función de llamada a función: llamada a función de composición. Las llamadas a funciones de composición permiten que la API de Gemini invoque varias funciones definidas por el usuario automáticamente en el proceso de generar una respuesta. Por ejemplo, para responder a la instrucción
"Get the temperature in my current location"
, la API de Gemini podría invocar una función get_current_location()
y una función get_weather()
que tome
la ubicación como parámetro.
Las llamadas a funciones de composición con ejecución de código requieren transmisión bidireccional y solo son compatibles con la nueva API de Multimodal Live. A continuación, se muestra un ejemplo en el que se muestra cómo puedes usar las llamadas a funciones de composición, la ejecución de código y la API de Multimodal Live en conjunto:
turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}
prompt = """
Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
"""
tools = [
{'code_execution': {}},
{'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]
await run(prompt, tools=tools, modality="AUDIO")
Los desarrolladores de Python pueden probar esto en el notebook de uso de la herramienta de API en vivo.
Uso de multiherramientas
Con Gemini 2.0, puedes habilitar varias herramientas al mismo tiempo, y el modelo decidirá cuándo llamarlas. Este es un ejemplo que habilita dos herramientas, la vinculación con la Búsqueda de Google y la ejecución de código, en una solicitud con la API de Multimodal Live.
prompt = """
Hey, I need you to do three things for me.
1. Turn on the lights.
2. Then compute the largest prime palindrome under 100000.
3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.
Thanks!
"""
tools = [
{'google_search': {}},
{'code_execution': {}},
{'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]
await run(prompt, tools=tools, modality="AUDIO")
Los desarrolladores de Python pueden probar esto en el notebook de uso de la herramienta de API en vivo.
Detección de cuadros delimitadores
En este lanzamiento experimental, proporcionamos a los desarrolladores una herramienta potente para la detección y localización de objetos en imágenes y videos. Cuando se identifican y delinean con precisión los objetos con cuadros de límites, los desarrolladores pueden desbloquear una amplia variedad de aplicaciones y mejorar la inteligencia de sus proyectos.
Beneficios clave:
- Fácil: Integra funciones de detección de objetos en tus aplicaciones con facilidad, independientemente de tu experiencia en visión artificial.
- Personalizable: Produce cuadros de límite según instrucciones personalizadas (p.ej., "Quiero ver los cuadros de límite de todos los objetos verdes en esta imagen"), sin tener que entrenar un modelo personalizado.
Detalles técnicos:
- Entrada: Tu instrucción y las imágenes o los fotogramas de video asociados.
- Resultado: Rectángulos de límite en formato
[y_min, x_min, y_max, x_max]
. La esquina superior izquierda es el origen. Los ejesx
yy
se orientan horizontal y verticalmente, respectivamente. Los valores de las coordenadas se normalizan de 0 a 1,000 para cada imagen. - Visualización: Los usuarios de AI Studio verán los cuadros de límite trazados dentro de la IU. Los usuarios de Vertex AI deben visualizar sus cuadros delimitados a través de código de visualización personalizado.
Para desarrolladores de Python, prueba el notebook de comprensión espacial 2D o el notebook experimental de puntero 3D.
Generación de voz (acceso anticipado o lista de entidades permitidas)
Gemini 2.0 admite una nueva función de generación multimodal: texto a voz.
Con la función de texto a voz, puedes pedirle al modelo que genere un resultado de audio de alta calidad que suene como una voz humana (say "hi everyone"
) y puedes definir mejor el resultado dirigiendo la voz.
Generación de imágenes (acceso anticipado/lista de entidades permitidas)
Gemini 2.0 admite la capacidad de generar texto con imágenes intercaladas. Esto te permite usar Gemini para editar imágenes de forma conversacional o generar resultados multimodales (por ejemplo, una entrada de blog con texto e imágenes en una sola vez). Anteriormente, esto habría requerido unir varios modelos.
La generación de imágenes está disponible como versión experimental privada. Admite las siguientes modalidades y capacidades:
- Texto a imagen
- Ejemplo de instrucción: “Genera una imagen de la Torre Eiffel con fuegos artificiales en el fondo”.
- Texto a imágenes y texto (intercalado)
- Ejemplo de instrucción: "Genera una receta ilustrada de una paella".
- De imágenes y texto a imágenes y texto (intercalados)
- Ejemplo de instrucción: (Con una imagen de una habitación amueblada) “¿Qué otros colores de sofás funcionarían en mi espacio? ¿Puedes actualizar la imagen?”
- Edición de imágenes (texto e imagen a imagen)
- Ejemplo de instrucción: “Edita esta imagen para que parezca un dibujo animado”.
- Ejemplo de instrucción: [imagen de un gato] + [imagen de una almohada] + “Crea un punto cruzado de mi gato en esta almohada”.
- Edición de imágenes de varios turnos (chat)
- Ejemplos de instrucciones: [Sube una imagen de un auto azul.] "Convierte este auto en un convertible". “Ahora cambia el color a amarillo”.
- Marcas de agua (synthID)
Limitaciones:
- No se permite la generación de personas ni la edición de imágenes subidas de personas.
- Para obtener el mejor rendimiento, usa los siguientes idiomas: EN, es-MX, ja-JP, zh-CN, hi-IN.
- La generación de imágenes no admite entradas de audio ni video.
- Es posible que la generación de imágenes no siempre se active en los siguientes casos:
- El modelo solo puede generar texto. Intenta solicitar resultados de imagen de forma explícita (p.ej., “genera una imagen”, “proporciona imágenes a medida que avanzas”, “actualiza la imagen”).
- Es posible que el modelo deje de generar contenido a mitad del proceso. Vuelve a intentarlo o prueba con otra instrucción.