Execute código com a API Gemini

A funcionalidade de execução de código da API Gemini permite que o modelo gere e execute código Python, e aprenda iterativamente com os resultados até chegar a um resultado final. Pode usar esta capacidade de execução de código para criar aplicações que beneficiem do raciocínio baseado em código e que produzam resultados de texto. Por exemplo, pode usar a execução de código numa aplicação que resolva equações ou processe texto.

A API Gemini oferece a execução de código como uma ferramenta, semelhante à chamada de funções. Depois de adicionar a execução de código como ferramenta, o modelo decide quando a usar.

Modelos suportados

Limitações

  • A funcionalidade não suporta E/S de ficheiros.
  • A execução do código pode durar um máximo de 30 segundos antes de atingir o limite de tempo.

Sintaxe de exemplo

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

Consulte exemplos para ver detalhes de implementação.

Python

Para ativar a execução de código, especifique um tool de execução de código no seu pedido.

CodeExecution

Ferramenta que executa o código gerado pelo modelo e devolve automaticamente o resultado ao modelo. Consulte também ExecutableCode e CodeExecutionResult, que são introduzidos e produzidos por esta ferramenta.

Part

executable_code

Opcional: ExecutableCode

Código gerado pelo modelo que se destina a ser executado.
Consulte Execução de código [API].

code_execution_result

Opcional: CodeExecutionResult

Resultado da execução do [ExecutableCode].
Consulte Execução de código [API].

ExecutableCode

language

Obrigatório: string (enum)

Idiomas de programação suportados para o code gerado.


Suportado:
  • PYTHON

code

Obrigatório: string

O código a ser executado.
Consulte Execução de código [API].

CodeExecutionResult

outcome

Obrigatório: string (enum)

Resultado da execução do código.


Possíveis resultados:
  • A execução do código foi concluída com êxito. (OUTCOME_OK)
  • A execução de código foi concluída, mas com uma falha. stderr deve conter o motivo. (OUTCOME_FAILED)
  • A execução do código foi executada durante demasiado tempo e foi cancelada. Pode ou não estar presente um resultado parcial. (OUTCOME_DEADLINE_EXCEEDED)

output

Obrigatório: string

Contém stdout quando a execução do código é bem-sucedida, stderr ou outra descrição caso contrário.
Consulte Execução de código [API].

Exemplos

Seguem-se ilustrações de como pode enviar uma consulta e declarações de funções ao modelo.

Exemplo de utilização 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'

Ative a execução de código no modelo

Para ativar a execução de código básica, consulte Execução de código.

O que se segue?