Code-Interpreter

Mit Code Interpreter kann das Modell Python-Code in einem sicheren, isolierten Container schreiben und ausführen. Dieses Tool ist nützlich für Berechnungen, Datenanalysen, Dateiverarbeitung und andere rechenintensive Aufgaben.

Hinweis

Das OCI-Code-Interpreter-Tool verwendet dasselbe Format wie das OpenAI-Code-Interpreter-Tool, das mit der Responses-API mit dem OCI OpenAI-kompatiblen Endpunkt verwendet wird. Syntax- und Anforderungsdetails finden Sie im Thema "Code Interpreter" in der OpenAI-Dokumentation.
Tipp

Referenzieren Sie in Eingabeaufforderungen den Code-Interpreter als python-Tool. Beispiel: Use the python tool to solve the problem.

Da Code in einer isolierten Umgebung ohne externen Netzwerkzugriff ausgeführt wird, ist Code Interpreter eine gute Option, wenn der Workflow eine Berechnung oder Dateiverarbeitung in einer kontrollierten Einstellung erfordert.

Code-Intepreter verwenden

Wenn Sie dies zum ersten Mal verwenden, betrachten Sie Code Interpreter als temporären Python-Workspace für das Modell.

Sie können sie für folgende Aufgaben verwenden:

  • Lösung von mathematischen Problemen
  • Hochgeladene Dateien werden analysiert
  • Daten bereinigen oder transformieren
  • Diagramme oder Tabellen erstellen
  • Ausgabedateien wie Logs oder verarbeitete Datasets generieren

Ausführungsumgebung

Die Python-Umgebung umfasst mehr als 420 vorinstallierte Bibliotheken, einschließlich Pandas, Matplotlib und SciPy, so dass viele gängige Aufgaben ohne zusätzliches Setup funktionieren.

Der Code wird in einem Sandbox-Container ausgeführt. Dieser Container ist die Arbeitsumgebung, in der Python ausgeführt wird und in der hochgeladene Dateien, generierte Dateien und temporäre Arbeitsdaten während der Session gespeichert werden.

Grenzwerte für Containerspeicher

Codeinterpreter-Container verwenden einen Shared Memory-Pool von 64 GB pro Mandant.

Folgende Containergrößen werden unterstützt:

  • 1 GB
  • 4 GB
  • 16 GB
  • 64 GB

Dieses gemeinsame Limit kann auf mehrere Container aufgeteilt werden. Sie kann beispielsweise Folgendes unterstützen:

  • Vierundsechzig 1 GB Container
  • Sechzehn 4 GB Container
  • Vier 16 GB Container
  • Ein 64 GB Container

Wenn Sie mehr Kapazität benötigen, können Sie eine Serviceanfrage einreichen.

Containerablauf

Ein Container läuft nach 20 Minuten Inaktivität ab.

Dies ist wichtig, wenn Sie mehrstufige Abläufe erstellen:

  • Ein abgelaufener Container kann nicht wiederverwendet werden
  • Sie müssen einen neuen Container erstellen
  • Dateien müssen bei Bedarf erneut hochgeladen werden
  • In-Memory-Status, wie Python-Variablen und Python-Objekte, geht verloren

Daher ist es am besten, Container als temporäre Arbeitsumgebungen zu behandeln.

Beispiel

Um Codeinterpreter zu verwenden, fügen Sie in der Eigenschaft tools eine Tooldefinition mit "type": "code_interpreter" hinzu.

response = client.responses.create(
    model="xai.grok-4-1-fast-reasoning",
    tools=[
        {
            "type": "code_interpreter",
            "container": {"type": "auto"}
        }
    ],
    instructions="Use the python tool to solve the problem and explain the result.",
    input="Find the value of (18 / 3) + 7 * 2."
)

print(response.output_text)

In diesem Beispiel ist das python-Tool Code Interpreter.

Container für Code-Interpreter

Das Codeinterpreter-Tool erfordert ein Containerobjekt. Der Container ist die isolierte Umgebung, in der das Modell Python-Code ausführt.

Ein Container kann Folgendes enthalten:

  • Hochgeladene Dateien
  • Vom Modell erstellte Dateien
  • Temporäre Arbeitsdaten während der Ausführung

Wenn Sie Code Interpreter verwenden, können Sie einen von zwei Containermodi verwenden:

  • auto: OCI Generative AI stellt einen Container im aktuellen Kontext bereit oder verwendet ihn wieder.
  • Container-OCID: Sie erstellen den Container selbst, definieren die Speichergröße und geben die OCID an.

Bei beiden Optionen werden die Container in OCI Generative AI erstellt und verwaltet. Der Code, der in diesen Containern ausgeführt wird, wird auch im OCI Generative AI-Mandanten ausgeführt.

Hinweis

Das OCI-Code-Interpreter-Tool verwendet dasselbe Format wie das OpenAI-Code-Interpreter-Tool, das mit der Responses-API mit dem OCI OpenAI-kompatiblen Endpunkt verwendet wird. Syntax- und Anforderungsdetails finden Sie unter Containers for Code Intepreters und OpenAI Containers API documentation.

Automatischer Modus

