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 Sandbox. Consultez Choisir et obtenir des identifiants d’authentification pour obtenir une clé ou un jeton. 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 nomsandbox_auth.py, dans le même répertoire que les scripts Python que vous exécutez depuis 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.
- Clé API Forge
- Jeton d’accès à l’API CoreWeave
Utilisez votre clé API Forge via la stratégie d’authentification W&B du SDK :
sandbox_auth.py
placement_mode="cks" lors de la création de la Sandbox ou dans SandboxDefaults. Lorsque vous créez une session avec auth=AUTH, les Sandbox qui lui appartiennent sont également authentifiées. Utilisez le même identifiant d’authentification pour vous reconnecter à vos Sandbox, les lister ou les nettoyer.
Opérations de base
Les exemples de cette section présentent les opérations sur les fichiers les plus courantes : écrire des données dans un chemin de la sandbox, puis les relire. Les opérations sur les fichiers renvoient des objetsOperationRef. Utilisez .result() pour bloquer l’exécution jusqu’à l’achèvement de l’opération.
Écrire des fichiers
Laissez la sandbox s’exécuter pendant que vous écrivez et lisez des fichiers. Cet exemple crée deux fichiers, puis les lit avant que le gestionnaire de contexte n’arrête la sandbox :Lire des fichiers
read_file() renvoie le contenu du fichier sous forme d’octets. L’exemple de la section Écrire des fichiers utilise decode() pour lire du texte et json.loads() pour analyser du JSON. Ces deux lectures s’exécutent dans le contexte du sandbox actif.
Opérations parallèles
Les opérations sur les fichiers rendent la main immédiatement, ce qui permet naturellement de les paralléliser. Lorsque vous avez plusieurs fichiers indépendants, effectuer les téléversements ou les téléchargements en parallèle peut réduire la durée totale de transfert.Téléversements parallèles
Téléchargements parallèles
Schéma téléversement-traitement-téléchargement
Voici un flux de travail courant : téléverser les fichiers d’entrée, lancer le traitement, puis télécharger les résultats.Gestion des erreurs
Les opérations sur les fichiers peuvent échouer si un chemin n’existe pas ou n’est pas accessible en écriture. InterceptezSandboxFileError pour gérer ces cas et identifier le chemin concerné.
Fichier introuvable
Erreurs d’écriture
Fichiers binaires
Les opérations sur les fichiers prennent en charge tout type de contenu binaire, y compris les images et les objets Python sérialisés :Encodage du texte
Les fichiers sont transférés sous forme d’octets : vous devez donc encoder et décoder explicitement le texte pour éviter toute corruption des caractères non ASCII.Considérations relatives aux fichiers volumineux
Les APIread_file et write_file sont surtout adaptées aux fichiers de petite ou moyenne taille. Pour les fichiers volumineux, tenez compte des points suivants :
- Tenez compte de la bande passante, car les fichiers transitent par l’API.
- Dans la mesure du possible, utilisez la diffusion en continu pour les datasets volumineux.
- Accédez directement au stockage d’objets plutôt que de faire transiter les données par l’API.
object_storage_access crée des identifiants d’authentification CoreWeave AI Object Storage temporaires et les fournit aux conteneurs du sandbox. Votre charge de travail lit et écrit alors directement dans les buckets, si bien que les objets volumineux ne transitent jamais par read_file ni par write_file. Votre organisation doit au préalable enregistrer une configuration de fédération d’identités de charges de travail auprès du plan de contrôle des sandbox ; voir Accès au stockage d’objets.
L’exemple suivant utilise l’authentification CoreWeave pour démarrer un sandbox avec un accès en lecture-écriture à un bucket, puis vérifie que les identifiants d’authentification ont bien été injectés. Définissez CWSANDBOX_API_KEY sur un jeton d’accès à l’API CoreWeave de l’organisation configurée, puis remplacez [BUCKET-NAME] par le nom de votre bucket :
object_prefix. Pour les charges de travail qui ne font que lire des données, utilisez ObjectStoragePermission.READ.
Pour les données temporaires volumineuses qui restent locales au sandbox, joignez plutôt un volume. Voir Volumes.