Consultez les exemples de gestion par l’application et par webhook dans le Cookbook OpenAI.
Choisissez un mode de provisionnement :
- Gestion par l’application : votre application crée et connecte directement le bac à sable E2B.
- Gestion par webhook : déployez un gestionnaire qui démarre ou reconnecte les bacs à sable à partir des webhooks OpenAI.
Consultez Cycle de vie du bac à sable pour comparer les deux modes.
Avant de commencer
Définissez E2B_API_KEY et utilisez OPENAI_API_KEY pour les requêtes de l’application. Attribuez à OPENAI_EXECUTOR_API_KEY une clé d’environnement et transmettez uniquement cette clé au bac à sable sous le nom CODEX_API_KEY.
Gestion par webhook
Implémentez un contrôleur qui vérifie les webhooks OpenAI et provisionne un worker E2B distinct pour chaque session. Suivez le guide Déployez et connectez un gestionnaire pour configurer les identifiants, enregistrer le point de terminaison et vérifier les signatures.
Enregistrez durablement la correspondance entre les sessions et les bacs à sable. Lors d’une demande de connexion, reprenez l’exécution d’un worker en pause ou remplacez un worker supprimé. La mise en pause conserve ses fichiers ; le remplacement ne les conserve pas. Définissez des durées maximales d’exécution pour le contrôleur et les workers, et supprimez le webhook OpenAI lorsque vous cessez d’utiliser le contrôleur.
Gestion par l’application
Utilisez le SDK ou l’API E2B depuis votre application pour gérer le bac à sable :
- Créez une session auto-hébergée et enregistrez son ID d’environnement.
- Créez un bac à sable E2B isolé contenant le répertoire de travail de la session et installez-y Codex CLI.
- Démarrez l’exécuteur dans le bac à sable à l’aide de l’identifiant et de la clé de l’environnement.
- Suivez le guide Exécutez et poursuivez des sessions pour envoyer des données d’entrée et vérifier le résultat du tour.
- Supprimez la session et arrêtez le bac à sable E2B lorsque vous avez terminé.
Configurez la durée de vie du bac à sable indépendamment du délai d’expiration de la commande de l’exécuteur. Une commande sans délai d’expiration ne maintient pas en fonctionnement un bac à sable dont la durée de vie a expiré.
Références
- Consultez la documentation E2B
- Consultez le SDK Python E2B
- Consultez le SDK TypeScript E2B