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. Ainsi, une fois que vous l'avez ajoutée en tant qu'outil, le modèle décide quand l'utiliser.
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 sorties de cet outil.
Part
executable_code
Facultatif : ExecutableCode
Code généré par le modèle et destiné à être exécuté.
Consultez "Exécution de code [API]".
code_execution_result
Facultatif : CodeExecutionResult
Résultat de l'exécution de [ExecutableCode].
Consultez "Exécution de 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.
Consultez "Exécution de code [API]".
CodeExecutionResult
outcome
Obligatoire :
string (enum)
Résultat de l'exécution du code.
Résultats possibles :
L'exécution du code s'est déroulée avec succès. (OUTCOME_OK)
L'exécution du code est terminée, mais a échoué. 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.
Consultez "Exécution de code [API]".
Exemples
Voici des exemples montrant comment envoyer une requête et des déclarations de fonction au modèle.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/25 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/25 (UTC)."],[],[],null,["# Execute code with the Gemini API\n\nThe Gemini API code execution feature enables the model to generate and run\nPython code and learn iteratively from the results until it arrives at a final\noutput. You can use this code execution capability to build applications that\nbenefit from code-based reasoning and that produce text output. For example,\nyou could use code execution in an application that solves equations or\nprocesses text.\n\nThe Gemini API provides code execution as a tool, similar to\n[function calling](/vertex-ai/generative-ai/docs/model-reference/function-calling). After\nyou add code execution as a tool, the model decides when to use it.\n\nSupported models\n----------------\n\n- [Gemini 2.5 Flash-Lite](/vertex-ai/generative-ai/docs/models/gemini/2-5-flash-lite)\n- [Gemini 2.0 Flash with Live API](/vertex-ai/generative-ai/docs/models/gemini/2-0-flash#live-api) (Preview)\n- [Vertex AI Model Optimizer](/vertex-ai/generative-ai/docs/model-reference/vertex-ai-model-optimizer) (Experimental)\n- [Gemini 2.5 Pro](/vertex-ai/generative-ai/docs/models/gemini/2-5-pro)\n- [Gemini 2.5 Flash](/vertex-ai/generative-ai/docs/models/gemini/2-5-flash)\n- [Gemini 2.0 Flash](/vertex-ai/generative-ai/docs/models/gemini/2-0-flash)\n\n### Limitations\n\n- The feature doesn't support file I/O.\n- Code execution can run for a maximum of 30 seconds before timing out.\n\nExample syntax\n--------------\n\n### curl\n\n```bash\nPROJECT_ID = myproject\nREGION = us-central1\nMODEL_ID = gemini-2.0-flash-001\n\nhttps://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:generateContent \\\n -d '{\n \"contents\": [{\n ...\n }],\n \"tools\": [{\n \"code_execution\": {}\n }]\n }'\n```\n\nParameter list\n--------------\n\nSee [examples](#examples) for implementation details.\n\n### Python\n\nTo enable code execution, specify a code execution `tool` in your request.\n\n#### `CodeExecution`\n\nTool that executes code generated by the model, and automatically returns the result to the model. See also [ExecutableCode](#executablecode) and [CodeExecutionResult](#codeexecutionresult) which are input and output to this tool.\n\n#### `Part`\n\n#### `ExecutableCode`\n\n#### `CodeExecutionResult`\n\nExamples\n--------\n\nHere are illustrations of how you can submit a query and function declarations to the model.\n\n### Basic use case\n\n### curl\n\n```bash\nPROJECT_ID = myproject\nREGION = us-central1\nMODEL_ID = gemini-2.0-flash-001\n\ncurl -X POST \\\n -H \"Authorization: Bearer $(gcloud auth print-access-token)\" \\\n -H \"Content-Type: application/json\" \\\n https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/publishers/google/models/${MODEL_ID}:generateContent \\\n -d '{\n \"contents\": [{\n \"role\": \"user\",\n \"parts\": [{\n \"text\": \"Calculate 20th fibonacci number. Then find the nearest palindrome to it.\"\n }]\n }],\n \"tools\": [{'codeExecution': {}}],\n }'\n```\n\n### Python\n\n```python\nfrom google import genai\nfrom google.genai.types import Tool, ToolCodeExecution, GenerateContentConfig\n\nclient = genai.Client()\nmodel_id = \"gemini-2.0-flash-001\"\n\ncode_execution_tool = Tool(\n code_execution=ToolCodeExecution()\n)\nresponse = client.models.generate_content(\n model=model_id,\n contents=\"Calculate 20th fibonacci number. Then find the nearest palindrome to it.\",\n config=GenerateContentConfig(\n tools=[code_execution_tool],\n temperature=0,\n ),\n)\nfor part in response.candidates[0].content.parts:\n if part.executable_code:\n print(part.executable_code)\n if part.code_execution_result:\n print(part.code_execution_result)\n# Example response:\n# code='...' language='PYTHON'\n# outcome='OUTCOME_OK' output='The 20th Fibonacci number is: 6765\\n'\n# code='...' language='PYTHON'\n# outcome='OUTCOME_OK' output='Lower Palindrome: 6666\\nHigher Palindrome: 6776\\nNearest Palindrome to 6765: 6776\\n'\n```\n\n### Enable code execution on the model\n\nTo enable basic code execution, see [Code execution](/vertex-ai/generative-ai/docs/multimodal/code-execution#enable_code_execution_on_the_model).\n\nWhat's next\n-----------\n\n- Learn more about the [Gemini\n API](/vertex-ai/generative-ai/docs/model-reference/gemini).\n- Learn more about [Function\n calling](/vertex-ai/generative-ai/docs/multimodal/function-calling).\n- Learn more about [Generating content with Gemini](/vertex-ai/generative-ai/docs/model-reference/inference)."]]