Prérequis
Avant de commencer, vous devez disposer des éléments suivants :- Un terminal macOS ou Linux, Python 3.12 ou version ultérieure, et
uv. - Un jeton d’accès à l’API CoreWeave doté de l’action
SANDBOX_USER. - Des identifiants d’authentification pour un fournisseur de modèles pris en charge par Pi. Ce guide utilise Serverless Inference, qui nécessite des crédits d’inférence.
- L’URL d’un dépôt Git public. Pour les dépôts privés, une authentification Git distincte est nécessaire dans la sandbox.
Préparer votre environnement local
Créez un projet local et installez le kit de développement logiciel (SDK) Sandbox :[API-ACCESS-TOKEN] par votre jeton d’accès à l’API CoreWeave :
Créer la sandbox
Enregistrez le script suivant sous le nomcreate_pi_sandbox.py. Il crée une sandbox CPU, installe Pi 0.87.1 et clone le dépôt. L’image Node.js fournit l’environnement d’exécution ainsi que Git. En cas d’échec de la configuration, le script arrête la sandbox avant de lever l’erreur.
create_pi_sandbox.py
[REPOSITORY-URL] par l’URL de votre dépôt, puis exécutez :
0.87.1, s’affiche. La sandbox continue de s’exécuter une fois le script terminé, jusqu’à ce que vous l’arrêtiez ou que sa durée de vie de 4 heures arrive à expiration. La durée de vie inclut le temps de démarrage.
Connecter votre terminal
Enregistrez le code suivant sous le nomattach_sandbox.py. Il transmet les entrées de votre terminal à un shell Bash dans la sandbox, puis restaure les paramètres de votre terminal local à la fermeture du shell.
attach_sandbox.py
[SANDBOX-ID] par l’ID de votre sandbox :
Choisir un fournisseur de modèle
Choisissez l’une des options suivantes. Dans ce guide, l’authentification auprès de la sandbox et celle auprès du modèle reposent sur des identifiants d’authentification distincts. Pi peut accéder aux identifiants d’authentification fournis à son processus et peut envoyer le contenu du Workspace au fournisseur de modèle sélectionné.Utiliser Serverless Inference
Nous vous recommandons Serverless Inference pour ce guide pas à pas. L’exemple utilisezai-org/GLM-5.2. Si un autre modèle du catalogue de modèles convient mieux à votre tâche, choisissez-le.
Dans le shell de la sandbox, à l’invite masquée, saisissez une clé API Forge associée à un compte disposant de crédits d’inférence :
~/.pi/agent/models.json. Comme le heredoc est entre guillemets, la référence à la variable d’environnement est conservée telle quelle et la clé n’apparaît pas dans le fichier :
/workspace/project et zai-org/GLM-5.2 dans la zone de statut. Soumettez une tâche comme indiqué dans Exécuter Pi et vérifier son travail pour vérifier l’accès au modèle.
La configuration limite chaque réponse à 8 192 jetons. Si vous changez de modèle, mettez à jour l’ID du modèle et ses capacités en fonction du fournisseur. Pour découvrir d’autres options de configuration, consultez Configuration du modèle Pi.
Utiliser un autre fournisseur
Pour utiliser directement Anthropic ou OpenAI, choisissez la clé API correspondante et lancez Pi dans le même shell de la sandbox :- Anthropic
- OpenAI
/model dans Pi pour choisir un modèle disponible auprès de votre fournisseur. La documentation de Pi sur les fournisseurs, dont le lien figure dans les prérequis, présente les autres fournisseurs ainsi que les options de connexion par compte.
Exécuter Pi et vérifier son travail
Si Pi affiche une demande de confiance pour le projet, suivez les instructions. Pour vérifier que Pi peut créer et lire un fichier dans le dépôt cloné, soumettez cette tâche dans Pi :/quit pour revenir au shell de la sandbox. Pi affiche une ligne To resume this session: suivie d’une commande pi --session. Conservez cette commande pour rouvrir cette conversation.
Vérifiez le fichier par vous-même :
Hello from CoreWeave.
Pour exécuter une tâche sans intervention avec la configuration Forge, lancez Pi en mode impression depuis le même shell :
Se reconnecter à une conversation
Pour vous reconnecter pendant que le sandbox est en cours d’exécution, exécutez de nouveau le scriptattach_sandbox.py. Ressaisissez les clés API que vous aviez fournies dans le shell précédent, puis revenez au répertoire /workspace/project avant de démarrer Pi. Pour rouvrir votre conversation interactive, remplacez [SESSION-ID] par l’ID indiqué sur la ligne To resume this session: que Pi a affichée lorsque vous l’avez quitté :
pi --continue pour reprendre la session la plus récente du projet. Si vous avez exécuté l’exemple en mode impression après votre conversation interactive, c’est la session en mode impression qui est reprise. Pour revenir à une conversation précise, utilisez --session.
Récupérer le résultat et arrêter la sandbox
Saisissezexit pour quitter le shell de la sandbox. Dans votre terminal local, enregistrez le code suivant sous le nom collect_pi_result.py :
collect_pi_result.py
[SANDBOX-ID] par l’ID de votre sandbox, puis exécutez le script :
stop_pi_sandbox.py :
stop_pi_sandbox.py
Dépannage
Effectuez les vérifications suivantes pour résoudre les problèmes courants :- Si la création du sandbox échoue, vérifiez l’identifiant d’authentification de votre sandbox ainsi que les exigences d’authentification des sandboxes, dont le lien figure dans les prérequis.
- Si Pi ne parvient pas à s’authentifier, vérifiez que l’identifiant d’authentification du modèle est exporté dans le shell qui lance Pi. Avec Forge, vérifiez également vos crédits d’inférence et l’ID du modèle.
- Si Pi ne parvient pas à joindre son fournisseur, vérifiez l’accès sortant au point de terminaison du fournisseur. L’installation et le clonage nécessitent également un accès à npm et à votre hébergeur Git.
- Si votre connexion est interrompue, rattachez-vous au sandbox tant qu’il est en cours d’exécution. Pour qu’un processus survive aux déconnexions du terminal, utilisez un multiplexeur de terminal tel que
tmux.
Étapes suivantes
Pour plus d’informations, voir les ressources suivantes :- Shells interactifs explique comment accéder au terminal via le SDK.
- Opérations sur les fichiers explique comment téléverser et récupérer les fichiers du Workspace.
- La documentation de Pi présente les sessions, la sélection de modèle et les extensions.