Utiliser l’outil code_interpreter
L’outil code_interpreter fournit à votre modèle un runtime Python dans lequel il peut générer et exécuter du code Python.
Qu’est-ce que l’outil code_interpreter ?
L’outil code_interpreter permet aux modèles IA génératifs d’écrire et d’exécuter du code Python dynamiquement pendant une conversation. Au lieu de discuter simplement du code ou des algorithmes, le modèle peut tester sa logique, traiter des données et retourner des résultats réels à partir du code. Cela transforme le modèle d’un penseur en un doer.
Les principales fonctionnalités sont les suivantes :
- Exécution dynamique de Python : le modèle écrit et exécute du code Python dans un environnement en bac à sable (sandbox)
- Gestion des fichiers : charger, traiter et télécharger des fichiers (CSV, JSON, images, et ainsi de suite)
- Analyse des données : effectuer des calculs, une analyse statistique et des transformations de données à la volée
- Commentaires en temps réel : le modèle voit les résultats de l’exécution du code et peut itérer ou corriger les erreurs
- Résolution de problèmes complexes : Résoudre les problèmes mathématiques, les simulations et les puzzles logiques par le biais du code exécutable
Cas d’utilisation courants
| Cas d’usage | Exemple |
|---|---|
| Analyse des données | Analyser un fichier CSV et générer des statistiques récapitulatives |
| Mathématiques et physiques | Résoudre des équations différentielles ou simuler des scénarios physiques |
| Conversion de fichiers | Convertir entre les formats de données (CSV JSON ↔, et ainsi de suite) |
| Prototypage | Tester des algorithmes et des idées avant l’implémentation formelle |
Un exemple simple
Voici comment utiliser code_interpreter avec l’API Réponses OpenAI :
from openai import OpenAI
client = OpenAI(
base_url={openai_endpoint},
api_key={auth_key_or_token}
)
# Get response using the code_interpreter tool
response = client.responses.create(
model={model_deployment},
instructions="You are an AI assistant that provides information. Use the python tool to run code for math problems.",
input="What is the square root of 16?",
tools=[{"type": "code_interpreter",
"container": {"type": "auto"}}]
)
print(response.output_text)
La sortie de ce code est similaire à ceci :
The square root of 16 is 4.
Plus important encore, l’inspection des détails de l’objet de réponse retourné par le modèle révèle que le résultat a été calculé et retourné au modèle à l’aide de code Python généré dynamiquement comme suit :
import math
# Calculate the square root of 16
square_root = math.sqrt(16)
square_root
Fonctionnement de l’outil code_interpreter
Le processus général d’utilisation de l’outil code_interpreter est le suivant :
- Vous envoyez une demande : incluez code_interpreter dans votre tableau d’outils.
- Le modèle analyse la tâche : le modèle détermine si l’exécution du code est nécessaire.
- Le modèle génère du code : le modèle écrit du code Python pour accomplir la tâche.
- Exécutions de code : le code s’exécute dans un environnement bac à sable avec accès aux bibliothèques courantes (par exemple, pandas, numpy et mathématiques).
- Résultats retournés : le modèle reçoit la sortie et l’incorpore dans sa réponse.
Bonnes pratiques
- Soyez spécifique : Décrivez clairement le format des données et la sortie attendue. De nombreux modèles utilisent en interne le nom outil Python pour identifier l'outil code_interpreter. Utilisez donc ce terme dans vos instructions.
- Fournir un contexte : inclure les connaissances de domaine pertinentes dans vos invites
- Valider les résultats : passez toujours en revue le code généré par l’IA pour la correction avant d’utiliser en production
- Surveiller les coûts : l’exécution du code ajoute des jetons ; les opérations complexes peuvent utiliser davantage de ressources
- Tirer parti des bibliothèques : les packages courants tels que pandas, numpy et matplotlib sont préinstallés
- Gestion des erreurs : le modèle peut voir les erreurs et tentera de les corriger automatiquement
Limitations à connaître
- Les exécutions s’exécutent dans un environnement en bac à sable sans accès réseau externe
- Certaines bibliothèques peuvent ne pas être disponibles ; informer le modèle si une bibliothèque standard échoue
- Les limites de délai d’expiration s’appliquent aux opérations de longue durée
- Exécutions de code avec des contraintes de mémoire : des jeux de données massifs peuvent avoir besoin de diffusion en continu ou de segmentation