Exécuter du code avec l'API Gemini

La fonctionnalité d'exécution de code de l'API Gemini permet au modèle de générer et d'exécuter du code Python ainsi que d'apprendre des résultats de façon itérative jusqu'à ce qu'il parvienne à une sortie finale. Vous pouvez vous servir de cette fonctionnalité pour créer des applications qui bénéficient d'un raisonnement basé sur du code et qui produisent des sorties textuelles. Par exemple, vous pouvez utiliser l'exécution de code dans une application qui résout des équations ou traite du texte.

L'API Gemini fournit l'exécution de code en tant qu'outil, tout comme l'appel de fonction. Une fois que vous l'avez ajoutée en tant qu'outil, le modèle décide quand l'utiliser.

Modèles compatibles

Limites

  • Cette fonctionnalité n'est pas compatible avec l'E/S de fichiers.
  • L'exécution du code peut s'exécuter pendant 30 secondes maximum avant expiration du délai.

Exemple de syntaxe

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

Liste des paramètres

Consultez des exemples pour en savoir plus sur l'implémentation.

Python

Pour activer l'exécution du code, spécifiez un tool d'exécution du code dans votre requête.

CodeExecution

Outil qui exécute le code généré par le modèle et renvoie automatiquement le résultat au modèle. Consultez également ExecutableCode et CodeExecutionResult, qui sont les entrées et les sorties de cet outil.

Part

executable_code

Facultatif : ExecutableCode

Code généré par le modèle et destiné à être exécuté.
Voir Exécution du code [API].

code_execution_result

Facultatif : CodeExecutionResult

Résultat de l'exécution du [ExecutableCode].
Voir Exécution du code [API].

ExecutableCode

language

Obligatoire : string (enum)

Langages de programmation compatibles pour le code généré.


Compatible :
  • PYTHON

code

Obligatoire : string

Code à exécuter.
Voir Exécution du code [API].

CodeExecutionResult

outcome

Obligatoire : string (enum)

Résultat de l'exécution du code.


Résultats possibles :
  • L'exécution du code a bien été effectuée. (OUTCOME_OK)
  • L'exécution du code s'est terminée, mais avec un échec. stderr doit contenir le motif. (OUTCOME_FAILED)
  • L'exécution du code a duré trop longtemps et a été annulée. Une sortie partielle peut être présente ou non. (OUTCOME_DEADLINE_EXCEEDED)

output

Obligatoire : string

Contient stdout lorsque l'exécution du code est réussie, stderr ou une autre description dans le cas contraire.
Voir Exécution du code [API].

Examples

Voici des illustrations montrant comment envoyer une requête et des déclarations de fonction au modèle.

Cas d'utilisation de 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'

Activer l'exécution du code sur le modèle

Pour activer l'exécution de code de base, consultez Exécution de code.

Étape suivante