Desbloquear el poder de la función de ejecución de código de la API de Géminis

Libera el poder de la función de ejecución de código de la API de Gemini. Descubre cómo empodera a los desarrolladores a construir aplicaciones con razonamiento basado en código, resolver ecuaciones y procesar texto. Explora ejemplos que muestran las capacidades de esta innovadora función, desde la generación de números primos hasta el web scraping y la creación de modelos de aprendizaje automático. Obtén información sobre las diferencias entre la ejecución de código y la llamada a funciones, y aprende a aprovechar esta herramienta revolucionaria en tus flujos de trabajo.

20 de febrero de 2025

party-gif

Desbloquea el poder del razonamiento basado en código con la nueva función de ejecución de código de la API de Gemini. Integra perfectamente esta capacidad en tus aplicaciones, permitiéndoles generar, ejecutar y aprender de código, resolviendo problemas complejos con facilidad. Descubre cómo esta innovadora función puede transformar tus flujos de trabajo de desarrollo y desbloquear nuevas posibilidades.

Poderosa Capacidad: Ejecución de Código en la API de Gemini

La API de Gemini de Google ofrece una característica única llamada "ejecución de código" que permite al modelo generar y ejecutar código Python, y aprender de forma iterativa a partir de los resultados hasta llegar a la salida final. Esta poderosa capacidad permite a los desarrolladores crear aplicaciones que se beneficien del razonamiento basado en código, como resolver ecuaciones o procesar texto.

Las principales ventajas de la ejecución de código sobre la llamada normal a funciones son:

  1. Simplicidad: El modelo de lenguaje decide si necesita escribir código para realizar una cierta operación, y puede ejecutar el código en el backend de la API. Esto es mucho más sencillo de usar en comparación con configurar un entorno de desarrollo y realizar múltiples llamadas a la API.

  2. Flexibilidad: Con la ejecución de código, el modelo puede iterar sobre el código y refinar la salida, mientras que la llamada a funciones se limita a una sola solicitud a la API.

  3. Aislamiento: La ejecución de código se realiza en un entorno completamente aislado, lo que significa que los desarrolladores no tienen que preocuparse por la infraestructura subyacente.

Sin embargo, hay algunas limitaciones en la característica de ejecución de código:

  • Actualmente se limita a Python y a un conjunto específico de bibliotecas (NumPy y SciPy).
  • No puede devolver artefactos como archivos multimedia o manejar salida que no sea de texto (por ejemplo, gráficos de datos).
  • La ejecución de código se limita a un máximo de 30 segundos, lo que puede no ser adecuado para todos los casos de uso.

A pesar de estas limitaciones, la característica de ejecución de código puede ser extremadamente poderosa para los desarrolladores, especialmente cuando se construyen agentes con los modelos Gemini 1.5 Flash o Pro. Los ejemplos proporcionados en la transcripción demuestran cómo el modelo puede generar y ejecutar código para resolver diversos problemas, incluyendo cálculos matemáticos, manipulación de cadenas, análisis de datos, web scraping e incluso el entrenamiento de modelos de aprendizaje automático.

Al aprovechar la capacidad de ejecución de código, los desarrolladores pueden crear aplicaciones más sofisticadas y capaces que puedan beneficiarse del razonamiento y las habilidades de resolución de problemas iterativos del modelo.

Entendiendo la Ejecución de Código vs. Llamada de Función

Las principales diferencias entre la ejecución de código y la llamada normal a funciones en el contexto de los modelos de lenguaje grandes (LLM) como Gemini son:

  1. Ejecución de código:

    • El LLM puede generar y ejecutar código directamente dentro del backend de la API.
    • El modelo decide si necesita escribir código para realizar una cierta operación y puede ejecutar el código.
    • Es una sola solicitud a la API, y la ejecución de código se realiza en el backend, permitiendo al modelo iterar sobre la solución.
    • Actualmente se limita a Python y a bibliotecas específicas como NumPy y SciPy.
    • Tiene limitaciones como la falta de E/S de archivos, salida que no sea de texto y un límite de tiempo de ejecución de 30 segundos.
  2. Llamada a funciones:

    • Permite la interacción con API o herramientas del mundo real utilizando funciones externas.
    • Requiere proporcionar una lista de herramientas a las que el modelo puede acceder y configurar el entorno de desarrollo.
    • Puede requerir realizar varias llamadas a la API para lograr una tarea.
    • Ofrece más flexibilidad en términos de lenguaje, marco de trabajo y funcionalidad.
    • Requiere una mayor configuración y gestión del entorno externo.

Google recomienda utilizar la ejecución de código si la tarea se puede realizar dentro de las capacidades proporcionadas, ya que es más sencilla de usar y no requiere gestionar el entorno externo. Sin embargo, la llamada a funciones ofrece más flexibilidad cuando la tarea requiere acceso a recursos o funcionalidades externos que no están disponibles en el entorno de ejecución de código.

Explorando Ejemplos de Ejecución de Código

La API de Gemini de Google ofrece una característica poderosa llamada "ejecución de código" que permite a los desarrolladores generar y ejecutar código Python dentro de la API. Esta capacidad permite construir aplicaciones que se beneficien del razonamiento basado en código, como resolver ecuaciones o procesar texto.

Exploraremos algunos ejemplos de cómo se puede utilizar esta característica:

Matemáticas Simples

La API de Gemini puede generar y ejecutar código para realizar operaciones matemáticas básicas, como calcular la suma de los primeros 200 números primos.

# Generar y ejecutar código para calcular la suma
result = """
import math

primes = []
num = 2
while len(primes) < 200:
    is_prime = True
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        primes.append(num)
    num += 1

total_sum = sum(primes)
print(f"La suma de los primeros 200 números primos es: {total_sum}")
"""

