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 des données, le traitement des fichiers et d'autres tâches volumineuses.

Remarque

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 Réponses avec l'adresse compatible OCI OpenAI. Pour plus d'informations sur la syntaxe et les demandes, reportez-vous à la rubrique Interpréteur de code 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 au réseau externe, l'interpréteur de code est une bonne option lorsque le workflow a besoin d'un calcul ou d'un traitement de fichier dans un paramètre contrôlé.

Utilisation du code Intepreter

Si vous utilisez ceci pour la première fois, considérez l'interpréteur de code comme un 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 tableaux
  • Générer des 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, tant de tâches courantes fonctionnent sans configuration supplémentaire.

Le code est exécuté dans un conteneur de modèle d'environnement restreint. Ce conteneur est l'environnement de travail dans lequel Python est exécuté et où les fichiers télé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 d'interpréteur de code utilisent un pool de mémoire partagée 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é.

Ceci est important à savoir lors de la création de flux à 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, tel que 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 Code Interpreter.

Conteneurs pour l'interprète de code

L'outil Interpréteur de code 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 télé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 en cours.
  • OCID de conteneur : vous créez le conteneur vous-même, définissez la taille de 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.

Remarque

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 l'adresse compatible OCI OpenAI. Pour plus d'informations sur la syntaxe et les demandes, reportez-vous aux rubriques Conteneurs pour les entiers de code et Documentation de l'API des conteneurs OpenAI.

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 de contrôle direct sur l'environnement
  • Vous voulez une configuration plus simple

Vous pouvez éventuellement indiquer memory_limit. Si vous ne l'indiquez 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. Ensuite, vous transmettez l'ID de conteneur dans la demande.

Utilisez le mode explicite lorsque vous souhaitez plus de contrôle sur 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

L'interpréteur de code 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.

Cela est utile pour les workflows tels que :

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

Référence d'API : documentation sur l'API OpenAI Container Files et API Container Files.

Persistance de fichier

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

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

  • Lire un dossier
  • Analyser
  • Enregistrer un graphique
  • Utiliser ce graphique ultérieurement dans le même conteneur

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

Téléchargement et gestion de fichiers

Vous pouvez gérer les fichiers conteneur via les API Container Files.

Les opérations courantes sont les suivantes :

  • Créer un fichier conteneur : ajoutez un fichier au conteneur, soit par téléchargement multipart, soit par référence à un ID /v1/files existant.
  • Liste des fichiers de conteneur : visualisez les fichiers dans le conteneur.
  • Supprimer un fichier conteneur : enlever un fichier
  • Extraire le contenu du fichier conteneur : téléchargez un fichier à partir du conteneur.

Vous pouvez ainsi utiliser le conteneur en tant qu'espace de travail temporaire pour l'exécution de code piloté par modèle.

Fichiers de sortie et citations

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

Ces annotations peuvent inclure :

  • 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 conteneur pour télécharger le fichier.

L'API des réponses OCI prend en charge les adresses compatibles OpenAI pour des fonctionnalités telles que les réponses, les fichiers, les conteneurs et les fichiers de conteneur. Vous pouvez utiliser la documentation OpenAI associée comme référence pour la structure des demandes, les formats de réponse et les workflows généraux. Lorsque vous utilisez ces API avec OCI, envoyez des demandes aux adresses d'inférence OCI Generative AI, utilisez l'authentification OCI et notez que les ressources et l'exécution restent dans OCI Generative AI, et non dans une location OpenAI.

Remarque

L'API OCI Files utilise le même format que l'API OpenAI Files avec l'adresse compatible OCI OpenAI. Pour plus d'informations sur la syntaxe et les demandes, reportez-vous à la documentation de l'API OpenAI Files.
Remarque

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 l'adresse compatible OCI OpenAI. Pour la syntaxe et la demande, reportez-vous aux références suivantes :