Code mit der Gemini API ausführen

In dieser Anleitung erfahren Sie, wie Sie die Funktion zur Codeausführung der Gemini API verwenden, mit der das Modell Python-Code generieren und ausführen kann, um Probleme zu lösen.

Wann sollte die Codeausführung und wann der Funktionsaufruf verwendet werden?

Die Gemini API bietet zwei primäre Tools zum Ausführen von Aufgaben: Codeausführung und Funktionsaufrufe. Das Modell entscheidet anhand Ihres Prompts, welches Tool verwendet werden soll. In der folgenden Tabelle werden die beiden Tools verglichen.

Tool Beschreibung Wichtiges Merkmal Anwendungsfall
Codeausführung Das Modell generiert und führt Python-Code in einer zustandsbehafteten Sandbox-Umgebung aus, um ein Problem zu lösen. Die Ausführung wird automatisch vom Tool übernommen. Automatische Ausführung:Das Modell schreibt und führt den Code ohne Ihr Eingreifen aus. Komplexe Berechnungen durchführen, Daten transformieren oder Logikprobleme lösen, bei denen die Schritte nicht vordefiniert sind. Beispiel: „Berechne die 20. Fibonacci-Zahl und finde das nächste Palindrom.“
Funktionsaufrufe Das Modell identifiziert eine benutzerdefinierte Funktion, die eine Anfrage erfüllen kann, und gibt den Funktionsnamen und die Argumente zurück. Sie sind dafür verantwortlich, die Funktion mit den angegebenen Argumenten aufzurufen. Erfordert die Ausführung durch den Nutzer:Das Modell liefert die Details zum Funktionsaufruf. Sie müssen die Funktion in Ihrer Umgebung ausführen und das Ergebnis an das Modell zurückgeben. Das Modell in externe APIs oder interne Systeme einbinden. „Wie ist das Wetter in Boston?“ könnte beispielsweise einen get_weather(location="Boston")-Funktionsaufruf auslösen.

Unterstützte Modelle und Einschränkungen

Beschränkungen

  • Die Funktion unterstützt keine Datei-E/A.
  • Die Codeausführung kann maximal 30 Sekunden dauern, bevor eine Zeitüberschreitung auftritt.

Beispielsyntax

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

Parameterliste

Einzelheiten zur Implementierung finden Sie in den Beispielen.

Python

Wenn Sie die Codeausführung aktivieren möchten, geben Sie in Ihrer Anfrage ein tool für die Codeausführung an.

CodeExecution

Tool, das vom Modell generierten Code ausführt und das Ergebnis automatisch an das Modell zurückgibt. Weitere Informationen finden Sie unter ExecutableCode und CodeExecutionResult, die Ein- und Ausgabe dieses Tools sind.

Part

executable_code

Optional: ExecutableCode

Vom Modell generierter Code, der ausgeführt werden soll.
Siehe Codeausführung [API].

code_execution_result

Optional: CodeExecutionResult

Ergebnis der Ausführung von [ExecutableCode].
Siehe Codeausführung [API].

ExecutableCode

language

Erforderlich: string (enum)

Unterstützte Programmiersprachen für den generierten code.


Unterstützt:
  • PYTHON

code

Erforderlich: string

Der auszuführende Code.
Siehe Codeausführung [API].

CodeExecutionResult

outcome

Erforderlich: string (enum)

Ergebnis der Codeausführung.


Mögliche Ergebnisse:
  • Die Codeausführung wurde erfolgreich abgeschlossen. (OUTCOME_OK)
  • Die Codeausführung wurde abgeschlossen, aber mit einem Fehler. stderr sollte den Grund enthalten. (OUTCOME_FAILED)
  • Die Codeausführung dauerte zu lange und wurde abgebrochen. Möglicherweise ist eine Teilausgabe vorhanden. (OUTCOME_DEADLINE_EXCEEDED)

output

Erforderlich: string

Enthält stdout, wenn die Codeausführung erfolgreich war, ansonsten stderr oder eine andere Beschreibung.
Siehe Codeausführung [API].

Beispiele

Hier finden Sie Beispiele dafür, wie Sie eine Anfrage und Funktionsdeklarationen an das Modell senden können.

Grundlegender Anwendungsfall

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'

Codeausführung für das Modell aktivieren

Informationen zum Aktivieren der grundlegenden Codeausführung finden Sie unter Codeausführung.

Nächste Schritte