Esegui codice con l'API Gemini

La funzionalità di esecuzione del codice dell'API Gemini consente al modello di generare ed eseguire codice Python e di apprendere in modo iterativo dai risultati fino a ottenere un output finale. Puoi utilizzare questa funzionalità di esecuzione del codice per creare applicazioni che beneficiano del ragionamento basato su codice e producono output di testo. Ad esempio, puoi utilizzare l'esecuzione di codice in un'applicazione che risolve equazioni o elabora il testo.

L'API Gemini fornisce l'esecuzione del codice come strumento, in modo simile alla chiamata di funzione. Dopo aver aggiunto l'esecuzione del codice come strumento, è il modello a decidere quando utilizzarlo.

Modelli supportati

Limitazioni

  • La funzionalità non supporta l'I/O file.
  • L'esecuzione del codice può durare al massimo 30 secondi prima del timeout.

Sintassi di esempio

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":  {}
    }]
  }'

Elenco dei parametri

Per informazioni dettagliate sull'implementazione, consulta gli esempi.

Python

Per attivare l'esecuzione del codice, specifica un'esecuzione del codice tool nella richiesta.

CodeExecution

Strumento che esegue il codice generato dal modello e restituisce automaticamente il risultato al modello. Consulta anche ExecutableCode e CodeExecutionResult, che sono input e output di questo strumento.

Part

executable_code

(Facoltativo) ExecutableCode

Codice generato dal modello che deve essere eseguito.
Vedi Esecuzione codice [API].

code_execution_result

(Facoltativo) CodeExecutionResult

Risultato dell'esecuzione di [ExecutableCode].
Vedi Esecuzione codice [API].

ExecutableCode

language

Obbligatorio: string (enum)

Linguaggi di programmazione supportati per il file code generato.


Supportato:
  • PYTHON

code

Obbligatorio: string

Il codice da eseguire.
Vedi Esecuzione codice [API].

CodeExecutionResult

outcome

Obbligatorio: string (enum)

Risultato dell'esecuzione del codice.


Possibili risultati:
  • Esecuzione del codice completata correttamente. (OUTCOME_OK)
  • L'esecuzione del codice è stata completata, ma con un errore. stderr deve contenere il motivo. (OUTCOME_FAILED)
  • L'esecuzione del codice è durata troppo a lungo ed è stata annullata. Potrebbe essere presente o meno un output parziale. (OUTCOME_DEADLINE_EXCEEDED)

output

Obbligatorio: string

Contiene stdout se l'esecuzione del codice è riuscita, stderr o un'altra descrizione in caso contrario.
Vedi Esecuzione codice [API].

Esempi

Di seguito sono riportate alcune illustrazioni di come inviare una query e dichiarazioni di funzione al modello.

Caso d'uso di base

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'

Attiva l'esecuzione del codice sul modello

Per attivare l'esecuzione di codice di base, consulta Esecuzione di codice.

Passaggi successivi