Contraintes de sécurité du sandbox
Un environnement isolé par conception
Le sandbox Python de Code Execution est conçu pour être sécurisé. Le code s’exécute dans un environnement isolé qui protège à la fois l’infrastructure de xAI et vos données. Comprendre ces contraintes est indispensable pour concevoir des intégrations qui fonctionnent correctement et pour savoir quand Code Execution est adapté à votre besoin.
Les cinq contraintes fondamentales
1. Aucun accès réseau
Le sandbox n’a aucune connexion à Internet ou à un réseau externe. Le code ne peut pas :
- Effectuer de requêtes HTTP (pas de
requests, pas deurllib) - Se connecter à des bases de données distantes
- Appeler des APIs externes
- Télécharger des fichiers depuis le web
- Envoyer des emails ou des notifications
Cette contrainte est la plus restrictive. Si votre cas d’usage nécessite des données externes, vous devez les fournir dans le prompt ou utiliser Web Search en amont pour les récupérer.
2. Accès au système de fichiers limité
Le code s’exécute dans un répertoire temporaire avec un accès restreint au système de fichiers :
- Lecture/écriture uniquement dans le répertoire de travail temporaire
- Pas d’accès aux fichiers système
- Pas d’accès aux répertoires des autres utilisateurs
- Les fichiers créés sont supprimés après l’exécution
3. Contexte temporaire et sans état (stateless)
Chaque exécution est indépendante. Il n’y a aucune persistance entre deux requêtes API :
- Les variables définies lors d’une exécution n’existent plus à la suivante
- Les fichiers créés sont supprimés
- Les bibliothèques chargées en mémoire sont réinitialisées
- Aucun historique d’exécution n’est conservé
Cela signifie que vous ne pouvez pas construire une session interactive où les résultats d’un calcul alimentent le calcul suivant — du moins pas automatiquement. Pour simuler cet état, vous devez inclure les résultats précédents dans votre nouveau prompt.
4. Contraintes de temps d’exécution
Le sandbox impose un timeout sur l’exécution du code. Si un calcul prend trop de temps, il est interrompu. Cela implique :
- Pas de boucles infinies (elles seront arrêtées)
- Pas de calculs extrêmement longs (grands datasets, simulations lourdes)
- Pas d’opérations d’attente (
time.sleepsur de longues durées)
Le modèle est généralement conscient de ces limites et écrit du code optimisé, mais des requêtes très ambitieuses peuvent échouer par timeout.
5. Limitations de mémoire
Le sandbox dispose d’une quantité de mémoire limitée. Les opérations sur de très grands volumes de données peuvent échouer :
- Les DataFrames Pandas de millions de lignes risquent de dépasser la mémoire
- Les matrices NumPy de très grande dimension peuvent poser problème
- Les opérations qui dupliquent les données en mémoire augmentent le risque
Implications pour la conception
Ce que Code Execution fait bien
- Calculs mathématiques et statistiques précis
- Analyse de datasets de taille modérée (centaines à milliers de lignes)
- Vérification de formules et d’algorithmes
- Génération de graphiques et visualisations
- Prototypage rapide de logique de calcul
Ce que Code Execution ne fait pas bien
- Traitement de gros volumes de données (big data)
- Interactions avec des systèmes externes
- Calculs itératifs sur plusieurs requêtes
- Machine learning et entraînement de modèles
- Opérations longues (> quelques secondes)
Contournement des limitations
Si vous avez besoin de dépasser ces contraintes :
- Données externes : utilisez Web Search pour récupérer les données, puis Code Execution pour les analyser
- Gros volumes : extrayez un échantillon représentatif et analysez-le dans le sandbox, puis appliquez les résultats à l’ensemble dans votre propre environnement
- État entre requêtes : stockez les résultats intermédiaires côté client et injectez-les dans les requêtes suivantes
Points clés à retenir
- Le sandbox est isolé : pas de réseau, pas de persistance, pas d’accès système
- Chaque exécution est indépendante (stateless)
- Des limites de temps et de mémoire s’appliquent
- Code Execution excelle pour les calculs précis et l’analyse de données modérées
- Pour les cas limites, combinez Code Execution avec d’autres outils ou avec votre propre infrastructure