La salida muestra la suma calculada de los primeros 200 números primos.

Manipulación de Cadenas

La API de Gemini también puede generar y ejecutar código para realizar diversas tareas de manipulación de cadenas, como convertir una cadena a mayúsculas, contar el número de caracteres "o" y invertir la cadena.

# Generar y ejecutar código para manipulación de cadenas
result = """
text = "hello world, welcome to Gemini API"

# Convertir a mayúsculas
upper_text = text.upper()
print(f"Texto en mayúsculas: {upper_text}")

# Contar el número de caracteres 'o'
o_count = text.count('o')
print(f"Número de caracteres 'o': {o_count}")

# Invertir la cadena
reversed_text = text[::-1]
print(f"Texto invertido: {reversed_text}")
"""

La salida muestra los resultados de las tareas de manipulación de cadenas.

Análisis de Datos

La API de Gemini puede generar y ejecutar código para realizar tareas básicas de análisis de datos, como generar números aleatorios, calcular estadísticas (media, mediana, moda) y crear un histograma.

# Generar y ejecutar código para análisis de datos
result = """
import numpy as np
import matplotlib.pyplot as plt

# Generar números aleatorios entre 100 y 1000
numbers = np.random.randint(100, 1001, size=1000)

# Calcular estadísticas
mean = np.mean(numbers)
median = np.median(numbers)
mode = stats.mode(numbers)[0]
min_value = np.min(numbers)
max_value = np.max(numbers)
total_sum = np.sum(numbers)

print(f"Media: {mean:.2f}")
print(f"Mediana: {median:.2f}")
print(f"Moda: {mode}")
print(f"Mínimo: {min_value}")
print(f"Máximo: {max_value}")
print(f"Suma: {total_sum}")

# Crear un histograma
plt.hist(numbers, bins=30)
plt.xlabel("Valor")
plt.ylabel("Frecuencia")
plt.title("Histograma de Números Aleatorios")
plt.show()
"""

La salida incluye las estadísticas calculadas y un histograma de los números aleatorios generados.

Generando Gráficos y Ejecutando Modelos de ML

La característica de ejecución de código de la API de Gemini permite a los desarrolladores no solo generar código, sino también ejecutarlo dentro del backend de la API. Esta capacidad se extiende más allá de las simples operaciones matemáticas o manipulaciones de cadenas, permitiendo la generación de visualizaciones de datos y el entrenamiento de modelos de aprendizaje automático.

Al probar la característica de ejecución de código, los ejemplos de solicitud incluían una solicitud para crear un gráfico de histograma. Si bien la API pudo generar el código Python necesario para producir el gráfico, no pudo devolver directamente el artefacto del gráfico. Sin embargo, el código generado se puede ejecutar localmente, lo que permite al desarrollador generar la visualización deseada.

De manera similar, la API demostró la capacidad de generar datos sintéticos, dividirlos en conjuntos de entrenamiento y prueba, crear y entrenar un modelo de regresión lineal, y evaluar el rendimiento del modelo en el conjunto de prueba. Una vez más, la API devolvió el código Python para lograr estas tareas, que el desarrollador puede ejecutar localmente para obtener los resultados finales.

Estos ejemplos muestran la versatilidad de la característica de ejecución de código de la API de Gemini. Los desarrolladores pueden aprovechar esta capacidad para construir aplicaciones que requieren capacidades avanzadas de procesamiento de datos, visualización y aprendizaje automático, sin la necesidad de gestionar la infraestructura subyacente o configurar entornos de desarrollo complejos. La API se encarga de la generación y ejecución del código, permitiendo a los desarrolladores centrarse en la resolución de problemas de alto nivel y el diseño de la aplicación.

Precios y Limitaciones de la Ejecución de Código en la API de Gemini

La API de Gemini ofrece un plan gratuito para que los desarrolladores exploren la característica de ejecución de código. Sin embargo, hay algunas limitaciones a tener en cuenta:

  • Límites de Solicitudes: El plan gratuito tiene límites en la cantidad de solicitudes que se pueden realizar por minuto. Esto es para evitar el abuso y garantizar un uso justo de la API.

  • Tiempo de Ejecución: La característica de ejecución de código tiene un tiempo de ejecución máximo de 30 segundos. Cualquier código que tarde más de eso se agotará.

  • Bibliotecas Compatibles: El entorno de ejecución de código tiene acceso a un conjunto limitado de bibliotecas, principalmente NumPy y SciPy. Las bibliotecas más complejas o los paquetes personalizados no son compatibles.

  • Sin E/S de Archivos o Salida que no sea de Texto: La característica de ejecución de código no admite operaciones de E/S de archivos ni la generación de salida que no sea de texto, como archivos multimedia. Esto significa que no se puede utilizar para tareas que requieran estas capacidades.

  • Posible Impacto en Otras Características: Habilitar la ejecución de código a veces puede tener un impacto negativo en el rendimiento o la calidad de otras salidas del modelo, como la generación de historias o ensayos. Esto es algo a tener en cuenta al utilizar la característica.

Para los desarrolladores que necesitan más flexibilidad o límites de uso más altos, Google ofrece planes de pago de la API de Gemini. Estos planes proporcionan límites de solicitudes más altos, tiempos de ejecución más largos y acceso a un conjunto más amplio de bibliotecas y capacidades.

En general, la característica de ejecución de código en la API de Gemini puede ser una herramienta poderosa para los desarrolladores, pero es importante entender sus limitaciones y estructura de precios para asegurarse de que se ajuste a su caso de uso y presupuesto.

Preguntas más frecuentes