Interpréteur de code

Utilisez l'interpréteur de code pour laisser le modèle écrire et exécuter du code Python dans un conteneur isolé et sécurisé. Cet outil est utile pour les calculs, l'analyse de données, le traitement de fichiers et d'autres tâches de calcul.

Note

L'outil d'interpréteur de code OCI utilise le même format que l'outil d'interpréteur de code OpenAI utilisé avec l'API Responses avec le point d'extrémité compatible OCI OpenAI. Pour plus de détails sur la syntaxe et les demandes, voir la rubrique Code Interpreter dans la documentation OpenAI.
Conseil

Dans les invites, référencez l'interpréteur de code en tant qu'outil python. Par exemple : Use the python tool to solve the problem.

Comme le code s'exécute dans un environnement isolé sans accès réseau externe, l'interpréteur de code est une bonne option lorsque le flux de travail nécessite un calcul ou un traitement de fichiers dans un paramètre contrôlé.

Utilisation de Code Intepreter

Si vous l'utilisez pour la première fois, pensez à Code Interpreter en tant qu'espace de travail Python temporaire pour le modèle.

Vous pouvez l'utiliser pour des tâches telles que :

  • Résoudre des problèmes mathématiques
  • Analyse des fichiers chargés
  • Nettoyage ou transformation des données
  • Création de graphiques ou de tables
  • Génération de fichiers de sortie tels que des journaux ou des jeux de données traités

Environnement d'exécution

L'environnement Python comprend plus de 420 bibliothèques préinstallées, y compris Pandas, Matplotlib et SciPy, de nombreuses tâches courantes fonctionnent sans configuration supplémentaire.

Le code s'exécute dans un conteneur de bac à sable. Ce conteneur est l'environnement de travail où Python s'exécute et où les fichiers chargés, les fichiers générés et les données de travail temporaires sont stockés pendant la session.

Limites de mémoire du conteneur

Les conteneurs de l'interpréteur de code utilisent un groupe de mémoire partagé de 64 Go par location.

Les tailles de conteneur prises en charge sont les suivantes :

  • 1 Go
  • 4 Go
  • 16 Go
  • 64 Go

Cette limite partagée peut être divisée entre plusieurs conteneurs. Par exemple, il peut prendre en charge les éléments suivants :

  • Soixante-quatre conteneurs de 1 Go
  • Seize conteneurs de 4 Go
  • Quatre conteneurs de 16 Go
  • Un conteneur de 64 Go

Si vous avez besoin de plus de capacité, vous pouvez soumettre une demande de service.

Expiration du conteneur

Un conteneur expire après 20 minutes d'inactivité.

Il est important de savoir lors de la création de flux en plusieurs étapes :

  • Un conteneur expiré ne peut pas être réutilisé
  • Vous devez créer un conteneur
  • Les fichiers doivent être chargés à nouveau si nécessaire
  • L'état en mémoire, comme les variables Python et les objets Python, est perdu

Pour cette raison, il est préférable de traiter les conteneurs comme des environnements de travail temporaires.

Exemple

Pour utiliser l'interpréteur de code, ajoutez une définition d'outil dans la propriété tools avec "type": "code_interpreter".

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)

Dans cet exemple, l'outil python est l'interpréteur de code.

Conteneurs pour l'interpréteur de code

L'outil Code Interpreter nécessite un objet conteneur. Le conteneur est l'environnement isolé où le modèle exécute du code Python.

Un conteneur peut contenir :

  • Fichiers chargés
  • Fichiers créés par le modèle
  • Données de travail temporaires pendant l'exécution

Lorsque vous utilisez l'interpréteur de code, vous pouvez utiliser l'un des deux modes de conteneur suivants :

  • Auto : OCI Generative AI provisionne ou réutilise un conteneur dans le contexte courant.
  • OCID du conteneur : Vous créez le conteneur vous-même, définissez la taille de la mémoire et fournissez l'OCID.

Pour les deux options, les conteneurs sont créés et gérés dans OCI Generative AI. Le code qui s'exécute dans ces conteneurs s'exécute également dans la location OCI Generative AI.

Note

L'outil d'interpréteur de code OCI utilise le même format que l'outil d'interpréteur de code OpenAI utilisé avec l'API Responses avec le point d'extrémité compatible OCI OpenAI. Pour plus de détails sur la syntaxe et les demandes, voir Conteneurs pour les intégrateurs de code et Documentation sur l'API OpenAI Containers.

