Gemini 2.0 Flash (experimental)

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 principales 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) significativamente mejorado en comparación con 1.5 Flash.
  • Calidad: Brinda 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 IA generativa de Google (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. El nuevo SDK está disponible en Python y Go, y pronto estará disponible en Java y JavaScript.

  1. Instala el nuevo SDK: pip install google-genai
  2. Luego, importa la biblioteca, inicializa un cliente y genera contenido:
from google import genai

client = genai.Client(api_key="GEMINI_API_KEY")

response = client.models.generate_content(model='gemini-2.0-flash-exp', contents='How does AI work?')
print(response.text)

Los desarrolladores de Python también pueden probar el notebook de introducción en el libro de recetas de Gemini.

API de Multimodal Live

La API de Multimodal Live habilita interacciones de voz y video bidireccionales de baja latencia 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.

Puedes probar la API de Multimodal Live en Google AI Studio. Para obtener más información sobre las capacidades y limitaciones de la API, consulta la guía de referencia de la API de Multimodal Live.

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 una 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 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.

Uso mejorado de herramientas

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 basados en 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 ejes x y y 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 o 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
    • Todas las imágenes generadas incluyen una marca de agua de 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.