Skip to main content
Ce guide explique comment utiliser Session pour gérer plusieurs bacs à sable avec une configuration partagée. Il s’adresse aux développeurs côté client qui doivent coordonner des groupes de bacs à sable, appliquer des valeurs par défaut communes et garantir un nettoyage cohérent à l’échelle d’une charge de travail.

Choisir l’authentification

Ces exemples s’exécutent sur une capacité sans serveur, sauf si une section indique CKS. Choisissez l’identifiant d’authentification du compte propriétaire de vos sandboxes. Pour obtenir une clé ou un jeton, consultez Choisir et obtenir des identifiants d’authentification. Exécutez les commandes d’installation dans un environnement virtuel Python actif. Enregistrez le code Python de l’onglet correspondant à votre identifiant d’authentification sous le nom sandbox_auth.py, dans le même répertoire que les scripts Python que vous exécutez à partir de cette page. Ce fichier enregistre le mode d’authentification choisi, et non votre identifiant d’authentification. Les exemples importent AUTH depuis ce fichier et le transmettent explicitement à chaque nouvelle sandbox ou session.
Utilisez votre clé API Forge avec la stratégie d’authentification W&B du SDK :
sandbox_auth.py
Pour un placement sur CKS, choisissez le jeton CoreWeave, activez un exécuteur et définissez placement_mode="cks" lors de la création de la sandbox ou dans SandboxDefaults. Une session créée avec auth=AUTH authentifie également les sandboxes qui lui appartiennent. Utilisez le même identifiant d’authentification pour vous reconnecter à vos sandboxes, les lister ou les nettoyer.

Aperçu de la session

Une Session fournit :
  • Une configuration par défaut commune à tous les bacs à sable.
  • Un nettoyage automatique à la fermeture de la session.
  • Une portée pour le décorateur @session.function().

Utilisation de base

Créer des bacs à sable

Les sections suivantes expliquent comment créer des bacs à sable à partir d’une session et comment remplacer les valeurs par défaut de la session.

session.sandbox()

Crée une sandbox avec les valeurs par défaut de la session. La sandbox ne démarre qu’à sa première utilisation :
Pour contrôler explicitement le moment où le RPC de démarrage est déclenché :

Remplacer les valeurs par défaut

Transmettez des arguments supplémentaires pour remplacer les valeurs par défaut de la session. L’exemple sans serveur suivant configure une sandbox GPU à démarrage différé, dont les demandes de ressources en CPU et en mémoire sont égales à leurs limites respectives. Pour la démarrer, appelez gpu_sandbox.start().result() ou exécutez une commande avant de quitter la session.
Consultez le guide de configuration du bac à sable pour connaître toutes les options disponibles.

Gestion de sandboxes multiples

Les sessions se prêtent bien à la gestion de pools de sandboxes :
Pour préparer des bacs à sable avant l’arrivée des requêtes, voir Implement a warm pool. La recette maintient une réserve de bacs à sable prêts, attribue à chaque charge de travail un sandbox distinct et réalimente la réserve à mesure que les charges de travail les prennent.

Cycle de vie de la session

Les sections suivantes expliquent comment fermer une session, ce que fait close() et comment gérer les erreurs.

Fermeture manuelle

Si vous n’utilisez pas de gestionnaire de contexte, fermez explicitement la session :

Ce que fait close()

L’appel à close() lance l’arrêt de tous les Sandbox créés via la session ou adoptés par celle-ci, et renvoie immédiatement un OperationRef[None]. Appelez session.close().result() pour attendre la fin du nettoyage.

Gestion des erreurs

Les sessions sont nettoyées même si des exceptions se produisent :

Adopter des bacs à sable externes

Confiez à la session la gestion des bacs à sable créés en dehors de celle-ci :

Propriétés de Session

Consultez l’état de la session grâce aux propriétés intégrées, telles que sandbox_count :

Quand utiliser les sessions

Sans sessions

Les sessions ne sont pas nécessaires pour une Sandbox unique :
Dernière modification le 4 novembre 2026