Mode automatique

En mode automatique, le service provisionne ou réutilise le conteneur pour vous. C'est l'option la plus simple et un bon point de départ pour la plupart des utilisateurs.

Utiliser le mode automatique lorsque :

  • Vous voulez qu'OCI Generative AI gère le conteneur
  • Vous n'avez pas besoin d'un contrôle direct sur l'environnement
  • Vous voulez une configuration plus simple

Vous pouvez éventuellement spécifier memory_limit. Si vous ne le spécifiez pas, la valeur par défaut est 1 Go.

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."
)

Mode explicite

En mode explicite, vous créez d'abord le conteneur et définissez sa taille. Vous transmettez ensuite l'ID conteneur dans la demande.

Utilisez le mode explicite lorsque vous souhaitez contrôler davantage les paramètres du conteneur, tels que la taille de la mémoire, ou lorsque vous souhaitez gérer une session dédiée.

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)

Fichiers dans l'interpréteur de code

Code Interpreter prend en charge l'interaction dynamique des fichiers pendant la durée de vie du conteneur. Le modèle peut lire les fichiers que vous fournissez et peut également créer de nouveaux fichiers.

Ceci est utile pour les flux de travail tels que :

  • Lecture d'un fichier CSV ou PDF
  • Génération d'un graphique
  • Enregistrement de la sortie traitée
  • Création de journaux ou de rapports

Informations de référence sur les API : Documentation sur l'API OpenAI Container Files et API Container Files.

Persistance du fichier

Les fichiers créés ou mis à jour par l'outil python persistent pendant que l'exécution du code tourne dans le même conteneur, tant que le conteneur n'a pas expiré.

Cela signifie que le modèle peut s'appuyer sur des travaux antérieurs dans la même session. Par exemple, il peut :

  • Lire un fichier
  • Analyser
  • Enregistrer un graphique
  • Utiliser ce graphique plus tard dans le même conteneur

Lorsque le conteneur expire, cet état n'est plus disponible.

Chargement et gestion des fichiers

Vous pouvez gérer les fichiers de conteneur au moyen des API Container Files.

Les opérations courantes sont les suivantes :

  • Créer un fichier de conteneur : Ajoutez un fichier au conteneur, par chargement en plusieurs parties ou en référençant un ID /v1/files existant
  • Lister les fichiers de conteneur : Voir les fichiers dans le conteneur
  • Supprimer un fichier de conteneur : Supprimer un fichier
  • Extraire le contenu du fichier de conteneur : Télécharger un fichier à partir du conteneur

Cela vous permet d'utiliser le conteneur en tant qu'espace de travail temporaire pour l'exécution de code basée sur un modèle.

Fichiers de sortie et citations

Lorsque le modèle crée des fichiers, ceux-ci sont stockés dans le conteneur et peuvent être retournés sous forme d'annotations dans la réponse.

Ces annotations peuvent inclure les éléments suivants :

  • container_id
  • file_id
  • filename

Vous pouvez utiliser ces valeurs pour extraire le contenu du fichier généré.

La réponse peut inclure un objet container_file_citation qui identifie le fichier généré. Utilisez l'opération Extraire le contenu du fichier de conteneur pour télécharger le fichier.

L'API OCI Responses prend en charge les points d'extrémité compatibles avec OpenAI pour des fonctions telles que les réponses, les fichiers, les conteneurs et les fichiers conteneur. Vous pouvez utiliser la documentation OpenAI associée comme référence pour la structure de demande, les formats de réponse et les flux de travail généraux. Lorsque vous utilisez ces API avec OCI, envoyez des demandes aux points d'extrémité d'inférence du service d'intelligence artificielle générative pour OCI, utilisez l'authentification OCI et notez que les ressources et l'exécution restent dans le service d'intelligence artificielle générative pour OCI, et non dans une location OpenAI.

Note

L'API des fichiers OCI utilise le même format que l'API des fichiers OpenAI avec le point d'extrémité compatible OCI OpenAI. Pour plus de détails sur la syntaxe et les demandes, consultez la documentation relative à l'API OpenAI Files.
Note

L'interpréteur de code OCI utilisé comme outil pour l'API Ressponses utilise le même format que l'interpréteur de code OpenAI avec le point d'extrémité compatible OCI OpenAI. Pour la syntaxe et la demande, voir les références suivantes :