Ejecuta código con la API de Gemini

La función de ejecución de código de la API de Gemini permite que el modelo genere y ejecute código de Python y aprenda de forma iterativa a partir de los resultados hasta llegar a un resultado final. Puedes usar esta función de ejecución de código para crear aplicaciones que se beneficien del razonamiento basado en código y que produzcan resultados de texto. Por ejemplo, puedes usar la ejecución de código en una aplicación que resuelve ecuaciones o procesa texto.

La API de Gemini proporciona la ejecución de código como una herramienta, de forma similar a las llamadas a funciones. Después de que agregas la ejecución de código como herramienta, el modelo decide cuándo usarla.

Modelos compatibles

Limitaciones

  • La función no admite E/S de archivos.
  • La ejecución de código puede ejecutarse durante un máximo de 30 segundos antes de que se agote el tiempo de espera.

Ejemplo de sintaxis

curl

PROJECT_ID = myproject
REGION = us-central1
MODEL_ID = gemini-2.0-flash-001

https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:generateContent \
  -d '{
    "contents": [{
      ...
    }],
    "tools": [{
      "code_execution":  {}
    }]
  }'

Lista de parámetros

Consulta ejemplos para obtener detalles sobre la implementación.

Python

Para habilitar la ejecución de código, especifica un tool de ejecución de código en tu solicitud.

CodeExecution

Es una herramienta que ejecuta el código que genera el modelo y muestra automáticamente el resultado al modelo. Consulta también ExecutableCode y CodeExecutionResult, que son la entrada y la salida de esta herramienta.

Part

executable_code

Opcional: ExecutableCode

Es el código que genera el modelo y que se debe ejecutar.
Consulta Ejecución de código [API].

code_execution_result

Opcional: CodeExecutionResult

Es el resultado de ejecutar [ExecutableCode].
Consulta Ejecución de código [API].

ExecutableCode

language

Obligatorio: string (enum)

Lenguajes de programación compatibles para el code generado.


Compatibilidad:
  • PYTHON

code

Obligatorio: string

Es el código que se ejecutará.
Consulta Ejecución de código [API].

CodeExecutionResult

outcome

Obligatorio: string (enum)

Es el resultado de la ejecución del código.


Resultados posibles:
  • La ejecución de código se completó correctamente. (OUTCOME_OK)
  • La ejecución de código finalizó, pero con un error. stderr debe contener el motivo. (OUTCOME_FAILED)
  • La ejecución de código se ejecutó durante demasiado tiempo y se canceló. Puede haber o no un resultado parcial. (OUTCOME_DEADLINE_EXCEEDED)

output

Obligatorio: string

Contiene stdout cuando la ejecución de código se realiza correctamente, stderr o alguna otra descripción en caso contrario.
Consulta Ejecución de código [API].

Ejemplos

A continuación, se muestran ilustraciones de cómo puedes enviar una consulta y declaraciones de funciones al modelo.

Caso de uso básico

curl

PROJECT_ID = myproject
REGION = us-central1
MODEL_ID = gemini-2.0-flash-001

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:generateContent \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "Calculate 20th fibonacci number. Then find the nearest palindrome to it."
      }]
    }],
    "tools": [{'codeExecution': {}}],
  }'

Python

from google import genai
from google.genai.types import Tool, ToolCodeExecution, GenerateContentConfig

client = genai.Client()
model_id = "gemini-2.0-flash-001"

code_execution_tool = Tool(
    code_execution=ToolCodeExecution()
)
response = client.models.generate_content(
    model=model_id,
    contents="Calculate 20th fibonacci number. Then find the nearest palindrome to it.",
    config=GenerateContentConfig(
        tools=[code_execution_tool],
        temperature=0,
    ),
)
for part in response.candidates[0].content.parts:
    if part.executable_code:
        print(part.executable_code)
    if part.code_execution_result:
        print(part.code_execution_result)
# Example response:
# code='...' language='PYTHON'
# outcome='OUTCOME_OK' output='The 20th Fibonacci number is: 6765\n'
# code='...' language='PYTHON'
# outcome='OUTCOME_OK' output='Lower Palindrome: 6666\nHigher Palindrome: 6776\nNearest Palindrome to 6765: 6776\n'

Habilita la ejecución de código en el modelo

Para habilitar la ejecución de código básica, consulta Ejecución de código.

¿Qué sigue?