Im automatischen Modus stellt der Service den Container bereit oder verwendet ihn wieder. Dies ist die einfachste Option und ein guter Ausgangspunkt für die meisten Benutzer.

Verwenden Sie den automatischen Modus, wenn:

  • Sie möchten, dass OCI Generative AI den Container verwaltet
  • Sie brauchen keine direkte Kontrolle über die Umwelt
  • Sie wollen ein einfacheres Setup

Sie können optional memory_limit angeben. Wenn Sie es nicht angeben, ist der Standardwert 1 GB.

response = client.responses.create(
    model="xai.grok-code-fast-1",
    tools=[{
        "type": "code_interpreter",
        "container": {
            "type": "auto",
            "memory_limit": "1g"
        }
    }],
    input="Use the python tool to calculate the mean, median, and standard deviation of 12, 18, 24, 30, and 42."
)

Expliziter Modus

Im expliziten Modus erstellen Sie zuerst den Container und legen die Größe fest. Anschließend übergeben Sie die Container-ID in der Anforderung.

Verwenden Sie den expliziten Modus, wenn Sie mehr Kontrolle über Containereinstellungen haben möchten, z. B. Speichergröße, oder wenn Sie eine dedizierte Session beibehalten möchten.

container = client.containers.create(name="test-container", memory_limit="4g")

response = client.responses.create(
    model="xai.grok-code-fast-1",
    tools=[{
        "type": "code_interpreter",
        "container": container.id
    }],
    tool_choice="required",
    input="Use the python tool to calculate the mean, median, and standard deviation of 12, 18, 24, 30, and 42."
)

print(response.output_text)

Dateien in Code-Interpreter

Code Interpreter unterstützt die dynamische Dateiinteraktion während der Lebensdauer des Containers. Das Modell kann von Ihnen bereitgestellte Dateien lesen und auch neue Dateien erstellen.

Dies ist nützlich für Workflows wie:

  • CSV oder PDF lesen
  • Diagramme generieren
  • Verarbeitete Ausgabe wird gespeichert
  • Protokolle oder Berichte erstellen

API-Referenz: OpenAI Container Files API-Dokumentation und Container Files API.

Dateipersistenz

Dateien, die vom python-Tool erstellt oder aktualisiert wurden, bleiben während der Codeausführung in demselben Container bestehen, solange der Container nicht abgelaufen ist.

Das bedeutet, dass das Modell auf früheren Arbeiten in derselben Session aufbauen kann. Sie kann beispielsweise:

  • Datei lesen
  • Analysieren
  • Diagramm speichern
  • Dieses Diagramm später im selben Container verwenden

Wenn der Container abläuft, ist dieser Status nicht mehr verfügbar.

Dateien hochladen und verwalten

Sie können Containerdateien über die Container Files-APIs verwalten.

Zu den allgemeinen Vorgängen gehören:

  • Containerdatei erstellen: Fügen Sie dem Container eine Datei hinzu, entweder durch Multipart-Upload oder durch Referenzieren einer vorhandenen /v1/files-ID
  • Containerdateien auflisten: Zeigt Dateien im Container an
  • Containerdatei löschen: Entfernen einer Datei
  • Containerdateiinhalt abrufen: Datei aus dem Container herunterladen

Auf diese Weise können Sie den Container als temporären Workspace für die Ausführung von modellgesteuertem Code verwenden.

Ausgabedateien und Zitate

Wenn das Modell Dateien erstellt, werden diese Dateien im Container gespeichert und können als Annotationen in der Antwort zurückgegeben werden.

Diese Annotationen können Folgendes umfassen:

  • container_id
  • file_id
  • filename

Sie können diese Werte verwenden, um den generierten Dateiinhalt abzurufen.

Die Antwort kann ein container_file_citation-Objekt enthalten, das die generierte Datei identifiziert. Mit dem Vorgang Containerdateiinhalt abrufen können Sie die Datei herunterladen.

Die OCI Responses API unterstützt OpenAI-kompatible Endpunkte für Features wie Antworten, Dateien, Container und Containerdateien. Sie können die zugehörige OpenAI-Dokumentation als Referenz für Anforderungsstruktur, Antwortformate und allgemeine Workflows verwenden. Wenn Sie diese APIs mit OCI verwenden, senden Sie Anforderungen an die OCI Generative AI-Inferenzendpunkte, verwenden Sie die OCI-Authentifizierung, und beachten Sie, dass die Ressourcen und die Ausführung in OCI Generative AI verbleiben, nicht in einem OpenAI-Mandanten.

Hinweis

Die OCI-Dateien-API verwendet dasselbe Format wie die OpenAI-Dateien-API mit dem OCI OpenAI-kompatiblen Endpunkt. Syntax- und Anforderungsdetails finden Sie in der Dokumentation zur OpenAI-Dateien-API.
Hinweis

Der OCI-Code-Interpreter, der als Tool für die Ressponses-API verwendet wird, verwendet dasselbe Format wie der OpenAI-Code-Interpreter mit dem OCI OpenAI-kompatiblen Endpunkt. Syntax und Anforderung finden Sie in den folgenden Referenzen: